Поделиться через


PythonScriptStep Класс

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

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

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

Конструктор

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 используется.

Default value: None
arguments

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

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

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

Default value: None
outputs

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

Default value: None
params

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

Default value: None
source_directory
str

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

Default value: None
allow_reuse

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

Default value: True
version
str

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

Default value: None
hash_paths

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

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

Default value: 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 env и другие ресурсы, используемые на шаге.

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
   )

PythonScriptSteps поддерживает ряд типов входных и выходных данных. К ним относятся DatasetConsumptionConfig входные и выходные данные, а также OutputDatasetConfig входные PipelineOutputAbstractDatasetPipelineDataи выходные данные.

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

create_node

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

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

create_node(graph, default_datastore, context)

Параметры

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

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

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

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

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

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

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

Тип Описание

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