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
|
[Obrigatório] O nome de um script Python em relação a |
|
name
|
O nome da etapa. Se não for especificado, 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 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
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Uma lista de associações de porta de entrada. Valor padrão: None
|
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
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
|
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
|
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 é Valor padrão: None
|
|
script_name
Obrigatório
|
[Obrigatório] O nome de um script Python em relação a |
|
name
Obrigatório
|
O nome da etapa. Se não for especificado, |
|
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 |
|
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
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Uma lista de associações de porta de entrada. |
|
outputs
Obrigatório
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
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
|
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
|
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 é |
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. |