如何在 AzureML Python SDK 中将 PipelineParameter 传递到 AutoMLStep

Posted

技术标签:

【中文标题】如何在 AzureML Python SDK 中将 PipelineParameter 传递到 AutoMLStep【英文标题】:How to pass PipelineParameter into AutoMLStep in AzureML Python SDK 【发布时间】:2020-09-23 03:13:37 【问题描述】:

我正在使用带有 AutoMLStep 的 AzureML SDK 管道。如何将 PipelineParameter 添加到 AutoMLStep 配置中?我想用它来定义 max_horizo​​n。 它应该与

passthru_automl_config=False

但我收到错误

消息:max_horizo​​n 的值不受支持。 max_horizo​​n 必须是整数或“自动”

max_horizon = PipelineParameter(name='max_horizon', default_value=30)

automl_settings = 
            "iteration_timeout_minutes" : 60
            "grain_column_names": ["COUNTRY_CODE"],
            "time_column_name": "DATE"
                

automl_config = AutoMLConfig(task='forecasting',
                             path = "./src",
                             primary_metric=primary_metric,
                             iterations=iterations,
                             max_concurrent_iterations=max_concurrent_iterations,
                             training_data = train_data,
                             label_column_name = label,
                             n_cross_validations=5,
                             compute_target = compute_target,
                             max_horizon= max_horizon,
                             **automl_settings)

trainWithAutomlStep = AutoMLStep(name="experiment_name",
                                 automl_config=automl_config,
                                 passthru_automl_config=False,
                                 outputs=[metrics_data, model_data],
                                 allow_reuse=True)

【问题讨论】:

对了,你的代码中有一个类型:max_horizon: max_horizon应该是max_horizon = max_horizon 已修复。谢谢。 【参考方案1】:

您在这里遇到了类型检查问题。 PipelineParameter 不允许用于 max_horizon

作为替代方案:您为什么不争取一个简单的python_script_step 并使用 PipelineParameter 作为输入。然后在 Python-Step 文件中定义 AutoML 例程。这样一来,一切尽在掌握...

【讨论】:

根据文档,看起来 passthru_automl_config 应该能够处理 PipelineParameter。如果不是,那就有点误导了。 -1 您无法在 python_script_step 中使用 AutoML。见documentation。 请具体说明文档。我没有找到你提到的这个通行证。 在这种情况下,我希望 azureml-sdk 的代码在 GitHub 上...... 我的猜测是 AutMLStep 只是 Hyperdrive (docs.microsoft.com/en-us/python/api/azureml-train-core/…) 的包装器,带有一些用于 Jupyter Notebook 小部件的自定义输出。 Here 是 passthru_automl_config 的文档。通过这个文档,我认为它应该与 PipelineParameter 一起使用。 AutoML 步骤更像是一个用于 AutoML 运行的 python 管道适配器,其中 HPT 与其他技术(如特征选择、特征化等)一起使用。【参考方案2】:

这是来自微软的回复:

PipelineParameter 目前不支持与 AutoMLStep 内的 AutoMLConfig 参数一起使用。

然后,将 PipelineParameter 与 AutoMLConfig 将在 PythonScriptStep 中使用 AutoML,这是一个 使用 AutoMLConfig 时的类似用法/方法 管道中的 ParallelRunConfig(不使用 AutoMLStep),例如 “许多模型”解决方案加速器可以。

【讨论】:

这是反洗钱产品组的直接回应。

以上是关于如何在 AzureML Python SDK 中将 PipelineParameter 传递到 AutoMLStep的主要内容,如果未能解决你的问题,请参考以下文章

R 的 Azure 机器学习集成:“azureml”模块是不是应该具有“核心”属性?

如何在 Python 中将 DWORD 转换为字符串

如何在 iphone sdk 中将 NSArray/NSMutableArray 转换为 NSFetchedResultsController?

在 AzureML 中部署模型时如何将参数传递给评分文件

如何深入了解 AzureML 端点部署的异常和日志记录

如何从 Azure blob 数据存储中获取 Python pathlib 路径?