PipelineData Classe
Representa dados intermediários em um pipeline do Azure Machine Learning.
Os dados usados no pipeline podem ser produzidos por uma etapa e consumidos em outra etapa, fornecendo um objeto PipelineData como uma saída de uma etapa e uma entrada de uma ou mais etapas subsequentes.
Observe se você estiver usando os dados do pipeline, verifique se o diretório usado existiu.
Um exemplo python para garantir que o diretório existiu, suponha que você tenha uma porta de saída chamada output_folder em uma etapa de pipeline, você deseja gravar alguns dados no 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 não é mais a abordagem recomendada para acesso e entrega de dados, use OutputFileDatasetConfig em vez disso, você pode encontrar exemplo aqui: Pipeline usando OutputFileDatasetConfig.
Inicialize 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
|
O nome do objeto PipelineData, que pode conter apenas letras, dígitos e sublinhados. Os nomes PipelineData são usados para identificar as saídas de uma etapa. Após a conclusão de uma execução de pipeline, você pode usar o nome da etapa com um nome de saída para acessar uma saída específica. Os nomes devem ser exclusivos dentro de uma única etapa em um pipeline. |
|
datastore
|
O Datastore no qual o PipelineData residirá. Se não for especificado, o armazenamento de dados padrão será usado. Default value: None
|
|
output_name
|
O nome da saída, se Nenhum nome for usado. Pode conter apenas letras, dígitos e sublinhados. Default value: None
|
|
output_mode
|
Especifica se a etapa de produção usará o método "upload" ou "mount" para acessar os 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 usado para especificar o tipo esperado da saída e para detalhar como as etapas de consumo devem usar os dados. Pode ser qualquer cadeia de caracteres definida pelo usuário. Default value: None
|
|
is_directory
|
Especifica se os dados são um diretório ou um único arquivo. Isso só é usado para determinar um tipo de dados usado pelo back-end do Azure ML quando o Default value: None
|
|
pipeline_output_name
|
Se fornecida, essa saída estará disponível usando Default value: None
|
|
training_output
|
Define a saída para o resultado do treinamento. Isso é necessário apenas para treinamentos específicos que resultam em diferentes tipos de saídas, como Métricas e Modelo. Por exemplo, AutoMLStep resultados em métricas e modelo. Você também pode definir iteração de treinamento específica ou métrica usada para obter o melhor modelo. Para HyperDriveStepo , você também pode definir os arquivos de modelo específicos a serem incluídos na saída. Default value: None
|
|
name
Necessário
|
O nome do objeto PipelineData, que pode conter apenas letras, dígitos e sublinhados. Os nomes PipelineData são usados para identificar as saídas de uma etapa. Após a conclusão de uma execução de pipeline, você pode usar o nome da etapa com um nome de saída para acessar uma saída específica. Os nomes devem ser exclusivos dentro de uma única etapa em um pipeline. |
|
datastore
Necessário
|
O Datastore no qual o PipelineData residirá. Se não for especificado, o armazenamento de dados padrão será usado. |
|
output_name
Necessário
|
O nome da saída, se Nenhum nome for usado. que pode conter apenas letras, dígitos e sublinhados. |
|
output_mode
Necessário
|
Especifica se a etapa de produção usará o método "upload" ou "mount" para acessar os dados. |
|
output_path_on_compute
Necessário
|
Para |
|
output_overwrite
Necessário
|
Para |
|
data_type
Necessário
|
Opcional. O tipo de dados pode ser usado para especificar o tipo esperado da saída e para detalhar como as etapas de consumo devem usar os dados. Pode ser qualquer cadeia de caracteres definida pelo usuário. |
|
is_directory
Necessário
|
Especifica se os dados são um diretório ou um único arquivo. Isso só é usado para determinar um tipo de dados usado pelo back-end do Azure ML quando o |
|
pipeline_output_name
Necessário
|
Se fornecida, essa saída estará disponível usando |
|
training_output
Necessário
|
Define a saída para o resultado do treinamento. Isso é necessário apenas para treinamentos específicos que resultam em diferentes tipos de saídas, como Métricas e Modelo. Por exemplo, AutoMLStep resultados em métricas e modelo. Você também pode definir iteração de treinamento específica ou métrica usada para obter o melhor modelo. Para HyperDriveStepo , você também pode definir os arquivos de modelo específicos a serem incluídos na saída. |
Observações
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 Datastore especificado e poderão ser recuperadas e visualizadas posteriormente.
Por exemplo, a seguinte etapa de pipeline produz uma saída, chamada "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)
Nesse caso, o script train.py gravará o modelo que ele produz no local que é fornecido ao script por meio do argumento –model.
Os objetos PipelineData também são usados ao construir Pipelines para descrever dependências de etapa. 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 do trem do gasoduto depende da saída process_step_output da etapa do processo do gasoduto:
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, depois de concluída, a etapa do trem será executada. O Azure ML fornecerá a saída produzida pela etapa do processo para a etapa do trem.
Consulte esta página para obter mais exemplos de como usar PipelineData para construir um Pipeline: https://aka.ms/pl-data-dep
Para tipos de computação suportados, PipelineData também pode ser usado para especificar como os dados serão produzidos e consumidos pela execução. Existem dois métodos suportados:
Montagem (padrão): Os dados de entrada ou saída são montados no armazenamento local no nó de computação e uma variável de ambiente é definida que aponta para o caminho desses dados ($AZUREML_DATAREFERENCE_name). Por conveniência, você pode passar o objeto PipelineData como um dos argumentos para seu script, por exemplo, usando o
argumentsparâ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 arquivo ou diretório nesse caminho de saída. Para ver o valor da variável de ambiente usada quando você passa o objeto Pipeline como um argumento, use o get_env_variable_name método.Upload: especifique um
output_path_on_computecorrespondente a um nome de arquivo ou diretório que seu script irá gerar. (As variáveis de ambiente não são usadas neste caso.)
Métodos
| as_dataset |
Promova a saída intermediária em um conjunto de dados. Esse conjunto de dados existirá após a execução da etapa. Observe que a saída deve 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, então 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 |
Consuma o PipelineData como download. |
| as_input |
Crie um InputPortBinding e especifique um nome de entrada (mas use o modo padrão). |
| as_mount |
Consuma o PipelineData como montagem. |
| create_input_binding |
Crie vinculação de entrada. |
| get_env_variable_name |
Retornar o nome da variável de ambiente para este PipelineData. |
as_dataset
Promova a saída intermediária em um conjunto de dados.
Esse conjunto de dados existirá após a execução da etapa. Observe que a saída deve 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, então 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()
Devoluções
| Tipo | Description |
|---|---|
|
A saída intermediária como um conjunto de dados. |
as_download
Consuma o PipelineData como download.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parâmetros
| Name | Description |
|---|---|
|
input_name
|
Use para especificar um nome para essa entrada. Default value: None
|
|
path_on_compute
|
O caminho no cálculo para o qual fazer o download. Default value: None
|
|
overwrite
|
Use para indicar se os dados existentes devem ser substituídos. Default value: None
|
Devoluções
| Tipo | Description |
|---|---|
|
O InputPortBinding com este PipelineData como fonte. |
as_input
Crie um InputPortBinding e especifique um nome de entrada (mas use o modo padrão).
as_input(input_name)
Parâmetros
| Name | Description |
|---|---|
|
input_name
Necessário
|
Use para especificar um nome para essa entrada. |
Devoluções
| Tipo | Description |
|---|---|
|
O InputPortBinding com este PipelineData como fonte. |
as_mount
Consuma o PipelineData como montagem.
as_mount(input_name=None)
Parâmetros
| Name | Description |
|---|---|
|
input_name
|
Use para especificar um nome para essa entrada. Default value: None
|
Devoluções
| Tipo | Description |
|---|---|
|
O InputPortBinding com este PipelineData como fonte. |
create_input_binding
Crie vinculação 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 de acesso ao PipelineData ("mount" ou "download"). Default value: None
|
|
path_on_compute
|
Para o modo de "download", o caminho no cálculo dos dados residirá. Default value: None
|
|
overwrite
|
Para o modo de "download", substitua os dados existentes. Default value: None
|
Devoluções
| Tipo | Description |
|---|---|
|
O InputPortBinding com este PipelineData como fonte. |
get_env_variable_name
Retornar 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
Armazenamento de dados no qual o PipelineData residirá.
Devoluções
| Tipo | Description |
|---|---|
|
O objeto Datastore. |