Compartilhar via


CommandStep Classe

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

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

Herança
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
CommandStep

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

Nome Description
command
list ou str

O comando a ser executado ou 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 cadeia de caracteres única ou com input/output/PipelineParameter em uma lista.

valor padrão: None
name
str

O nome da etapa. Se não for especificado, será usada a primeira palavra no command.

valor padrão: None
compute_target

O destino de computação a ser usado. Quando não é especificado, o destino de runconfig é usado. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome de cadeia de caracteres de um destino de computação no workspace. Se o destino de computação não está disponível no momento da criação do pipeline, é possível especificar uma tupla de ("nome de destino de computação" e "tipo de destino de computação") para evitar o fetch do objeto de destino de computação (o tipo AmlCompute é "AmlCompute", e o tipo RemoteCompute é "VirtualMachine").

valor padrão: 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.

valor padrão: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

Substituições das propriedades runconfig no runtime usando pares chave-valor pelo nome da propriedade runconfig e o PipelineParameter de cada propriedade.

Valores com suporte: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount' e 'TensorflowParameterServerCount'

valor padrão: None
inputs
list[InputPortBinding ou DataReference ou PortDataReference ou PipelineData ou <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> ou DatasetConsumptionConfig]

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

valor padrão: None
outputs

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

valor padrão: None
params

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

valor padrão: None
source_directory
str

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

valor padrão: None
allow_reuse

Indica se a etapa deve ou não reutilizar os resultados anteriores quando executada novamente com as mesmas configurações. A reutilização está habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), as entradas e os parâmetros permanecerem inalterados, será reutilizada a saída da execução anterior dessa etapa. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior serão disponibilizados imediatamente para etapas posteriores. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada dependendo de ter havido ou não alteração da definição do conjunto de dados, não de ter havido alteração dos dados subjacentes.

valor padrão: True
version
str

Uma marca de versão opcional para denotar uma alteração na funcionalidade da etapa.

valor padrão: None
command
Obrigatório
list ou str

O comando a ser executado ou 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 cadeia de caracteres única ou com input/output/PipelineParameter em uma lista.

name
Obrigatório
str

O nome da etapa. Se não for especificado, será usada a primeira palavra no command.

compute_target
Obrigatório

O destino de computação a ser usado. Quando não é especificado, o destino de runconfig é usado. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome de cadeia de caracteres de um destino de computação no workspace. Se o destino de computação não está disponível no momento da criação do pipeline, é possível especificar uma tupla de ("nome de destino de computação" e "tipo de destino de computação") para evitar o fetch do objeto de destino de computação (o tipo AmlCompute é "AmlCompute", e o tipo RemoteCompute é "VirtualMachine").

runconfig
Obrigató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
Obrigatório
<xref:<xref:{str: PipelineParameter}>>

Substituições das propriedades runconfig no runtime usando pares chave-valor pelo nome da propriedade runconfig e o PipelineParameter de cada propriedade.

Valores com suporte: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount' e 'TensorflowParameterServerCount'

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

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

outputs
Obrigatório

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

params
Obrigatório

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

source_directory
Obrigatório
str

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

allow_reuse
Obrigatório

Indica se a etapa deve ou não reutilizar os resultados anteriores quando executada novamente com as mesmas configurações. A reutilização está habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), as entradas e os parâmetros permanecerem inalterados, será reutilizada a saída da execução anterior dessa etapa. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior serão disponibilizados imediatamente para etapas posteriores. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada dependendo de ter havido ou não alteração da definição do conjunto de dados, não de ter havido alteração dos dados subjacentes.

version
Obrigatório
str

Uma marca de versão opcional para denotar uma alteração na funcionalidade da etapa.

Comentários

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

A melhor prática para trabalhar com CommandStep é usar uma pasta separada para o executável ou o script para executar os arquivos dependentes associados à etapa e especificar essa pasta com o parâmetro source_directory. Essa melhor prática oferece dois benefícios. Primeiro, ajuda a reduzir o tamanho do instantâneo criado para a etapa porque o instantâneo captura apenas o que é necessário nessa etapa. Segundo, é possível reutilizar a saída da etapa de uma execução anterior quando não há alterações no source_directory que disparariam um novo upload do instantâneo.

Para os comandos conhecidos do sistema, source_directory não é necessário, mas você ainda poderá fornecer a ele os 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 do 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 do 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)

Confira https://aka.ms/pl-first-pipeline para obter mais detalhes sobre como criar pipelines em geral.

Métodos

create_node

Cria um nó para CommandStep e adicione-o ao grafo especificado.

Esse método não deve ser usado 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 grafo de pipeline que representa o fluxo de trabalho.

create_node

Cria um nó para CommandStep e adicione-o ao grafo especificado.

Esse método não deve ser usado 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 grafo de pipeline que representa o fluxo de trabalho.

create_node(graph, default_datastore, context)

Parâmetros

Nome Description
graph
Obrigatório

O objeto de grafo ao qual adicionar o nó.

default_datastore
Obrigatório

O armazenamento de dados padrão.

context
Obrigatório
<xref:_GraphContext>

O contexto do grafo.

Retornos

Tipo Description

O nó criado.