Аргументы передаются неправильно, используя argparse - PullRequest
1 голос
/ 27 января 2020

Я не понимаю, почему аргументы передаются неправильно:

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 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

Что происходит и как это исправить?

1 Ответ

0 голосов
/ 27 января 2020

Я не знаю, какова ваша реальная среда только из описания вашего поста, но только в соответствии с официальным документом для классов PythonScriptStep и RunConfiguration, как На рисунках ниже, я думаю, отсутствует объект RunConfiguration, назначенный для параметра runconfig вашего PythonScriptStep объекта.

Рис. 1. Описание arguments и runconfig класса PythonScriptStep отмечено красным

enter image description here

Рис 2. Описание использования RunConfiguration при настройке PythonScriptStep, отмеченного красным

enter image description here

В качестве ссылок вы можете обратиться к приведенному ниже официальному образцу.

  1. MLOps / examples / customer_churn / Customer Churn.ipynb
  2. MLOps / examples / AzureML-Primers / 06 - Автоматизация рабочих процессов ML с Pipelines.ipynb
  3. MLOps / examples / imag enet - Transfer-learning / mlpipeline.py
  4. MLOpsPython / ml_service / pipelines / diabetes_regression_build_train_pipeline_with_r.py

Прежде всего, они присваивают значение runconfig для PythonScriptStep. Надеюсь, это поможет.

...