我正尝试在Azure机器学习服务中本地提交一个实验,在Azure VM上使用工作区ScriptRunConfig中的ws对象,如
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)然而,这与
ExperimentExecutionException:{ "error_details":{“关联”:{“操作”:"bb12f5b8bd78084b9b34f088a1d77224",“请求”:"iGfp+sjC34Q=“},”错误“:{”代码“:"UserError",”消息“:”无法反序列化运行定义“
更糟糕的是,如果我将数据文件夹设置为使用数据存储(很可能需要这样做)。
script_params = {
'--data-folder': ds.path('mydatastoredir').as_mount(),
'--training-data': 'train.csv'
}错误是
UserErrorException:不支持非本地python类型值的字典。 {‘--数据-文件夹’:$AZUREML_DATAREFERENCE_d93269a580ec4ecf97be428cd2fe79,‘--训练-数据’:'train.csv'}
我不太明白如何将我的script_params参数传递给我的train.py (不幸的是,ScriptRunConfig没有包含很多有关这方面的细节)。
有人知道在这两种情况下如何正确创建src吗?
发布于 2019-04-15 10:46:17
最后,我放弃了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>')这还允许我安装pip_packages依赖项,方法是在https://hub.docker.com/上设置从Dockerfile创建的custom_docker_image Docker映像,如:
FROM continuumio/miniconda
RUN apt-get update
RUN apt-get install git gcc g++ -y(成功了!)
发布于 2019-05-08 06:41:14
向ScriptRunConfig和RunConfig传递参数的正确方法是根据https://learn.microsoft.com/nb-no/python/api/azureml-core/azureml.core.runconfiguration?view=azure-ml-py作为字符串列表。
修改后的代码和工作代码如下。
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)https://stackoverflow.com/questions/55553868
复制相似问题