Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Azure ML服务中装载文件数据集_Azure_Tensorflow_Azure Machine Learning Service - Fatal编程技术网

在Azure ML服务中装载文件数据集

在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

我在Azure机器学习服务中面临数据集模块问题。我创建了一个包含大量图像的文件数据集,以在TensorFlow中训练模型。我将数据集装载到目标计算机中,然后将装载点传递给train脚本,如下所述

我尝试了两种方法:将路径作为脚本参数(如GitHub上建议的)和命名输入传递,但它们似乎都没有正确地传递安装点。有人知道哪种方法是正确的吗?(顺便说一句,我可以使用数据源)

作为脚本参数

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
。请看我的跑步记录。你能分享你的作业提交脚本和作业脚本吗?