Partilhar via


CommandStep Classe

Crie uma etapa do Pipeline do Azure ML que execute um comando.

Crie uma etapa do Pipeline do Azure ML que execute um comando.

Construtor

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)

Parâmetros

Name Description
command
list ou str

O comando a ser executado ou o caminho do executável/script relativo a source_directory. É necessário, a menos que seja fornecido com runconfig. Ele pode ser especificado com argumentos de cadeia de caracteres em uma única cadeia de caracteres ou com input/output/PipelineParameter em uma lista.

Default value: None
name
str

O nome da etapa. Se não for especificado, a primeira palavra do command é usada.

Default value: None
compute_target

O destino de computação a ser usado. Se não for especificado, o destino do runconfig é usado. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome da cadeia de caracteres de um destino de computação no espaço de trabalho. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você pode especificar uma tupla de ('nome do destino de computação', 'tipo de destino de computação') para evitar buscar o objeto de destino de computação (o tipo AmlCompute é 'AmlCompute' e o tipo RemoteCompute é 'VirtualMachine').

Default value: None
runconfig

O objeto de configuração opcional que encapsula as informações necessárias para enviar uma execução de treinamento em um experimento.

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

Substitui as propriedades runconfig em tempo de execução usando pares chave-valor cada um com o nome da propriedade runconfig e PipelineParameter para essa propriedade.

Valores suportados: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount'

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

Uma lista de ligações de porta de entrada.

Default value: None
outputs

Uma lista de ligações de porta de saída.

Default value: None
params

Um dicionário de pares nome-valor registrados como variáveis de ambiente com "AML_PARAMETER_".

Default value: None
source_directory
str

Uma pasta que contém scripts, conda env e outros recursos usados na etapa.

Default value: None
allow_reuse

Indica se a etapa deve reutilizar os resultados anteriores ao ser executada novamente com as mesmas configurações. A reutilização está ativada por predefinição. Se o conteúdo da etapa (scripts/dependências), bem como as entradas e os parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizada. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer etapas subsequentes. Se você usar conjuntos de dados do Aprendizado de Máquina do Azure como entradas, a reutilização será determinada se a definição do conjunto de dados foi alterada, não se os dados subjacentes foram alterados.

Default value: True
version
str

Uma tag de versão opcional para indicar uma alteração na funcionalidade da etapa.

Default value: None
command
Necessário
list ou str

O comando a ser executado ou o caminho do executável/script relativo a source_directory. É necessário, a menos que seja fornecido com runconfig. Ele pode ser especificado com argumentos de cadeia de caracteres em uma única cadeia de caracteres ou com input/output/PipelineParameter em uma lista.

name
Necessário
str

O nome da etapa. Se não for especificado, a primeira palavra do command é usada.

compute_target
Necessário

O destino de computação a ser usado. Se não for especificado, o destino do runconfig é usado. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome da cadeia de caracteres de um destino de computação no espaço de trabalho. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você pode especificar uma tupla de ('nome do destino de computação', 'tipo de destino de computação') para evitar buscar o objeto de destino de computação (o tipo AmlCompute é 'AmlCompute' e o tipo RemoteCompute é 'VirtualMachine').

runconfig
Necessário

O objeto de configuração opcional que encapsula as informações necessárias para enviar uma execução de treinamento em um experimento.

runconfig_pipeline_params
Necessário
<xref:<xref:{str: PipelineParameter}>>

Substitui as propriedades runconfig em tempo de execução usando pares chave-valor cada um com o nome da propriedade runconfig e PipelineParameter para essa propriedade.

Valores suportados: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount'

inputs
Necessário
list[InputPortBinding ou DataReference ou PortDataReference ou PipelineData ou <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> ou DatasetConsumptionConfig]

Uma lista de ligações de porta de entrada.

outputs
Necessário

Uma lista de ligações de porta de saída.

params
Necessário

Um dicionário de pares nome-valor registrados como variáveis de ambiente com "AML_PARAMETER_".

source_directory
Necessário
str

Uma pasta que contém scripts, conda env e outros recursos usados na etapa.

allow_reuse
Necessário

Indica se a etapa deve reutilizar os resultados anteriores ao ser executada novamente com as mesmas configurações. A reutilização está ativada por predefinição. Se o conteúdo da etapa (scripts/dependências), bem como as entradas e os parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizada. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer etapas subsequentes. Se você usar conjuntos de dados do Aprendizado de Máquina do Azure como entradas, a reutilização será determinada se a definição do conjunto de dados foi alterada, não se os dados subjacentes foram alterados.

version
Necessário
str

Uma tag de versão opcional para indicar uma alteração na funcionalidade da etapa.

Observações

Um CommandStep é uma etapa básica e integrada para executar um comando no destino de computação determinado. Ele usa um comando como parâmetro ou de outros parâmetros como runconfig. Ele também leva outros parâmetros opcionais, como destino de computação, entradas e saídas. Você deve usar um ScriptRunConfig ou RunConfiguration para especificar requisitos para o CommandStep, como uma imagem docker personalizada.

A prática recomendada para trabalhar com CommandStep é usar uma pasta separada para o executável ou script para executar quaisquer arquivos dependentes associados à etapa e especificar essa pasta com o source_directory parâmetro. Seguir esta boa prática tem duas vantagens. Primeiro, ele ajuda a reduzir o tamanho do instantâneo criado para a etapa, pois apenas o que é necessário para a etapa é instantâneo. Em segundo lugar, a saída da etapa de uma execução anterior pode ser reutilizada se não houver alterações na source_directory que acionariam um recarregamento do instantâneo.

Para os comandos source_directory conhecidos do sistema não é necessário, mas você ainda pode fornecê-lo com quaisquer arquivos dependentes associados à etapa.

O exemplo de código a seguir mostra como usar um CommandStep em um cenário de treinamento de aprendizado de máquina. Para listar arquivos no linux:


   from azureml.pipeline.steps import CommandStep

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

Para executar um script 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)

Para executar um script python via 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)

Consulte https://aka.ms/pl-first-pipeline para obter mais detalhes sobre a criação de pipelines em geral.

Métodos

create_node

Crie um nó para CommandStep e adicione-o ao gráfico especificado.

Este método não se destina a ser utilizado diretamente. Quando um pipeline é instanciado com essa etapa, o Azure ML passa automaticamente os parâmetros necessários por meio desse método para que essa etapa possa ser adicionada a um gráfico de pipeline que representa o fluxo de trabalho.

create_node

Crie um nó para CommandStep e adicione-o ao gráfico especificado.

Este método não se destina a ser utilizado diretamente. Quando um pipeline é instanciado com essa etapa, o Azure ML passa automaticamente os parâmetros necessários por meio desse método para que essa etapa possa ser adicionada a um gráfico de pipeline que representa o fluxo de trabalho.

create_node(graph, default_datastore, context)

Parâmetros

Name Description
graph
Necessário

O objeto gráfico ao qual adicionar o nó.

default_datastore
Necessário

O armazenamento de dados padrão.

context
Necessário
<xref:_GraphContext>

O contexto do gráfico.

Devoluções

Tipo Description

O nó criado.