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.objectPipelineData
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
|
O nome do objeto PipelineData, que só pode conter letras, dígitos e sublinhados. 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 em que o PipelineData irá residir. Se não for especificado, é utilizado o arquivo de dados predefinido. Default value: None
|
output_name
|
O nome da saída, se nenhum nome for utilizado. Pode conter apenas letras, dígitos e carateres de sublinhado. Default value: None
|
output_mode
|
Especifica se o passo de produção utilizará o método "carregar" ou "montar" para aceder aos dados. Default value: mount
|
output_path_on_compute
|
Para Default value: None
|
output_overwrite
|
Para Default value: None
|
data_type
|
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 Default value: None
|
pipeline_output_name
|
Se for fornecido, esta saída estará disponível com 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 incluir na saída. Default value: None
|
name
Necessário
|
O nome do objeto PipelineData, que só pode conter letras, dígitos e sublinhados. 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 em que o PipelineData irá residir. Se não for especificado, é utilizado o arquivo de dados predefinido. |
output_name
Necessário
|
O nome da saída, se nenhum nome for utilizado. que podem conter apenas letras, dígitos e carateres de sublinhado. |
output_mode
Necessário
|
Especifica se o passo de produção utilizará o método "carregar" ou "montar" para aceder aos dados. |
output_path_on_compute
Necessário
|
Para |
output_overwrite
Necessário
|
Para |
data_type
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
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 |
pipeline_output_name
Necessário
|
Se for fornecido, esta saída estará disponível com |
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 incluir 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á 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 no resultado, mas apenas 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_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 no resultado, mas apenas 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
|
Utilize para especificar um nome para esta entrada. Default value: None
|
path_on_compute
|
O caminho na computação para o qual transferir. Default value: None
|
overwrite
|
Utilize para indicar se deve substituir os 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
|
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
|
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
|
O nome da entrada. Default value: None
|
mode
|
O modo para aceder ao PipelineData ("montar" ou "transferir"). Default value: None
|
path_on_compute
|
Para o modo de "transferência", o caminho na computação dos dados irá residir. Default value: None
|
overwrite
|
Para o modo de "transferência", quer 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 |
---|---|
O nome da variável de ambiente. |
Atributos
data_type
datastore
Arquivo de dados em que o PipelineData irá residir.
Devoluções
Tipo | Description |
---|---|
O objeto Datastore. |