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

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
AbstractAzureStorageDatastore ou AzureDataLakeDatastore
valor predefinido: None

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

output_name
str
valor predefinido: None

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

output_mode
str
valor predefinido: mount

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

output_path_on_compute
str
valor predefinido: None

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

output_overwrite
bool
valor predefinido: None

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

data_type
str
valor predefinido: None

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

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

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

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.

name
str
Necessário

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
AbstractAzureStorageDatastore ou AzureDataLakeDatastore
Necessário

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

output_name
str
Necessário

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

output_mode
str
Necessário

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

output_path_on_compute
str
Necessário

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

output_overwrite
bool
Necessário

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

data_type
str
Necessário

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

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
TrainingOutput
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 de train.py irá escrever o modelo que produz para a localização que é fornecida ao script através do argumento – modelo.

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á a saída produzida 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 um 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

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

as_mount

Consumir o PipelineData como montagem.

create_input_binding

Criar 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

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

Tipo de retorno

as_download

Consumir o PipelineData como transferência.

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

Parâmetros

input_name
str
valor predefinido: None

Utilize para especificar um nome para esta entrada.

path_on_compute
str
valor predefinido: None

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

overwrite
bool
valor predefinido: None

Utilize para indicar se pretende substituir dados existentes.

Devoluções

O InputPortBinding com este PipelineData como a origem.

Tipo de retorno

as_input

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

as_input(input_name)

Parâmetros

input_name
str
Necessário

Utilize para especificar um nome para esta entrada.

Devoluções

O InputPortBinding com este PipelineData como a origem.

Tipo de retorno

as_mount

Consumir o PipelineData como montagem.

as_mount(input_name=None)

Parâmetros

input_name
str
valor predefinido: None

Utilize para especificar um nome para esta entrada.

Devoluções

O InputPortBinding com este PipelineData como a origem.

Tipo de retorno

create_input_binding

Criar enlace de entrada.

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

Parâmetros

input_name
str
valor predefinido: None

O nome da entrada.

mode
str
valor predefinido: None

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

path_on_compute
str
valor predefinido: None

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

overwrite
bool
valor predefinido: None

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

Devoluções

O InputPortBinding com este PipelineData como a origem.

Tipo de retorno

get_env_variable_name

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

get_env_variable_name()

Devoluções

O nome da variável de ambiente.

Tipo de retorno

str

Atributos

data_type

Tipo de dados que serão produzidos.

Devoluções

O nome do tipo de dados.

Tipo de retorno

str

datastore

Arquivo de dados onde o PipelineData irá residir.

Devoluções

O objeto Arquivo de Dados.

Tipo de retorno

name

Nome do objeto PipelineData.

Devoluções

Nome.

Tipo de retorno

str