PythonScriptStep Класс

Создает этап конвейера Azure ML, который выполняет скрипт Python.

Пример использования PythonScriptStep приведен в записной книжке: https://aka.ms/pl-get-started.

Создайте шаг конвейера Машинного обучения Azure, на котором выполняется скрипт Python.

Наследование
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

Конструктор

PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)

Параметры

Имя Описание
script_name
Обязательно
str

[Обязательно] Имя скрипта Python (относительно source_directory).

name
str

Имя шага этапа. Если значение не указано, используется script_name.

значение по умолчанию: None
arguments

Аргументы командной строки для файла скрипта Python. Аргументы будут переданы объекту вычислений через параметр arguments в RunConfiguration. Дополнительные сведения об обработке таких аргументов, как специальные символы: RunConfiguration.

значение по умолчанию: None
compute_target

[Обязательно] Используемый целевой объект вычислений. Если не указано, будет использоваться целевой объект из runconfig. Этот параметр можно указать как целевой объект вычислений или имя строки целевого объекта вычислений в рабочей области. Если целевой объект вычислений недоступен во время создания конвейера, можно указать кортеж для ("имя целевого объекта вычислений", "тип целевого объекта вычислений"), чтобы исключить извлечение выборки целевого объекта вычислений (тип AmlCompute — "AmlCompute", а тип RemoteCompute — "VirtualMachine").

значение по умолчанию: None
runconfig

Необязательный RunConfiguration для использования. RunConfiguration можно использовать для указания дополнительных требований для выполнения, таких как зависимости Conda и образ Docker. Если не указано, будет создан runconfig по умолчанию.

значение по умолчанию: None
runconfig_pipeline_params

Переопределяет свойства runconfig во время выполнения с использованием пар "ключ-значение", каждая из которых имеет имя свойства runconfig и PipelineParameter для этого свойства.

Поддерживаемые значения: "NodeCount", "MpiProcessCountPerNode", "TensorflowWorkerCount", "TensorflowParameterServerCount"

значение по умолчанию: None
inputs

Список входных привязок портов.

значение по умолчанию: None
outputs

Список выходных привязок портов.

значение по умолчанию: None
params

Словарь пар "имя-значение", зарегистрированных как переменные среды с помощью "AML_PARAMETER_".

значение по умолчанию: None
source_directory
str

Папка, содержащая скрипт Python, среду Conda и другие ресурсы, используемые на этапе.

значение по умолчанию: None
allow_reuse

Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных.

значение по умолчанию: True
version
str

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

значение по умолчанию: None
hash_paths

НЕ РЕКОМЕНДУЕТСЯ: больше не требуется.

Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое source_directory хэшируется (кроме файлов, перечисленных в .amlignore или .gitignore).

значение по умолчанию: None
script_name
Обязательно
str

[Обязательно] Имя скрипта Python (относительно source_directory).

name
Обязательно
str

Имя шага этапа. Если значение не указано, используется script_name.

arguments
Обязательно
[str]

Аргументы командной строки для файла скрипта Python. Аргументы будут переданы объекту вычислений через параметр arguments в RunConfiguration. Дополнительные сведения об обработке таких аргументов, как специальные символы: RunConfiguration.

compute_target
Обязательно

[Обязательно] Используемый целевой объект вычислений. Если не указано, будет использоваться целевой объект из runconfig. Этот параметр можно указать как целевой объект вычислений или имя строки целевого объекта вычислений в рабочей области. Если целевой объект вычислений недоступен во время создания конвейера, можно указать кортеж для ("имя целевого объекта вычислений", "тип целевого объекта вычислений"), чтобы исключить извлечение выборки целевого объекта вычислений (тип AmlCompute — "AmlCompute", а тип RemoteCompute — "VirtualMachine").

runconfig
Обязательно

Необязательный RunConfiguration для использования. RunConfiguration можно использовать для указания дополнительных требований к выполнению, например зависимостей conda и образа Docker. Если не указано, будет создан runconfig по умолчанию.

runconfig_pipeline_params
Обязательно

Переопределяет свойства runconfig во время выполнения с использованием пар "ключ-значение", каждая из которых имеет имя свойства runconfig и PipelineParameter для этого свойства.

Поддерживаемые значения: "NodeCount", "MpiProcessCountPerNode", "TensorflowWorkerCount", "TensorflowParameterServerCount"

inputs
Обязательно

Список входных привязок портов.

outputs
Обязательно

Список выходных привязок портов.

params
Обязательно
<xref:<xref:{str: str}>>

Словарь пар "имя-значение". Зарегистрировано как переменные среды с AML_PARAMETER_>><<.

source_directory
Обязательно
str

Папка, содержащая скрипт Python, среду Conda и другие ресурсы, используемые на этапе.

allow_reuse
Обязательно

Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных.

version
Обязательно
str

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

hash_paths
Обязательно

НЕ РЕКОМЕНДУЕТСЯ: больше не требуется.

Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое source_directory хэшируется (кроме файлов, перечисленных в .amlignore или .gitignore).

Комментарии

PythonScriptStep — это базовый, встроенный этап для выполнения скрипта Python на целевом объекте вычислений. Этот шаг принимает имя скрипта и другие необязательные параметры, например аргументы для скрипта, целевого объекта вычислений, входных и выходных данных. Если целевой объект вычислений не указан, используется целевой объект вычислений по умолчанию для рабочей области. Можно также использовать RunConfiguration для указания требований для PythonScriptStep, таких как зависимости Conda и образ Docker.

Для работы с PythonScriptStep рекомендуется использовать отдельную папку для скриптов и зависимых файлов, связанных с этим этапом, и указать эту папку с помощью параметра source_directory. Эта рекомендация имеет два преимущества. Во-первых, это помогает уменьшить размер моментального снимка, создаваемого для этапа, поскольку создается моментальный снимок всего, что требуется для данного этапа. Во-вторых, выходные данные этапа предыдущего выполнения могут быть использованы повторно, если нет изменений в source_directory, которые активируют повторную отправку моментального снимка.

В следующем примере кода показано, как использовать PythonScriptStep в сценарии обучения машинного обучения. Дополнительные сведения об этом примере: https://aka.ms/pl-first-pipeline.


   from azureml.pipeline.steps import PythonScriptStep

   trainStep = PythonScriptStep(
       script_name="train.py",
       arguments=["--input", blob_input_data, "--output", output_data1],
       inputs=[blob_input_data],
       outputs=[output_data1],
       compute_target=compute_target,
       source_directory=project_folder
   )

PythonScriptStep поддерживает ряд входных и выходных типов. К ним относятся DatasetConsumptionConfig для входных данных и OutputDatasetConfig, PipelineOutputAbstractDataset и PipelineData для входных и выходных данных.

Ниже приведен пример использования Dataset в качестве входных и выходных данных этапа.


   from azureml.core import Dataset
   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import Pipeline, PipelineData

   # get input dataset
   input_ds = Dataset.get_by_name(workspace, 'weather_ds')

   # register pipeline output as dataset
   output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
   output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)

   # configure pipeline step to use dataset as the input and output
   prep_step = PythonScriptStep(script_name="prepare.py",
                                inputs=[input_ds.as_named_input('weather_ds')],
                                outputs=[output_ds],
                                compute_target=compute_target,
                                source_directory=project_folder)

Примеры использования других типов входных и выходных данных см. на соответствующих страницах документации.

Методы

create_node

Создание узла для PythonScriptStep и его добавление в указанный граф.

Данный метод не предназначен для непосредственного использования. При создании экземпляра конвейера с помощью этого этапа Azure ML автоматически передает необходимые параметры через этот метод, чтобы данный этап можно было добавить в граф конвейера, представляющий рабочий процесс.

create_node

Создание узла для PythonScriptStep и его добавление в указанный граф.

Данный метод не предназначен для непосредственного использования. При создании экземпляра конвейера с помощью этого этапа Azure ML автоматически передает необходимые параметры через этот метод, чтобы данный этап можно было добавить в граф конвейера, представляющий рабочий процесс.

create_node(graph, default_datastore, context)

Параметры

Имя Описание
graph
Обязательно

Объект графа, в который добавляется узел.

default_datastore
Обязательно

Хранилище данных по умолчанию.

context
Обязательно
<xref:azureml.pipeline.core._GraphContext>

Контекст графа.

Возвращаемое значение

Тип Описание

Созданный узел.