Compartilhar via


PythonScriptStep Classe

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

Para obter um exemplo de como usar PythonScriptStep, consulte o bloco de anotações https://aka.ms/pl-get-started.

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

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 em relação 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 passados para computação por meio do arguments parâmetro em RunConfiguration. Para obter mais detalhes sobre como lidar com argumentos como símbolos especiais, consulte o RunConfiguration.

Valor padrão: None
compute_target

[Obrigatório] O destino de computação a ser usado. Se não for especificado, o destino da configuração de execução será 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 workspace. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você poderá especificar uma tupla de ('nome de 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').

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 dependências do Conda e uma imagem do Docker. Se não for especificado, uma configuração de execução padrão será criada.

Valor padrão: None
runconfig_pipeline_params

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

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

Valor padrão: None
inputs

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

Valor padrão: None
outputs

Uma lista de associaçõ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 script Python, conda env e outros recursos usados na etapa.

Valor padrão: None
allow_reuse

Indica se a etapa deve reutilizar os resultados anteriores ao executar novamente com as mesmas configurações. A reutilização é habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), bem como entradas e parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizado. 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 Azure Machine Learning 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.

Valor padrão: True
version
str

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

Valor padrão: None
hash_paths

PRETERIDO: não é mais necessário.

Uma lista de caminhos para o hash ao verificar se há 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 é source_directory hash, exceto para arquivos listados em .amlignore ou .gitignore.

Valor padrão: None
script_name
Obrigatório
str

[Obrigatório] O nome de um script Python em relação 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 passados para computação por meio do arguments parâmetro em RunConfiguration. Para obter mais detalhes sobre como lidar com argumentos como símbolos especiais, consulte o RunConfiguration.

compute_target
Obrigatório

[Obrigatório] O destino de computação a ser usado. Se não for especificado, o destino da configuração de execução será 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 workspace. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você poderá especificar uma tupla de ('nome de 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
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, uma configuração de execução padrão será criada.

runconfig_pipeline_params
Obrigatório

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

Valores com suporte: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', '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}>>

Um 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 script Python, conda env e outros recursos usados na etapa.

allow_reuse
Obrigatório

Indica se a etapa deve reutilizar os resultados anteriores ao executar novamente com as mesmas configurações. A reutilização é habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), bem como entradas e parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizado. 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 Azure Machine Learning 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
Obrigatório
str

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

hash_paths
Obrigatório

PRETERIDO: não é mais necessário.

Uma lista de caminhos para o hash ao verificar se há 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 é source_directory hash, exceto para 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, 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 requisitos para o PythonScriptStep, como dependências conda e imagem do docker.

A melhor prática para trabalhar com PythonScriptStep é usar uma pasta separada para scripts e quaisquer arquivos dependentes associados à etapa e especificar essa pasta com o source_directory parâmetro. Seguir essa prática recomendada tem dois benefícios. Primeiro, ele ajuda a reduzir o tamanho do instantâneo criado para a etapa, pois somente o que é necessário para a etapa é instantâneo. Em segundo lugar, a saída da etapa de uma execução anterior poderá ser reutilizado se não houver alterações no source_directory que dispararia um upload novamente do instantâneo.

O exemplo de código a seguir mostra o uso de um PythonScriptStep em um cenário de treinamento de machine learning. Para obter mais detalhes sobre este exemplo, consulte 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. Elas incluem DatasetConsumptionConfig entradas e OutputDatasetConfig, PipelineOutputAbstractDatasete PipelineData para entradas e saídas.

Veja abaixo um exemplo de como usar Dataset como entrada e saída de 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)

Faça referência às 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 adicione-o ao grafo especificado.

Esse método não se destina a 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

Crie um nó para PythonScriptStep e adicione-o ao grafo especificado.

Esse método não se destina a 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:azureml.pipeline.core._GraphContext>

O contexto do grafo.

Retornos

Tipo Description

O nó criado.