首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Azure机器学习服务中将参数传递给培训脚本?

如何在Azure机器学习服务中将参数传递给培训脚本?
EN

Stack Overflow用户
提问于 2019-04-06 22:05:02
回答 2查看 4.1K关注 0票数 8

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

代码语言:javascript
复制
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",”消息“:”无法反序列化运行定义“

更糟糕的是,如果我将数据文件夹设置为使用数据存储(很可能需要这样做)。

代码语言:javascript
复制
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吗?

EN

回答 2

Stack Overflow用户

发布于 2019-04-15 10:46:17

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

代码语言:javascript
复制
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映像,如:

代码语言:javascript
复制
FROM continuumio/miniconda
RUN apt-get update
RUN apt-get install git gcc g++ -y

(成功了!)

票数 4
EN

Stack Overflow用户

发布于 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作为字符串列表。

修改后的代码和工作代码如下。

代码语言:javascript
复制
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)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55553868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档