我正在尝试使用我的工作区中的一个^{ws
中,在Azure虚拟机上本地提交一个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)
但是,这失败了
ExperimentExecutionException: { "error_details": { "correlation": { "operation": "bb12f5b8bd78084b9b34f088a1d77224", "request": "iGfp+sjC34Q=" }, "error": { "code": "UserError", "message": "Failed to deserialize run definition"
更糟的是,如果我将我的数据文件夹设置为使用数据存储(我可能需要这样做)
^{pr2}$错误是
UserErrorException: Dictionary with non-native python type values are not supported in runconfigs.
{'--data-folder': $AZUREML_DATAREFERENCE_d93269a580ec4ecf97be428cd2fe79, '--training-data': 'train.csv'}
我不太明白应该如何将script_params
参数传递给train.py
(不幸的是,the documentation of ^{
有人知道如何在这两种情况下正确地创建src
?在
最后,我放弃了
ScriptRunConfig
,并使用Estimator
来传递script_params
(在配置了一个计算目标之后):这也允许我安装我的
^{pr2}$pip_packages
依赖项,方法是将https://hub.docker.com/一个custom_docker_image
Docker映像放在Dockerfile中创建,如下所示:(成功了!)在
向ScriptRunConfig和RunConfig传递参数的正确方法是根据https://docs.microsoft.com/nb-no/python/api/azureml-core/azureml.core.runconfiguration?view=azure-ml-py以字符串列表的形式传递参数。在
修改和工作代码如下。在
相关问题 更多 >
编程相关推荐