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

script_name
str
Obrigatório

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

name
str
valor padrão: None

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

arguments
list
valor padrão: None

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
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
valor padrão: None

[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
RunConfiguration
valor padrão: None

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.

runconfig_pipeline_params
dict[str, PipelineParameter]
valor padrão: None

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'

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
valor padrão: None

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

params
dict
valor padrão: None

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

source_directory
str
valor padrão: None

Uma pasta que contém o script Python, o ambiente do Conda e outros recursos usados na etapa.

allow_reuse
bool
valor padrão: True

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

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

hash_paths
list
valor padrão: None

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).

script_name
str
Obrigatório

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

name
str
Obrigatório

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

arguments
[str]
Obrigatório

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
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
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
RunConfiguration
Obrigatório

O RunConfiguration opcional a ser usado. 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, um runconfig padrão será criado.

runconfig_pipeline_params
dict[str, PipelineParameter]
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'

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Obrigatório

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

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

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

source_directory
str
Obrigatório

Uma pasta que contém o script Python, o ambiente do Conda e outros recursos usados na etapa.

allow_reuse
bool
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
str
Obrigatório

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

hash_paths
list
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

graph
Graph
Obrigatório

O objeto de grafo ao qual adicionar o nó.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Obrigatório

O armazenamento de dados padrão.

context
<xref:azureml.pipeline.core._GraphContext>
Obrigatório

O contexto do grafo.

Retornos

O nó criado.

Tipo de retorno