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 execute 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
| Name | Description |
|---|---|
|
script_name
Necessário
|
[Obrigatório] O nome de um script Python relativo a |
|
name
|
O nome da etapa. Se não especificado, Default value: None
|
|
arguments
|
Argumentos de linha de comando para o arquivo de script Python. Os argumentos serão passados para computação através do Default value: 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 da cadeia de caracteres de um destino de computação no espaço de trabalho. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você pode especificar uma tupla de ('nome do 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'). Default value: None
|
|
runconfig
|
O RunConfiguration opcional a ser usado. Um RunConfiguration pode ser usado para especificar requisitos adicionais para a execução, como dependências conda e uma imagem docker. Se não for especificado, um runconfig padrão será criado. Default value: None
|
|
runconfig_pipeline_params
|
Substitui as propriedades runconfig em tempo de execução usando pares chave-valor cada um com o nome da propriedade runconfig e PipelineParameter para essa propriedade. Valores suportados: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' Default value: None
|
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Uma lista de ligações de porta de entrada. Default value: None
|
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Uma lista de ligações de porta de saída. Default value: None
|
|
params
|
Um dicionário de pares nome-valor registrados como variáveis de ambiente com "AML_PARAMETER_". Default value: None
|
|
source_directory
|
Uma pasta que contém script Python, conda env e outros recursos usados na etapa. Default value: None
|
|
allow_reuse
|
Indica se a etapa deve reutilizar os resultados anteriores ao ser executada novamente com as mesmas configurações. A reutilização está ativada por predefinição. Se o conteúdo da etapa (scripts/dependências), bem como as entradas e os parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizada. 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 Aprendizado de Máquina do Azure 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. Default value: True
|
|
version
|
Uma tag de versão opcional para indicar uma alteração na funcionalidade da etapa. Default value: None
|
|
hash_paths
|
DEPRECATED: não é mais necessário. Uma lista de caminhos para hash ao verificar alterações no conteúdo da etapa. Se não forem detetadas alterações, o pipeline reutilizará o conteúdo da etapa de uma execução anterior. Por padrão, o conteúdo do Default value: None
|
|
script_name
Necessário
|
[Obrigatório] O nome de um script Python relativo a |
|
name
Necessário
|
O nome da etapa. Se não especificado, |
|
arguments
Necessário
|
[str]
Argumentos de linha de comando para o arquivo de script Python. Os argumentos serão passados para computação através do |
|
compute_target
Necessá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 da cadeia de caracteres de um destino de computação no espaço de trabalho. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você pode especificar uma tupla de ('nome do 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
Necessá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 docker. Se não for especificado, um runconfig padrão será criado. |
|
runconfig_pipeline_params
Necessário
|
Substitui as propriedades runconfig em tempo de execução usando pares chave-valor cada um com o nome da propriedade runconfig e PipelineParameter para essa propriedade. Valores suportados: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' |
|
inputs
Necessário
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Uma lista de ligações de porta de entrada. |
|
outputs
Necessário
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Uma lista de ligações de porta de saída. |
|
params
Necessário
|
<xref:<xref:{str: str}>>
Um dicionário de pares nome-valor. Registrado como variáveis de ambiente com ">>AML_PARAMETER_<<". |
|
source_directory
Necessário
|
Uma pasta que contém script Python, conda env e outros recursos usados na etapa. |
|
allow_reuse
Necessário
|
Indica se a etapa deve reutilizar os resultados anteriores ao ser executada novamente com as mesmas configurações. A reutilização está ativada por predefinição. Se o conteúdo da etapa (scripts/dependências), bem como as entradas e os parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizada. 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 Aprendizado de Máquina do Azure 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
Necessário
|
Uma tag de versão opcional para indicar uma alteração na funcionalidade da etapa. |
|
hash_paths
Necessário
|
DEPRECATED: não é mais necessário. Uma lista de caminhos para hash ao verificar alterações no conteúdo da etapa. Se não forem detetadas alterações, o pipeline reutilizará o conteúdo da etapa de uma execução anterior. Por padrão, o conteúdo do |
Observações
Um PythonScriptStep é uma etapa básica e integrada para executar um Python Script 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 espaço de trabalho será usado. Você também pode usar a RunConfiguration para especificar requisitos para o PythonScriptStep, como dependências conda e imagem docker.
A prática recomendada 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 esta boa prática tem duas vantagens. Primeiro, ele ajuda a reduzir o tamanho do instantâneo criado para a etapa, pois apenas o que é necessário para a etapa é instantâneo. Em segundo lugar, a saída da etapa de uma execução anterior pode ser reutilizada se não houver alterações na source_directory que acionariam um recarregamento do instantâneo.
O exemplo de código a seguir mostra o uso de um PythonScriptStep em um cenário de treinamento de aprendizado de máquina. 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
)
PythonScriptSteps suporta vários tipos de entrada e saída. Estes incluem DatasetConsumptionConfig para entradas e OutputDatasetConfig, PipelineOutputAbstractDatasete PipelineData para entradas e saídas.
Abaixo está um exemplo de uso Dataset como etapa de entrada e saída:
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)
Consulte as páginas de documentação correspondentes para obter exemplos de utilização de outros tipos de entrada/saída.
Métodos
| create_node |
Crie um nó para PythonScriptStep e adicione-o ao gráfico especificado. Este método não se destina a ser utilizado 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 gráfico de pipeline que representa o fluxo de trabalho. |
create_node
Crie um nó para PythonScriptStep e adicione-o ao gráfico especificado.
Este método não se destina a ser utilizado 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 gráfico de pipeline que representa o fluxo de trabalho.
create_node(graph, default_datastore, context)
Parâmetros
| Name | Description |
|---|---|
|
graph
Necessário
|
O objeto gráfico ao qual adicionar o nó. |
|
default_datastore
Necessário
|
O armazenamento de dados padrão. |
|
context
Necessário
|
<xref:azureml.pipeline.core._GraphContext>
O contexto do gráfico. |
Devoluções
| Tipo | Description |
|---|---|
|
O nó criado. |