Compartilhar via


PipelineData Classe

Representa dados intermediários em um pipeline do Azure Machine Learning.

Os dados usados no pipeline podem ser produzidos por uma etapa e consumidos em outra etapa, fornecendo um objeto PipelineData como uma saída de uma etapa e uma entrada de uma ou mais etapas subsequentes.

Observe que se você estiver usando os dados do pipeline, verifique se o diretório usado existe.

Um exemplo do Python para garantir que o diretório exista, suponha que você tenha uma porta de saída chamada output_folder em uma etapa de pipeline, você deseja gravar alguns dados no caminho relativo nesta pasta.


   import os
   os.makedirs(args.output_folder, exist_ok=True)
   f = open(args.output_folder + '/relative_path/file_name', 'w+')

PipelineData use DataReference subjacente, que não é mais a abordagem recomendada para acesso e entrega de dados, use OutputFileDatasetConfig em vez disso, você pode encontrar um exemplo aqui: Pipeline usando OutputFileDatasetConfig.

Inicializar PipelineData.

Construtor

PipelineData(name, datastore=None, output_name=None, output_mode='mount', output_path_on_compute=None, output_overwrite=None, data_type=None, is_directory=None, pipeline_output_name=None, training_output=None)

Parâmetros

Nome Description
name
Obrigatório
str

O nome do objeto PipelineData, que pode conter apenas letras, dígitos e sublinhados.

Os nomes pipelineData são usados para identificar as saídas de uma etapa. Depois que uma execução de pipeline for concluída, você poderá usar o nome da etapa com um nome de saída para acessar uma saída específica. Os nomes devem ser exclusivos em uma única etapa em um pipeline.

datastore

O Datastore em que o PipelineData residirá. Se não for especificado, o armazenamento de dados padrão será usado.

Valor padrão: None
output_name
str

O nome da saída, se nenhum nome for usado. Pode conter apenas letras, dígitos e sublinhados.

Valor padrão: None
output_mode
str

Especifica se a etapa de produção usará o método "upload" ou "mount" para acessar os dados.

Valor padrão: mount
output_path_on_compute
str

For output_mode = "upload", esse parâmetro representa o caminho no qual o módulo grava a saída.

Valor padrão: None
output_overwrite

For output_mode = "upload", esse parâmetro especifica se os dados existentes devem ser substituídos.

Valor padrão: None
data_type
str

Opcional. O tipo de dados pode ser usado para especificar o tipo esperado da saída e para detalhar como as etapas de consumo devem usar os dados. Pode ser qualquer cadeia de caracteres definida pelo usuário.

Valor padrão: None
is_directory

Especifica se os dados são um diretório ou um único arquivo. Isso só é usado para determinar um tipo de dados usado pelo back-end do Azure ML quando o data_type parâmetro não é fornecido. O padrão é False.

Valor padrão: None
pipeline_output_name

Se for fornecido, essa saída estará disponível usando PipelineRun.get_pipeline_output(). Os nomes de saída do pipeline devem ser exclusivos no pipeline.

Valor padrão: None
training_output

Define a saída para o resultado do treinamento. Isso é necessário apenas para treinamentos específicos que resultam em diferentes tipos de saídas, como Métricas e Modelo. Por exemplo, AutoMLStep resulta em métricas e modelos. Você também pode definir uma iteração ou métrica de treinamento específica usada para obter o melhor modelo. Para HyperDriveStep, você também pode definir os arquivos de modelo específicos a serem incluídos na saída.

Valor padrão: None
name
Obrigatório
str

O nome do objeto PipelineData, que pode conter apenas letras, dígitos e sublinhados.

Os nomes pipelineData são usados para identificar as saídas de uma etapa. Depois que uma execução de pipeline for concluída, você poderá usar o nome da etapa com um nome de saída para acessar uma saída específica. Os nomes devem ser exclusivos em uma única etapa em um pipeline.

datastore
Obrigatório

O Datastore em que o PipelineData residirá. Se não for especificado, o armazenamento de dados padrão será usado.

output_name
Obrigatório
str

O nome da saída, se nenhum nome for usado. que pode conter apenas letras, dígitos e sublinhados.

output_mode
Obrigatório
str

Especifica se a etapa de produção usará o método "upload" ou "mount" para acessar os dados.

output_path_on_compute
Obrigatório
str

For output_mode = "upload", esse parâmetro representa o caminho no qual o módulo grava a saída.

output_overwrite
Obrigatório

For output_mode = "upload", esse parâmetro especifica se os dados existentes devem ser substituídos.

data_type
Obrigatório
str

Opcional. O tipo de dados pode ser usado para especificar o tipo esperado da saída e para detalhar como as etapas de consumo devem usar os dados. Pode ser qualquer cadeia de caracteres definida pelo usuário.

is_directory
Obrigatório

Especifica se os dados são um diretório ou um único arquivo. Isso só é usado para determinar um tipo de dados usado pelo back-end do Azure ML quando o data_type parâmetro não é fornecido. O padrão é False.

pipeline_output_name
Obrigatório
str

Se for fornecido, essa saída estará disponível usando PipelineRun.get_pipeline_output(). Os nomes de saída do pipeline devem ser exclusivos no pipeline.

training_output
Obrigatório

Define a saída para o resultado do treinamento. Isso é necessário apenas para treinamentos específicos que resultam em diferentes tipos de saídas, como Métricas e Modelo. Por exemplo, AutoMLStep resulta em métricas e modelos. Você também pode definir uma iteração ou métrica de treinamento específica usada para obter o melhor modelo. Para HyperDriveStep, você também pode definir os arquivos de modelo específicos a serem incluídos na saída.

Comentários

PipelineData representa a saída de dados que uma etapa produzirá quando for executada. Use PipelineData ao criar etapas para descrever os arquivos ou diretórios que serão gerados pela etapa. Essas saídas de dados serão adicionadas ao Armazenamento de Dados especificado e poderão ser recuperadas e exibidas posteriormente.

Por exemplo, a etapa de pipeline a seguir produz uma saída, chamada "model":


   from azureml.pipeline.core import PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   step_output = PipelineData("model", datastore=datastore)
   step = PythonScriptStep(script_name="train.py",
                           arguments=["--model", step_output],
                           outputs=[step_output],
                           compute_target=aml_compute,
                           source_directory=source_directory)

Nesse caso, o script train.py gravará o modelo que ele produz para o local fornecido para o script por meio do argumento –model.

Objetos PipelineData também são usados ao construir Pipelines para descrever dependências de etapas. Para especificar que uma etapa requer a saída de outra etapa como entrada, use um objeto PipelineData no construtor de ambas as etapas.

Por exemplo, a etapa de treinamento do pipeline depende da saída process_step_output da etapa do processo de pipeline:


   from azureml.pipeline.core import Pipeline, PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   process_step_output = PipelineData("processed_data", datastore=datastore)
   process_step = PythonScriptStep(script_name="process.py",
                                   arguments=["--data_for_train", process_step_output],
                                   outputs=[process_step_output],
                                   compute_target=aml_compute,
                                   source_directory=process_directory)
   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--data_for_train", process_step_output],
                                 inputs=[process_step_output],
                                 compute_target=aml_compute,
                                 source_directory=train_directory)

   pipeline = Pipeline(workspace=ws, steps=[process_step, train_step])

Isso criará um Pipeline com duas etapas. A etapa do processo será executada primeiro e, depois de concluída, a etapa de trem será executada. O Azure ML fornecerá a saída produzida pela etapa de processo para a etapa de treinamento.

Confira esta página para obter mais exemplos de como usar o PipelineData para construir um Pipeline: https://aka.ms/pl-data-dep

Para tipos de computação com suporte, o PipelineData também pode ser usado para especificar como os dados serão produzidos e consumidos pela execução. Há dois métodos com suporte:

  • Montagem (padrão): os dados de entrada ou saída são montados no armazenamento local no nó de computação e uma variável de ambiente é definida que aponta para o caminho desses dados ($AZUREML_DATAREFERENCE_name). Por conveniência, você pode passar o objeto PipelineData como um dos argumentos para o script, por exemplo, usando o arguments parâmetro de PythonScriptStep, e o objeto será resolvido para o caminho para os dados. Para saídas, seu script de computação deve criar um arquivo ou diretório nesse caminho de saída. Para ver o valor da variável de ambiente usada quando você passa o objeto Pipeline como um argumento, use o get_env_variable_name método.

  • Upload: especifique um output_path_on_compute nome correspondente a um arquivo ou diretório que o script gerará. (As variáveis de ambiente não são usadas nesse caso.)

Métodos

as_dataset

Promova a saída intermediária em um conjunto de dados.

Esse conjunto de dados existirá após a execução da etapa. Observe que a saída deve ser promovida para ser um conjunto de dados para que a entrada subsequente seja consumida como conjunto de dados. Se as_dataset não for chamado na saída, mas chamado apenas na entrada, ele será um nó e a entrada não será consumida como um conjunto de dados. O exemplo de código abaixo mostra um uso correto de as_dataset:


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_download

Consuma o PipelineData como download.

as_input

Crie um InputPortBinding e especifique um nome de entrada (mas use o modo padrão).

as_mount

Consuma o PipelineData como montagem.

create_input_binding

Criar associação de entrada.

get_env_variable_name

Retorne o nome da variável de ambiente para este PipelineData.

as_dataset

Promova a saída intermediária em um conjunto de dados.

Esse conjunto de dados existirá após a execução da etapa. Observe que a saída deve ser promovida para ser um conjunto de dados para que a entrada subsequente seja consumida como conjunto de dados. Se as_dataset não for chamado na saída, mas chamado apenas na entrada, ele será um nó e a entrada não será consumida como um conjunto de dados. O exemplo de código abaixo mostra um uso correto de as_dataset:


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_dataset()

Retornos

Tipo Description

A saída intermediária como um conjunto de dados.

as_download

Consuma o PipelineData como download.

as_download(input_name=None, path_on_compute=None, overwrite=None)

Parâmetros

Nome Description
input_name
str

Use para especificar um nome para essa entrada.

Valor padrão: None
path_on_compute
str

O caminho na computação para o qual baixar.

Valor padrão: None
overwrite

Use para indicar se os dados existentes devem ser substituídos.

Valor padrão: None

Retornos

Tipo Description

O InputPortBinding com este PipelineData como a origem.

as_input

Crie um InputPortBinding e especifique um nome de entrada (mas use o modo padrão).

as_input(input_name)

Parâmetros

Nome Description
input_name
Obrigatório
str

Use para especificar um nome para essa entrada.

Retornos

Tipo Description

O InputPortBinding com este PipelineData como a origem.

as_mount

Consuma o PipelineData como montagem.

as_mount(input_name=None)

Parâmetros

Nome Description
input_name
str

Use para especificar um nome para essa entrada.

Valor padrão: None

Retornos

Tipo Description

O InputPortBinding com este PipelineData como a origem.

create_input_binding

Criar associação de entrada.

create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)

Parâmetros

Nome Description
input_name
str

O nome da entrada.

Valor padrão: None
mode
str

O modo para acessar o PipelineData ("montagem" ou "download").

Valor padrão: None
path_on_compute
str

Para o modo "download", o caminho na computação em que os dados residirão.

Valor padrão: None
overwrite

Para o modo "download", se deseja substituir os dados existentes.

Valor padrão: None

Retornos

Tipo Description

O InputPortBinding com este PipelineData como a origem.

get_env_variable_name

Retorne o nome da variável de ambiente para este PipelineData.

get_env_variable_name()

Retornos

Tipo Description
str

O nome da variável de ambiente.

Atributos

data_type

Tipo de dados que serão produzidos.

Retornos

Tipo Description
str

O nome do tipo de dados.

datastore

Armazenamento de dados no qual o PipelineData residirá.

Retornos

Tipo Description

O objeto Datastore.

name

Nome do objeto PipelineData.

Retornos

Tipo Description
str

Nome.