在Azure ML服务中装载文件数据集
我在Azure机器学习服务中面临数据集模块问题。我创建了一个包含大量图像的文件数据集,以在TensorFlow中训练模型。我将数据集装载到目标计算机中,然后将装载点传递给train脚本,如下所述 我尝试了两种方法:将路径作为脚本参数(如GitHub上建议的)和命名输入传递,但它们似乎都没有正确地传递安装点。有人知道哪种方法是正确的吗?(顺便说一句,我可以使用数据源) 作为脚本参数在Azure ML服务中装载文件数据集,azure,tensorflow,azure-machine-learning-service,Azure,Tensorflow,Azure Machine Learning Service,我在Azure机器学习服务中面临数据集模块问题。我创建了一个包含大量图像的文件数据集,以在TensorFlow中训练模型。我将数据集装载到目标计算机中,然后将装载点传递给train脚本,如下所述 我尝试了两种方法:将路径作为脚本参数(如GitHub上建议的)和命名输入传递,但它们似乎都没有正确地传递安装点。有人知道哪种方法是正确的吗?(顺便说一句,我可以使用数据源) 作为脚本参数 script_params = { '--data-folder': dset.as_named_input
script_params = {
'--data-folder': dset.as_named_input('dogscats_train').as_mount('tmp/dataset'),
}
src = TensorFlow(source_directory = r'Tensorflow',
framework_version = '1.13',
entry_script = 'train.py',
script_params=script_params,
compute_target='amlcompute',
vm_size='Standard_NC6',
use_gpu = True,
pip_packages = ['matplotlib', 'pillow', 'numpy', 'azureml-sdk'])
装载路径:
/mnt/batch/tasks/shared/LS_root/jobs/aa ml aml workspace/azureml/cats-vs-dogs-tensorflow_1570799752_014bea9f/mounts/workspaceblobstore/azureml/cats-vs-dogs-tensorflow_157079952_014bea9f/tmp/dataset
脚本中收到的实际路径:
/tmp/数据集
作为命名输入
src = TensorFlow(source_directory = r'Tensorflow',
framework_version = '1.13',
entry_script = 'train.py',
inputs=[dset.as_named_input('dogscats_train')],
compute_target='amlcompute',
vm_size='Standard_NC6',
use_gpu = True,
pip_packages = ['matplotlib', 'pillow', 'numpy', 'azureml-sdk'])
装载路径:
/mnt/batch/tasks/shared/LS_root/jobs/aa ml aml workspace/azureml/cats-vs-dogs-tensorflow_157084147_39168dcf/mounts/workspacebrobstore
运行检索到的路径。输入数据集['dogscats\u train']。装载('tmp/dataset')。装载点:
/mnt/batch/tasks/shared/LS\u root/jobs/aa ml aml workspace/azureml/cats-vs-dogs-tensorflow\u 157084147\u 39168dcf/mounts/workspacebrobstore/azureml/cats-vs-dogs-tensorflow\u 157084147\u 39168dcf/tmp/dataset在这两种方法中,装载和装载时传递到
的路径都是相对路径,即,它不是以前导的/
开头的,这将导致相对于当前工作目录装入数据集,在您的案例中,它是/mnt/batch/tasks/shared/LS_root/jobs/aa ml aml workspace/azureml/cats-vs-dogs-tensorflow\u 1570799752u 014bea9f/mounts/workspacebrobstore/azureml/cats-vs-dogs-tensorflow\u 1570799797979752\u 014bea9f
如果要装载到/tmp/dataset
,则需要执行dset.as_named_input('dogscats_train')。as_mount('/tmp/dataset')
,也就是说,需要向目标路径显式添加/
,以使路径成为绝对路径
我创建了一个显示相对路径与绝对路径效果的
submit.py
:提交TensorFlow运行
so.py
:比较两个参数,第一个参数是相对路径,第二个是绝对路径
driver\u log\u partial.txt
:是您在运行详细信息页面中看到的驱动程序日志的部分输出
现在,关于您作为_named _input
传递给的名称。然后,该名称作为一个环境变量可用,该环境变量的值与脚本参数的值相同,脚本参数的值是数据集装载到的路径。名称也可用作运行的键。输入数据集,其中值也是数据集装载到的路径。换句话说,访问挂载路径有三种方式,您可以选择一种最适合您的代码的方式。Hi@Rongduan。谢谢你的回复。但是,使用绝对路径会使驱动程序在读取文件夹时锁定自身。您是否尝试过从挂载路径读取内容?我还尝试在/mnt/azuremnt文件夹中挂载代码路径,结果相同。不管怎么说,如果我们使用相对文件夹,该方法是否会返回正确的挂载路径。我没有更改作业提交脚本,但修改了我的so.py
。请看我的跑步记录。你能分享你的作业提交脚本和作业脚本吗?