PythonScriptStep Класс
Создает этап конвейера Azure ML, который выполняет скрипт Python.
Пример использования PythonScriptStep приведен в записной книжке: https://aka.ms/pl-get-started.
Создайте шаг конвейера Машинного обучения Azure, на котором выполняется скрипт Python.
- Наследование
-
azureml.pipeline.core._python_script_step_base._PythonScriptStepBasePythonScriptStep
Конструктор
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
Обязательно
|
[Обязательно] Имя скрипта Python (относительно |
name
|
Имя шага этапа. Если значение не указано, используется Default value: None
|
arguments
|
Аргументы командной строки для файла скрипта Python. Аргументы будут переданы объекту вычислений через параметр Default value: None
|
compute_target
|
[Обязательно] Используемый целевой объект вычислений. Если не указано, будет использоваться целевой объект из runconfig. Этот параметр можно указать как целевой объект вычислений или имя строки целевого объекта вычислений в рабочей области. Если целевой объект вычислений недоступен во время создания конвейера, можно указать кортеж для ("имя целевого объекта вычислений", "тип целевого объекта вычислений"), чтобы исключить извлечение выборки целевого объекта вычислений (тип AmlCompute — "AmlCompute", а тип RemoteCompute — "VirtualMachine"). Default value: None
|
runconfig
|
Необязательный RunConfiguration для использования. RunConfiguration можно использовать для указания дополнительных требований для выполнения, таких как зависимости Conda и образ Docker. Если не указано, будет создан runconfig по умолчанию. Default value: None
|
runconfig_pipeline_params
|
Переопределяет свойства runconfig во время выполнения с использованием пар "ключ-значение", каждая из которых имеет имя свойства runconfig и PipelineParameter для этого свойства. Поддерживаемые значения: "NodeCount", "MpiProcessCountPerNode", "TensorflowWorkerCount", "TensorflowParameterServerCount" Default value: None
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Список входных привязок портов. Default value: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Список выходных привязок портов. Default value: None
|
params
|
Словарь пар "имя-значение", зарегистрированных как переменные среды с помощью "AML_PARAMETER_". Default value: None
|
source_directory
|
Папка, содержащая скрипт Python, среду Conda и другие ресурсы, используемые на этапе. Default value: None
|
allow_reuse
|
Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных. Default value: True
|
version
|
Необязательный тег версии для обозначения изменения функциональных возможностей этапа. Default value: None
|
hash_paths
|
НЕ РЕКОМЕНДУЕТСЯ: больше не требуется. Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое Default value: None
|
script_name
Обязательно
|
[Обязательно] Имя скрипта Python (относительно |
name
Обязательно
|
Имя шага этапа. Если значение не указано, используется |
arguments
Обязательно
|
[str]
Аргументы командной строки для файла скрипта Python. Аргументы будут переданы объекту вычислений через параметр |
compute_target
Обязательно
|
[Обязательно] Используемый целевой объект вычислений. Если не указано, будет использоваться целевой объект из runconfig. Этот параметр можно указать как целевой объект вычислений или имя строки целевого объекта вычислений в рабочей области. Если целевой объект вычислений недоступен во время создания конвейера, можно указать кортеж для ("имя целевого объекта вычислений", "тип целевого объекта вычислений"), чтобы исключить извлечение выборки целевого объекта вычислений (тип AmlCompute — "AmlCompute", а тип RemoteCompute — "VirtualMachine"). |
runconfig
Обязательно
|
Необязательный RunConfiguration для использования. RunConfiguration можно использовать для указания дополнительных требований к выполнению, таких как зависимости conda и образ Docker. Если не указано, будет создан runconfig по умолчанию. |
runconfig_pipeline_params
Обязательно
|
Переопределяет свойства 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
Обязательно
|
Папка, содержащая скрипт Python, среду Conda и другие ресурсы, используемые на этапе. |
allow_reuse
Обязательно
|
Указывает, должен ли этап повторно использовать предыдущие результаты при повторном выполнении с теми же параметрами. Повторное использование включено по умолчанию. Если содержимое этапа (скрипты или зависимости), а также входные данные и параметры не изменяются, выходные данные предыдущего выполнения этого этапа используются повторно. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов. Если в качестве входных данных используются наборы данных Машинного обучения Azure, то повторное использование зависит от изменения определения набора данных, а не базовых данных. |
version
Обязательно
|
Необязательный тег версии для обозначения изменения функциональных возможностей этапа. |
hash_paths
Обязательно
|
НЕ РЕКОМЕНДУЕТСЯ: больше не требуется. Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое |
Комментарии
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>
Контекст графа. |
Возвращаемое значение
Тип | Описание |
---|---|
Созданный узел. |