Compartilhar via


PythonScriptStep Classe

Cria uma etapa do Azure ML Pipeline que executa o script Python.

Para obter um exemplo de como usar PythonScriptStep, confira o notebook https://aka.ms/pl-get-started.

Crie uma etapa do Pipeline do Azure ML que executa o script Python.

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

Construtor

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)

Parâmetros

Nome Description
script_name
Obrigatório
str

[Obrigatório] O nome de um script Python relativo a source_directory.

name
str

O nome da etapa. Se não for especificado, script_name será usado.

valor padrão: None
arguments

Argumentos de linha de comando para o arquivo de script Python. Os argumentos serão transmitidos à computação por meio do parâmetro arguments em RunConfiguration. Para obter mais detalhes sobre como tratar argumentos como símbolos especiais, consulte RunConfiguration.

valor padrão: None
compute_target

[Obrigatório] O destino de computação a ser usado. Se não for especificado, o destino do runconfig será 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 estiver disponível no momento da criação do pipeline, será 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 RunConfiguration opcional a ser usado. Um RunConfiguration pode ser usado para especificar requisitos adicionais para a execução, como as dependências do Conda e uma imagem do Docker. Se não for especificado, um runconfig padrão será criado.

valor padrão: None
runconfig_pipeline_params

Substitui as propriedades runconfig no runtime usando pares chave-valor, em que cada um tem o nome da propriedade runconfig e o PipelineParameter dessa propriedade.

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

valor padrão: None
inputs

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 o script Python, o ambiente do Conda 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
hash_paths

PRETERIDO: não é mais necessário.

Uma lista de caminhos para hash ao verificar alterações no conteúdo da etapa. Se não houver alterações detectadas, o pipeline reutilizará o conteúdo da etapa de uma execução anterior. Por padrão, o conteúdo de source_directory recebe o hash (exceto os arquivos listados em .amlignore ou .gitignore).

valor padrão: None
script_name
Obrigatório
str

[Obrigatório] O nome de um script Python relativo a source_directory.

name
Obrigatório
str

O nome da etapa. Se não for especificado, script_name será usado.

arguments
Obrigatório
[str]

Argumentos de linha de comando para o arquivo de script Python. Os argumentos serão transmitidos à computação por meio do parâmetro arguments em RunConfiguration. Para obter mais detalhes sobre como tratar argumentos como símbolos especiais, consulte RunConfiguration.

compute_target
Obrigatório

[Obrigatório] O destino de computação a ser usado. Se não for especificado, o destino do runconfig será 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 estiver disponível no momento da criação do pipeline, será 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 RunConfiguration opcional a ser usado. RunConfiguration pode ser usado para especificar requisitos adicionais para a execução, como dependências conda e uma imagem do Docker. Se não for especificado, um runconfig padrão será criado.

runconfig_pipeline_params
Obrigatório

Substitui as propriedades runconfig no runtime usando pares chave-valor, em que cada um tem o nome da propriedade runconfig e o PipelineParameter dessa propriedade.

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

inputs
Obrigatório

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

outputs
Obrigatório

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

params
Obrigatório
<xref:<xref:{str: str}>>

Dicionário de pares nome-valor. Registrado como variáveis de ambiente com ">>AML_PARAMETER_<<".

source_directory
Obrigatório
str

Uma pasta que contém o script Python, o ambiente do Conda 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.

hash_paths
Obrigatório

PRETERIDO: não é mais necessário.

Uma lista de caminhos para hash ao verificar alterações no conteúdo da etapa. Se não houver alterações detectadas, o pipeline reutilizará o conteúdo da etapa de uma execução anterior. Por padrão, o conteúdo de source_directory recebe o hash (exceto os arquivos listados em .amlignore ou .gitignore).

Comentários

Um PythonScriptStep é uma etapa básica e interna para executar um script Python em um destino de computação. Ele usa um nome de script e outros parâmetros opcionais, tais como argumentos para o script, destino de computação, entradas e saídas. Se nenhum destino de computação for especificado, o destino de computação padrão para o workspace será usado. Você também pode usar um RunConfiguration para especificar os requisitos de PythonScriptStep, como dependências do Conda e imagem do Docker.

A melhor prática para trabalhar com PythonScriptStep é usar uma pasta separada para scripts e todos os arquivos dependentes associados à etapa e especificá-la com o parâmetro source_directory. Seguir 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, a saída da etapa de uma execução anterior pode ser reutilizada caso não haja alterações no source_directory que disparariam um novo carregamento do instantâneo.

O exemplo de código a seguir mostra como usar um PythonScriptStep em um cenário de treinamento de aprendizado de máquina. Para saber mais sobre este exemplo, confira 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
   )

O PythonScriptSteps dá suporte a vários tipos de entrada e saída. Isso inclui DatasetConsumptionConfig para entradas e OutputDatasetConfig, PipelineOutputAbstractDataset e PipelineData para entradas e saídas.

Veja abaixo um exemplo de como usar Dataset como entrada e saída de uma etapa:


   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)

Veja as páginas de documentação correspondentes para obter exemplos de como usar outros tipos de entrada/saída.

Métodos

create_node

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

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

create_node

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

Esse método não deve ser usado diretamente. Quando um pipeline é instanciado com essa etapa, o Azure ML transmite os parâmetros necessários automaticamente por meio desse método para que a etapa possa ser adicionada a um gráfico 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:azureml.pipeline.core._GraphContext>

O contexto do grafo.

Retornos

Tipo Description

O nó criado.