繁体   English   中英

使用 argparse 错误地传递参数

[英]Arguments are passed incorrectly using argparse

我不明白为什么参数传递不正确:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--start_date', type=str, default='2016-07-01T00:00:00Z', dest='start_date')
parser.add_argument('--end_date', type=str, default='2016-09-01T00:00:00Z', dest='end_date')
args, unknown = parser.parse_known_args()

print(str(args.start_date))
# 01/01/2019 00:00:00 

print(str(args.end_date))
# 08/20/2019 00:00:00

这是我从 Azure ML 管道脚本向脚本传递参数的方式:

    start_date = '2019-01-01T00:00:00Z'
    end_date = '2019-08-20T00:00:00Z'

    preprocess_step = PythonScriptStep(
        name="Test",
        script_name="myscript.py",
        compute_target=aml_compute,
        source_directory=".",
        arguments=[
            "--start_date", start_date,
            "--end_date", end_date
        ],
        allow_reuse=False,
    )

但是,如果我从命令行运行myscript.py ,则会正确传递参数:

python myscript.py --start_date 2019-01-01T00:00:00Z --end_date 2019-08-20T00:00:00Z

发生了什么以及如何解决?

我不知道您的真实环境是什么,仅从您的帖子描述中可以看出,但仅根据类PythonScriptStepRunConfiguration的官方文档,如下图所示,我认为缺少为RunConfiguration对象的参数runconfig分配的PythonScriptStep对象.

图1的描述argumentsrunconfigPythonScriptStep标记为红色类

在此处输入图片说明

图2.关于使用描述RunConfiguration建立时PythonScriptStep标记为红色

在此处输入图片说明

作为参考,您可以参考下面这些官方示例列表。

  1. MLOps/examples/customer_churn/Customer Churn.ipynb
  2. MLOps/examples/AzureML-Primers/06 - 使用 Pipelines.ipynb 自动化 ML 工作流
  3. MLOps/examples/imagenet-transfer-learning/mlpipeline.py
  4. MLOpsPython/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py
  5. MLOpsPython/ml_service/pipelines/diabetes_regression_build_train_pipeline.py

他们首先为PythonScriptStep分配一个runconfig值。 希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM