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


CommandStep Класс

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

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

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

Конструктор

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

Параметры

Имя Описание
command
list или str

Команда для выполнения или путь к исполняемому файлу или скрипту относительно source_directory. Требуется, если только он не предоставляется с помощью runconfig. Можно указать с помощью строковых аргументов в одной строке или с помощью параметра input/output/PipelineParameter в списке.

Default value: None
name
str

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

Default value: None
compute_target
DsvmCompute или AmlCompute или RemoteCompute или HDInsightCompute или str или tuple

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

Default value: None
runconfig

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

Default value: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

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

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

Default value: None
inputs
list[InputPortBinding или DataReference или PortDataReference или PipelineData или <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> или DatasetConsumptionConfig]

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

Default value: None
outputs

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

Default value: None
params

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

Default value: None
source_directory
str

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

Default value: None
allow_reuse

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

Default value: True
version
str

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

Default value: None
command
Обязательно
list или str

Команда для выполнения или путь к исполняемому файлу или скрипту относительно source_directory. Требуется, если только он не предоставляется с помощью runconfig. Можно указать с помощью строковых аргументов в одной строке или с помощью параметра input/output/PipelineParameter в списке.

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

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

compute_target
Обязательно
DsvmCompute или AmlCompute или RemoteCompute или HDInsightCompute или str или tuple

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

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

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

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

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

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

inputs
Обязательно
list[InputPortBinding или DataReference или PortDataReference или PipelineData или <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> или DatasetConsumptionConfig]

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

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

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

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

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

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

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

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

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

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

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

Комментарии

CommandStep — это базовый встроенный этап выполнения команды в заданном целевом объекте вычислений. Он принимает команду в качестве параметра или из других параметров, таких как runconfig. Он также принимает другие необязательные параметры, такие как целевой объект вычислений, входные и выходные данные. Чтобы указать требования для CommandStep, например пользовательский образ Docker, необходимо использовать ScriptRunConfig или RunConfiguration.

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

Для системно известных команд каталог source_directory не требуется, но его по-прежнему можно указывать со всеми зависимыми файлами, связанными с этим этапом.

В следующем примере кода показано, как использовать CommandStep в сценарии обучения машинного обучения. Для вывода списка файлов в Linux:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

Для выполнения скрипта Python:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

Для выполнения скрипта Python через ScriptRunConfig:


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

Для дополнительных сведений о создании конвейеров см. https://aka.ms/pl-first-pipeline.

Методы

create_node

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

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

create_node

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

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

create_node(graph, default_datastore, context)

Параметры

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

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

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

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

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

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

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

Тип Описание

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