PipelineData Classe
Representa os dados intermediários em um pipeline do Azure Machine Learning.
Os dados usados no pipeline podem ser produzidos em uma etapa e consumidos em outra etapa, fornecendo um objeto PipelineData como saída de uma etapa e entrada de uma ou mais etapas subsequentes.
Observação: 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 existe é supor que há uma porta de saída nomeada output_folder em uma etapa do pipeline, e você quer gravar alguns dados no caminho relativo nessa pasta.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
O PipelineData usa o DataReference subjacente que não é mais a abordagem recomendada para acesso e entrega de dados, em vez disso, use o OutputFileDatasetConfig, um exemplo pode ser encontrado aqui: Pipeline usando 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 pode conter apenas letras, dígitos e sublinhados.
Os nomes de 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 etapa em um pipeline.
- datastore
- AbstractAzureStorageDatastore ou AzureDataLakeDatastore
O armazenamento de dados no qual o PipelineData residirá. Se não for especificado, será usado o armazenamento de dados padrão.
- output_name
- str
O nome da saída, se None for usado. Pode conter apenas letras, dígitos e sublinhados.
- output_mode
- str
Especifica se a etapa de produção usará o método "upload" ou "mount" para acessar os dados.
- output_path_on_compute
- str
Para output_mode
= "upload", esse parâmetro representa o caminho no qual o módulo grava a saída.
- output_overwrite
- bool
Para output_mode
= "upload", esse parâmetro especifica se os dados existentes devem ser substituídos.
- data_type
- str
Opcional. O tipo de dados pode ser usado para especificar o tipo da saída esperado e para detalhar como as etapas de consumo deverão usar os dados. Pode ser qualquer cadeia de caracteres definida pelo usuário.
- is_directory
- bool
Especifica se os dados são um diretório ou um arquivo único. É usado somente para determinar um tipo de dados utilizado pelo back-end do Azure ML quando o parâmetro data_type
não é fornecido. O padrão é False.
- pipeline_output_name
Se fornecida, 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
- TrainingOutput
Define a saída do resultado do treinamento. É 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 modelo. Você também pode definir uma métrica ou iteração 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.
- name
- str
O nome do objeto PipelineData, que pode conter apenas letras, dígitos e sublinhados.
Os nomes de 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 etapa em um pipeline.
- datastore
- AbstractAzureStorageDatastore ou AzureDataLakeDatastore
O armazenamento de dados no qual o PipelineData residirá. Se não for especificado, será usado o armazenamento de dados padrão.
- output_name
- str
O nome da saída, se None for usado. que pode conter apenas letras, dígitos e sublinhados.
- output_mode
- str
Especifica se a etapa de produção usará o método "upload" ou "mount" para acessar os dados.
- output_path_on_compute
- str
Para output_mode
= "upload", esse parâmetro representa o caminho no qual o módulo grava a saída.
- output_overwrite
- bool
Para output_mode
= "upload", esse parâmetro especifica se os dados existentes devem ser substituídos.
- data_type
- str
Opcional. O tipo de dados pode ser usado para especificar o tipo da saída esperado e para detalhar como as etapas de consumo deverão usar os dados. Pode ser qualquer cadeia de caracteres definida pelo usuário.
- is_directory
- bool
Especifica se os dados são um diretório ou um arquivo único. É usado somente para determinar um tipo de dados utilizado pelo back-end do Azure ML quando o parâmetro data_type
não é fornecido. O padrão é False.
- pipeline_output_name
- str
Se fornecida, 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
- TrainingOutput
Define a saída do resultado do treinamento. É 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 modelo. Você também pode definir uma métrica ou iteração 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 seguinte etapa de pipeline 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 produz no local fornecido ao 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 do 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 treinamento será executada. O Azure ML fornecerá a saída produzida pela etapa do processo para a etapa de treinamento.
Consulte esta página para obter mais exemplos de como usar o PipelineData para construir um Pipeline: https://aka.ms/pl-data-dep
Para os tipos de computação compatíveis, 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:
Mount (padrã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 desses dados ($AZUREML_DATAREFERENCE_name). Para conveniência, você pode passar o objeto PipelineData como um dos argumentos para seu script, por exemplo, usando o parâmetro
arguments
de PythonScriptStep, e o objeto resolverá o caminho para os dados. Para saídas, o 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 ao passar o objeto Pipeline como um argumento, use o método get_env_variable_name.Upload: especifique um
output_path_on_compute
correspondente a um nome de arquivo ou diretório que o script gerará. (Variáveis de ambiente não são usadas neste caso.)
Métodos
as_dataset |
Promover a saída intermediária a um conjunto de dados. Esse conjunto de dados existirá após a execução da etapa. Observe que a saída deverá 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 apenas na entrada, será um noop 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_download |
Consumir o PipelineData como download. |
as_input |
Criar um InputPortBinding e especificar um nome de entrada (mas usar o modo padrão). |
as_mount |
Consumir o PipelineData como montagem. |
create_input_binding |
Criar associação de entrada. |
get_env_variable_name |
Retornar o nome da variável de ambiente para esse PipelineData. |
as_dataset
Promover a saída intermediária a um conjunto de dados.
Esse conjunto de dados existirá após a execução da etapa. Observe que a saída deverá 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 apenas na entrada, será um noop 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
A saída intermediária como um conjunto de dados.
Tipo de retorno
as_download
Consumir o PipelineData como download.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parâmetros
Retornos
O InputPortBinding com esse PipelineData como origem.
Tipo de retorno
as_input
Criar um InputPortBinding e especificar um nome de entrada (mas usar o modo padrão).
as_input(input_name)
Parâmetros
Retornos
O InputPortBinding com esse PipelineData como origem.
Tipo de retorno
as_mount
Consumir o PipelineData como montagem.
as_mount(input_name=None)
Parâmetros
Retornos
O InputPortBinding com esse PipelineData como origem.
Tipo de retorno
create_input_binding
Criar associação 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 "download", o caminho na computação em que os dados residirão.
- overwrite
- bool
Para o modo "download", se os dados existentes devem ser substituídos.
Retornos
O InputPortBinding com esse PipelineData como origem.
Tipo de retorno
get_env_variable_name
Retornar o nome da variável de ambiente para esse PipelineData.
get_env_variable_name()
Retornos
O nome da variável de ambiente.
Tipo de retorno
Atributos
data_type
datastore
O armazenamento de dados no qual PipelineData residirá.
Retornos
O objeto do armazenamento de dados.
Tipo de retorno
name
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: ao longo de 2024, vamos eliminar problemas do GitHub como o mecanismo de comentários para conteúdo e substituí-lo por um novo sistema de comentários. Para obter mais informações, consulte:Enviar e exibir comentários de