我正在尝试使用工作区ScriptRunConfig中的 ws 对象在本地Azure VM上的Azure机器学习服务中提交实验,如下所示:

from azureml.core import ScriptRunConfig
from azureml.core.runconfig import RunConfiguration
from azureml.core import Experiment

experiment = Experiment(ws, name='test')
run_local = RunConfiguration()

script_params = {
    '--data-folder': './data',
    '--training-data': 'train.csv'
}

src = ScriptRunConfig(source_directory = './source_dir',
                      script = 'train.py',
                      run_config = run_local,
                      arguments = script_params)

run = experiment.submit(src)

但是,这样做失败了



更糟糕的是,如果我将数据文件夹设置为使用数据存储区(可能需要这样做)
script_params = {
    '--data-folder': ds.path('mydatastoredir').as_mount(),
    '--training-data': 'train.csv'
}

错误是



我不太了解如何将script_params参数传递给train.py(不幸的是,the documentation of ScriptRunConfig 并未包含很多详细信息)。

在这两种情况下,有人知道如何正确创建src吗?

最佳答案

最后,我放弃了ScriptRunConfig并按如下方式使用Estimator传递script_params(在提供了计算目标之后):

estimator = Estimator(source_directory='./mysourcedir',
                      script_params=script_params,
                      compute_target='cluster',
                      entry_script='train.py',
                      conda_packages = ["pandas"],
                      pip_packages = ["git+https://github.com/..."],
                      use_docker=True,
                      custom_docker_image='<mydockeraccount>/<mydockerimage>')

这还允许我通过从Dockerfile创建的pip_packages Docker镜像放在https://hub.docker.com/上来安装custom_docker_image依赖项:
FROM continuumio/miniconda
RUN apt-get update
RUN apt-get install git gcc g++ -y

(有效!)

10-04 19:15