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
- 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
- AbstractAzureStorageDatastore ou AzureDataLakeDatastore
O Arquivo de Dados no PipelineData residirá. Se não for especificado, é utilizado o arquivo de dados predefinido.
- output_name
- str
O nome da saída, se for utilizado nenhum nome. Pode conter apenas letras, dígitos e carateres de sublinhado.
- output_mode
- str
Especifica se o passo de produção irá utilizar o método "carregar" ou "montar" para aceder aos dados.
- output_path_on_compute
- str
Para output_mode
= "upload", este parâmetro representa o caminho no qual o módulo escreve o resultado.
- output_overwrite
- bool
Para output_mode
= "upload", este parâmetro especifica se pretende substituir dados existentes.
- 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.
- is_directory
- bool
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
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
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
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
O Arquivo de Dados no PipelineData residirá. Se não for especificado, é utilizado o arquivo de dados predefinido.
- output_name
- str
O nome da saída, se for utilizado nenhum nome. que podem conter apenas letras, dígitos e carateres de sublinhado.
- output_mode
- str
Especifica se o passo de produção irá utilizar o método "carregar" ou "montar" para aceder aos dados.
- output_path_on_compute
- str
Para output_mode
= "upload", este parâmetro representa o caminho no qual o módulo escreve o resultado.
- output_overwrite
- bool
Para output_mode
= "upload", este parâmetro especifica se pretende substituir dados existentes.
- 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.
- is_directory
- bool
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
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
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_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
- overwrite
- bool
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
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
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
- path_on_compute
- str
Para o modo de "transferência", o caminho na computação em que os dados residem.
- overwrite
- bool
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
Atributos
data_type
datastore
Arquivo de dados onde o PipelineData irá residir.
Devoluções
O objeto Arquivo de Dados.
Tipo de retorno
name
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários