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'