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
значение по умолчанию: None

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

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

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

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
значение по умолчанию: None

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

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

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

runconfig_pipeline_params
dict[str, PipelineParameter]
значение по умолчанию: None

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

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

inputs
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
значение по умолчанию: None

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

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
значение по умолчанию: None

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
Обязательно

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

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

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

runconfig_pipeline_params
dict[str, PipelineParameter]
Обязательно

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

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

inputs
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Обязательно

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

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Обязательно

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

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

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

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

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

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

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

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

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

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

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

Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое 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
Graph
Обязательно

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

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Обязательно

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

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

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

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

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

Возвращаемый тип