2

AMLCompute インスタンスを使用してデータを前処理しようとしています。そのためには、処理されたデータをデータストアに書き戻せる必要があります。私がこのアプローチをとっているのは、クラスターが完了すると自動的にシャットダウンするため、必要以上の時間の支払いを心配することなく、クラスターが完了するまで稼働させておくことができるからです。

問題は、データストア (データセットとしてマウントされている) に書き戻そうとすると、次のエラーが発生することです。

OSError: [Errno 30] Read-only file system: '/mnt/batch/tasks/shared/LS_root/jobs/[...]/wav_test'

データストアのアクセス ポリシーを読み取り、追加、作成、書き込み、削除、および一覧表示を許可するように設定しましたが、Microsoft Azure ファイル エクスプローラーからデータストアに既に書き込みできるため、それが問題になるとは思いません。

データストアを直接マウントする方法、またはazureml python sdk からの書き込み権限を持つデータセットを介してマウントする方法はありますか?

または、機械学習のために Azure でこの (オーディオ) データを前処理するより良い方法はありますか?

ありがとう!

編集:問題を説明する例を追加しています。

from azureml.core import Workspace, Dataset, Datastore
import os

ws = Workspace.from_config()
ds = Dataset.get_by_name(ws, name='birdsongs_alldata')

mount_context = ds.mount()
mount_context.start()

os.listdir(mount_context.mount_point)

出力:

['audio_10sec', 'mp3', 'npy', 'リソース', 'wav']

したがって、ファイル システムがマウントされ、表示されます。

# try to write to the mounted file system
outfile = os.path.join(mount_context.mount_point, 'test.txt')

with open(outfile, 'w') as f:
    f.write('test')

エラー:

--------------------------------------------------------------------------- OSError                                   Traceback (most recent call last) <ipython-input-9-1b15714faded> in <module>
      1 outfile = os.path.join(mount_context.mount_point, 'test.txt')
      2 
----> 3 with open(outfile, 'w') as f:
      4     f.write('test')

OSError: [Errno 30] Read-only file system: '/tmp/tmp8ltgsx6x/test.txt'
4

1 に答える 1