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._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
Necessário

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

name
str
valor predefinido: None

O nome do passo. Se não for especificado, script_name é utilizado.

arguments
list
valor predefinido: None

Argumentos da linha de comandos para o ficheiro de script python. Os argumentos serão transmitidos à computação através do arguments parâmetro em RunConfiguration. Para obter mais detalhes sobre como lidar com argumentos como símbolos especiais, consulte .RunConfiguration

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
valor predefinido: None

[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
RunConfiguration
valor predefinido: None

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.

runconfig_pipeline_params
dict[str, PipelineParameter]
valor predefinido: None

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"

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
valor predefinido: None

Uma lista de enlaces de portas de saída.

params
dict
valor predefinido: None

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

source_directory
str
valor predefinido: None

Uma pasta que contém script python, conda env e outros recursos utilizados no passo.

allow_reuse
bool
valor predefinido: True

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
str
valor predefinido: None

Uma etiqueta de versão opcional para denotar uma alteração na funcionalidade do passo.

hash_paths
list
valor predefinido: None

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 source_directory são transformados em hash, à exceção dos ficheiros listados em .amlignoree ou .gitignore.

script_name
str
Necessário

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

name
str
Necessário

O nome do passo. Se não for especificado, script_name é utilizado.

arguments
[str]
Necessário

Argumentos da linha de comandos para o ficheiro de script python. Os argumentos serão transmitidos à computação através do arguments parâmetro em RunConfiguration. Para obter mais detalhes sobre como lidar com argumentos como símbolos especiais, consulte .RunConfiguration

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
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
RunConfiguration
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
dict[str, PipelineParameter]
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"

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Necessário

Uma lista de enlaces de portas de saída.

params
<xref:<xref:{str: str}>>
Necessário

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

source_directory
str
Necessário

Uma pasta que contém script python, conda env e outros recursos utilizados no passo.

allow_reuse
bool
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
str
Necessário

Uma etiqueta de versão opcional para denotar uma alteração na funcionalidade do passo.

hash_paths
list
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 source_directory são transformados em hash, à exceção dos ficheiros listados em .amlignoree ou .gitignore.

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

graph
Graph
Necessário

O objeto de gráfico ao que adicionar o nó.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Necessário

O arquivo de dados predefinido.

context
<xref:azureml.pipeline.core._GraphContext>
Necessário

O contexto do gráfico.

Devoluções

O nó criado.

Tipo de retorno