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._PythonScriptStepBasePythonScriptStep
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 relativo 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 transmitidos à computação por meio do parâmetro 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
|
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 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
|
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
|
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 Valor padrão: None
|
script_name
Obrigatório
|
[Obrigatório] O nome de um script Python relativo 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 transmitidos à computação por meio do parâmetro |
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 do 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
|
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}>>
Dicionário de pares nome-valor. Registrado como variáveis de ambiente com ">>AML_PARAMETER_<<". |
source_directory
Obrigatório
|
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
|
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 |
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. |