PipelineData Classe

Representa dados intermédios num pipeline do Azure Machine Learning.

Os dados utilizados no pipeline podem ser produzidos por um passo e consumidos noutro passo ao fornecer um objeto PipelineData como uma saída de um passo e uma entrada de um ou mais passos subsequentes.

Tenha em atenção que, se estiver a utilizar os dados do pipeline, certifique-se de que o diretório utilizado existia.

Um exemplo de python para garantir que o diretório existia, suponha que tem uma porta de saída com o nome output_folder num passo de pipeline. Pretende escrever alguns dados para um 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 já não é a abordagem recomendada para o acesso e entrega de dados, utilize OutputFileDatasetConfig em vez disso, pode encontrar exemplo aqui: Pipeline com OutputFileDatasetConfig.

Inicializar PipelineData.

Herança
builtins.object
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

Name Description
name
Necessário
str

O nome do objeto PipelineData, que só pode conter letras, dígitos e carateres de sublinhado.

Os nomes PipelineData são utilizados para identificar as saídas de um passo. Após a conclusão de uma execução de pipeline, pode utilizar o nome do passo com um nome de saída para aceder a uma saída específica. Os nomes devem ser exclusivos num único passo num pipeline.

datastore

O Arquivo de Dados no PipelineData residirá. Se não for especificado, é utilizado o arquivo de dados predefinido.

Default value: None
output_name
str

O nome da saída, se for utilizado nenhum nome. Pode conter apenas letras, dígitos e carateres de sublinhado.

Default value: None
output_mode
str

Especifica se o passo de produção irá utilizar o método "carregar" ou "montar" para aceder aos dados.

Default value: mount
output_path_on_compute
str

Para output_mode = "upload", este parâmetro representa o caminho no qual o módulo escreve o resultado.

Default value: None
output_overwrite

Para output_mode = "upload", este parâmetro especifica se pretende substituir dados existentes.

Default value: None
data_type
str

Opcional. O tipo de dados pode ser utilizado para especificar o tipo esperado da saída e para detalhar como os passos de consumo devem utilizar os dados. Pode ser qualquer cadeia definida pelo utilizador.

Default value: None
is_directory

Especifica se os dados são um diretório ou um único ficheiro. Isto só é utilizado para determinar um tipo de dados utilizado pelo back-end do Azure ML quando o data_type parâmetro não é fornecido. A predefinição é Falso.

Default value: None
pipeline_output_name

Se for fornecido, esta saída estará disponível com PipelineRun.get_pipeline_output(). Os nomes de saída do pipeline têm de ser exclusivos no pipeline.

Default value: None
training_output

Define a saída para o resultado da preparação. Isto só é necessário para preparações específicas que resultem em diferentes tipos de saídas, como Métricas e Modelo. Por exemplo, AutoMLStep resulta em métricas e modelos. Também pode definir uma iteração ou métrica de preparação específica utilizada para obter o melhor modelo. Para HyperDriveStepo , também pode definir os ficheiros de modelo específicos a serem incluídos na saída.

Default value: None
name
Necessário
str

O nome do objeto PipelineData, que só pode conter letras, dígitos e carateres de sublinhado.

Os nomes PipelineData são utilizados para identificar as saídas de um passo. Após a conclusão de uma execução de pipeline, pode utilizar o nome do passo com um nome de saída para aceder a uma saída específica. Os nomes devem ser exclusivos num único passo num pipeline.

datastore
Necessário

O Arquivo de Dados no PipelineData residirá. Se não for especificado, é utilizado o arquivo de dados predefinido.

output_name
Necessário
str

O nome da saída, se for utilizado nenhum nome. que podem conter apenas letras, dígitos e carateres de sublinhado.

output_mode
Necessário
str

Especifica se o passo de produção irá utilizar o método "carregar" ou "montar" para aceder aos dados.

output_path_on_compute
Necessário
str

Para output_mode = "upload", este parâmetro representa o caminho no qual o módulo escreve o resultado.

output_overwrite
Necessário

Para output_mode = "upload", este parâmetro especifica se pretende substituir dados existentes.

data_type
Necessário
str

Opcional. O tipo de dados pode ser utilizado para especificar o tipo esperado da saída e para detalhar como os passos de consumo devem utilizar os dados. Pode ser qualquer cadeia definida pelo utilizador.

is_directory
Necessário

Especifica se os dados são um diretório ou um único ficheiro. Isto só é utilizado para determinar um tipo de dados utilizado pelo back-end do Azure ML quando o data_type parâmetro não é fornecido. A predefinição é Falso.

pipeline_output_name
Necessário
str

Se for fornecido, esta saída estará disponível com PipelineRun.get_pipeline_output(). Os nomes de saída do pipeline têm de ser exclusivos no pipeline.

training_output
Necessário

Define a saída para o resultado da preparação. Isto só é necessário para preparações específicas que resultem em diferentes tipos de saídas, como Métricas e Modelo. Por exemplo, AutoMLStep resulta em métricas e modelos. Também pode definir uma iteração ou métrica de preparação específica utilizada para obter o melhor modelo. Para HyperDriveStepo , também pode definir os ficheiros de modelo específicos a serem incluídos na saída.

Observações

PipelineData representa a saída de dados que um passo produzirá quando for executado. Utilize PipelineData ao criar passos para descrever os ficheiros ou diretórios que serão gerados pelo passo. Estas saídas de dados serão adicionadas ao Arquivo de Dados especificado e poderão ser obtidas e visualizadas mais tarde.

Por exemplo, o passo de pipeline seguinte produz uma saída com o nome "modelo":


   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)

Neste caso, o script train.py irá escrever o modelo que produz na localização fornecida ao script através do argumento –model.

Os objetos PipelineData também são utilizados ao construir Pipelines para descrever dependências de passos. Para especificar que um passo requer a saída de outro passo como entrada, utilize um objeto PipelineData no construtor de ambos os passos.

Por exemplo, o passo de preparação do pipeline depende da saída process_step_output do passo 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])

Esta ação irá criar um Pipeline com dois passos. O passo do processo será executado primeiro e, depois de concluído, o passo de preparação será executado. O Azure ML fornecerá o resultado produzido pelo passo do processo para o passo de preparação.

Veja esta página para obter mais exemplos de utilização de PipelineData para construir um Pipeline: https://aka.ms/pl-data-dep

Para tipos de computação suportados, o PipelineData também pode ser utilizado para especificar como os dados serão produzidos e consumidos pela execução. Existem dois métodos suportados:

  • Montagem (predefinição): os dados de entrada ou saída são montados no armazenamento local no nó de computação e é definida uma variável de ambiente que aponta para o caminho destes dados ($AZUREML_DATAREFERENCE_name). Por conveniência, pode transmitir o objeto PipelineData como um dos argumentos para o script, por exemplo, utilizando o arguments parâmetro de PythonScriptStep, e o objeto será resolvido para o caminho para os dados. Para saídas, o script de computação deve criar um ficheiro ou diretório neste caminho de saída. Para ver o valor da variável de ambiente utilizada quando transmite o objeto Pipeline como argumento, utilize o get_env_variable_name método .

  • Carregamento: especifique um output_path_on_compute correspondente a um nome de ficheiro ou diretório que o script irá gerar. (As variáveis de ambiente não são utilizadas neste caso.)

Métodos

as_dataset

Promover a saída intermédia num Conjunto de Dados.

Este conjunto de dados existirá após a execução do passo. Tenha em atenção que o resultado tem de ser promovido 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 apenas for chamado na entrada, será um noop e a entrada não será consumida como um conjunto de dados. O exemplo de código abaixo mostra uma utilização correta 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

Consumir o PipelineData como transferência.

as_input

Create um InputPortBinding e especifique um nome de entrada (mas utilize o modo predefinido).

as_mount

Consumir o PipelineData como montagem.

create_input_binding

Create enlace de entrada.

get_env_variable_name

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

as_dataset

Promover a saída intermédia num Conjunto de Dados.

Este conjunto de dados existirá após a execução do passo. Tenha em atenção que o resultado tem de ser promovido 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 apenas for chamado na entrada, será um noop e a entrada não será consumida como um conjunto de dados. O exemplo de código abaixo mostra uma utilização correta 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()

Devoluções

Tipo Description

A saída intermédia como um Conjunto de Dados.

as_download

Consumir o PipelineData como transferência.

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

Parâmetros

Name Description
input_name
str

Utilize para especificar um nome para esta entrada.

Default value: None
path_on_compute
str

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

Default value: None
overwrite

Utilize para indicar se pretende substituir dados existentes.

Default value: None

Devoluções

Tipo Description

O InputPortBinding com este PipelineData como a origem.

as_input

Create um InputPortBinding e especifique um nome de entrada (mas utilize o modo predefinido).

as_input(input_name)

Parâmetros

Name Description
input_name
Necessário
str

Utilize para especificar um nome para esta entrada.

Devoluções

Tipo Description

O InputPortBinding com este PipelineData como a origem.

as_mount

Consumir o PipelineData como montagem.

as_mount(input_name=None)

Parâmetros

Name Description
input_name
str

Utilize para especificar um nome para esta entrada.

Default value: None

Devoluções

Tipo Description

O InputPortBinding com este PipelineData como a origem.

create_input_binding

Create enlace de entrada.

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

Parâmetros

Name Description
input_name
str

O nome da entrada.

Default value: None
mode
str

O modo para aceder ao PipelineData ("montar" ou "transferir").

Default value: None
path_on_compute
str

Para o modo de "transferência", o caminho na computação em que os dados residem.

Default value: None
overwrite

Para o modo de "transferência", substitua os dados existentes.

Default value: None

Devoluções

Tipo Description

O InputPortBinding com este PipelineData como a origem.

get_env_variable_name

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

get_env_variable_name()

Devoluções

Tipo Description
str

O nome da variável de ambiente.

Atributos

data_type

Tipo de dados que serão produzidos.

Devoluções

Tipo Description
str

O nome do tipo de dados.

datastore

Arquivo de dados onde o PipelineData irá residir.

Devoluções

Tipo Description

O objeto Arquivo de Dados.

name

Nome do objeto PipelineData.

Devoluções

Tipo Description
str

Nome.