PythonScriptStep Classe
Cria um passo do Pipeline do Azure ML que executa o script do Python.
Para obter um exemplo de como utilizar PythonScriptStep, consulte o bloco de notas https://aka.ms/pl-get-started.
Crie um passo do Pipeline do Azure ML que execute o script do 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
Name | Description |
---|---|
script_name
Necessário
|
[Obrigatório] O nome de um script python relativo a |
name
|
O nome do passo. Se não for especificado, Default value: None
|
arguments
|
Argumentos da linha de comandos para o ficheiro de script python. Os argumentos serão transmitidos à computação através do Default value: None
|
compute_target
|
[Obrigatório] O destino de computação a utilizar. Se não for especificado, será utilizado o destino do runconfig. Este parâmetro pode ser especificado como um objeto de destino de computação ou o nome da cadeia de carateres de um destino de computação na área de trabalho. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, poderá especificar uma cadeia de identificação de ("nome de destino de computação", "tipo de destino de computação") para evitar obter o objeto de destino de computação (o tipo AmlCompute é "AmlCompute" e o tipo RemoteCompute é "VirtualMachine"). Default value: None
|
runconfig
|
A RunConfiguration opcional a utilizar. Uma RunConfiguration pode ser utilizada para especificar requisitos adicionais para a execução, como dependências conda e uma imagem do docker. Se não for especificado, será criado um runconfig predefinido. Default value: None
|
runconfig_pipeline_params
|
Substituições de propriedades de runconfig no runtime através de pares chave-valor cada uma 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 enlaces de portas de entrada. Default value: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Uma lista de enlaces de portas de saída. Default value: None
|
params
|
Um dicionário de pares nome-valor registados 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 utilizados no passo. Default value: None
|
allow_reuse
|
Indica se o passo deve reutilizar os resultados anteriores ao executar novamente com as mesmas definições. A reutilização está ativada por predefinição. Se o conteúdo do passo (scripts/dependências), bem como as entradas e os parâmetros permanecerem inalterados, o resultado da execução anterior deste passo será reutilizado. Ao reutilizar o passo, em vez de submeter a tarefa para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer passos subsequentes. Se utilizar conjuntos de dados do Azure Machine Learning como entradas, a reutilização é determinada se a definição do conjunto de dados foi alterada e não se os dados subjacentes foram alterados. Default value: True
|
version
|
Uma etiqueta de versão opcional para denotar uma alteração na funcionalidade do passo. Default value: None
|
hash_paths
|
PRETERIDO: já não é necessário. Uma lista de caminhos para hash ao verificar se existem alterações nos conteúdos do passo. Se não forem detetadas alterações, o pipeline reutilizará o conteúdo do passo de uma execução anterior. Por predefinição, os conteúdos de Default value: None
|
script_name
Necessário
|
[Obrigatório] O nome de um script python relativo a |
name
Necessário
|
O nome do passo. Se não for especificado, |
arguments
Necessário
|
[str]
Argumentos da linha de comandos para o ficheiro de script python. Os argumentos serão transmitidos à computação através do |
compute_target
Necessário
|
[Obrigatório] O destino de computação a utilizar. Se não for especificado, será utilizado o destino do runconfig. Este parâmetro pode ser especificado como um objeto de destino de computação ou o nome da cadeia de carateres de um destino de computação na área de trabalho. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, poderá especificar uma cadeia de identificação de ("nome de destino de computação", "tipo de destino de computação") para evitar obter o objeto de destino de computação (o tipo AmlCompute é "AmlCompute" e o tipo RemoteCompute é "VirtualMachine"). |
runconfig
Necessário
|
A RunConfiguration opcional a utilizar. A RunConfiguration pode ser utilizada para especificar requisitos adicionais para a execução, como dependências conda e uma imagem do docker. Se não for especificado, será criado um runconfig predefinido. |
runconfig_pipeline_params
Necessário
|
Substituições de propriedades de runconfig no runtime através de pares chave-valor cada uma 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 enlaces de portas de entrada. |
outputs
Necessário
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Uma lista de enlaces de portas de saída. |
params
Necessário
|
<xref:<xref:{str: str}>>
Um dicionário de pares nome-valor. Registado como variáveis de ambiente com ">>AML_PARAMETER_<<". |
source_directory
Necessário
|
Uma pasta que contém script python, conda env e outros recursos utilizados no passo. |
allow_reuse
Necessário
|
Indica se o passo deve reutilizar os resultados anteriores ao executar novamente com as mesmas definições. A reutilização está ativada por predefinição. Se o conteúdo do passo (scripts/dependências), bem como as entradas e os parâmetros permanecerem inalterados, o resultado da execução anterior deste passo será reutilizado. Ao reutilizar o passo, em vez de submeter a tarefa para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer passos subsequentes. Se utilizar conjuntos de dados do Azure Machine Learning como entradas, a reutilização é determinada se a definição do conjunto de dados foi alterada e não se os dados subjacentes foram alterados. |
version
Necessário
|
Uma etiqueta de versão opcional para denotar uma alteração na funcionalidade do passo. |
hash_paths
Necessário
|
PRETERIDO: já não é necessário. Uma lista de caminhos para hash ao verificar se existem alterações nos conteúdos do passo. Se não forem detetadas alterações, o pipeline reutilizará o conteúdo do passo de uma execução anterior. Por predefinição, os conteúdos de |
Observações
Um PythonScriptStep é um passo básico incorporado para executar um Script de Python num destino de computação. Utiliza o nome do script e outros parâmetros opcionais, como argumentos, o destino de computação, as entradas e as saídas. Se não for especificado nenhum destino de computação, é utilizado o destino de computação predefinido para a área de trabalho. Também pode utilizar um RunConfiguration para especificar os requisitos do PythonScriptStep, tais como dependências conda e imagem do docker.
A melhor prática para trabalhar com PythonScriptStep é utilizar uma pasta separada para scripts e quaisquer ficheiros dependentes associados ao passo e especificar essa pasta com o source_directory
parâmetro .
Seguir esta melhor prática tem duas vantagens. Em primeiro lugar, ajuda a reduzir o tamanho do instantâneo criado para o passo, porque apenas o que é necessário para o passo é instantâneo. Em segundo lugar, o resultado do passo de uma execução anterior pode ser reutilizado se não existirem alterações no source_directory
que acionem um novo carregamento do instantâneo.
O exemplo de código seguinte mostra a utilização de um PythonScriptStep num cenário de preparação 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 suporta vários tipos de entrada e saída. Estes incluem DatasetConsumptionConfig entradas e OutputDatasetConfig, PipelineOutputAbstractDatasete PipelineData para entradas e saídas.
Segue-se um exemplo de utilização Dataset como entrada e saída de passos:
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 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 este passo, o Azure ML transmite automaticamente os parâmetros necessários através deste método para que esse passo possa ser adicionado 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 este passo, o Azure ML transmite automaticamente os parâmetros necessários através deste método para que esse passo possa ser adicionado 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 de gráfico ao que adicionar o nó. |
default_datastore
Necessário
|
O arquivo de dados predefinido. |
context
Necessário
|
<xref:azureml.pipeline.core._GraphContext>
O contexto do gráfico. |
Devoluções
Tipo | Description |
---|---|
O nó criado. |