PipelineData Clase

Representa datos intermedios de una canalización de Azure Machine Learning.

Los datos usados en la canalización se pueden generar en un paso y consumir en otro paso proporcionando un objeto PipelineData como salida de un paso y entrada de uno o varios pasos posteriores.

Nota: Si usa los datos de canalización, debe asegurarse de que existe el directorio usado.

Un ejemplo de Python para asegurarse de que el directorio existía, supongamos que tiene un puerto de salida denominado output_folder en un paso de canalización; debe escribir algunos datos en la ruta de acceso relativa de esta carpeta.


   import os
   os.makedirs(args.output_folder, exist_ok=True)
   f = open(args.output_folder + '/relative_path/file_name', 'w+')

PipelineData usa el elemento DataReference subyacente, que ya no es el enfoque recomendado para el acceso y la entrega de datos. Use OutputFileDatasetConfig en su lugar; puede encontrar el ejemplo aquí: Canalización mediante OutputFileDatasetConfig.

Inicializar PipelineData.

Herencia
builtins.object
PipelineData

Constructor

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
Requerido

Nombre del objeto PipelineData, que solo puede contener letras, dígitos y caracteres de subrayado.

Los nombres de PipelineData se usan para identificar las salidas de un paso. Una vez completada la ejecución de una canalización, puede usar el nombre del paso con un nombre de salida para acceder a una salida determinada. Los nombres deben ser únicos en un solo paso de una canalización.

datastore
AbstractAzureStorageDatastore o AzureDataLakeDatastore
valor predeterminado: None

Almacén de datos en el que residirá el objeto PipelineData. Si no se especifica, se usa el almacén de datos predeterminado.

output_name
str
valor predeterminado: None

Nombre de la salida, si se usa el nombre None. Solo puede contener letras, dígitos y caracteres de subrayado.

output_mode
str
valor predeterminado: mount

Especifica si el paso de producción usará el método "upload" o "mount" para acceder a los datos.

output_path_on_compute
str
valor predeterminado: None

Para output_mode = "upload", este parámetro representa la ruta de acceso en la que el módulo escribe la salida.

output_overwrite
bool
valor predeterminado: None

Para output_mode = "upload", este parámetro especifica si se deben sobrescribir los datos existentes.

data_type
str
valor predeterminado: None

Opcional. El tipo de datos se puede usar para especificar el tipo esperado de la salida y para detallar cómo los pasos de consumo deben usar los datos. Puede ser cualquier cadena definida por el usuario.

is_directory
bool
valor predeterminado: None

Especifica si los datos están en un directorio o un único archivo. Esto solo se usa para determinar un tipo de datos que utiliza el servidor de back-end de Azure ML si no se proporciona el parámetro data_type. El valor predeterminado es False.

pipeline_output_name
valor predeterminado: None

Si se proporciona, esta salida estará disponible mediante PipelineRun.get_pipeline_output(). Los nombres de salida de canalización deben ser únicos en la canalización.

training_output
TrainingOutput
valor predeterminado: None

Define la salida del resultado del entrenamiento. Esto solo es necesario para entrenamientos específicos que dan lugar a diferentes tipos de salidas, como métricas y modelo. Por ejemplo, AutoMLStep da lugar a métricas y modelo. También puede definir una iteración de entrenamiento específica o una métrica que se usa para obtener el mejor modelo. Para HyperDriveStep, también puede definir los archivos de modelo específicos que se incluirán en la salida.

name
str
Requerido

Nombre del objeto PipelineData, que solo puede contener letras, dígitos y caracteres de subrayado.

Los nombres de PipelineData se usan para identificar las salidas de un paso. Una vez completada la ejecución de una canalización, puede usar el nombre del paso con un nombre de salida para acceder a una salida determinada. Los nombres deben ser únicos en un solo paso de una canalización.

datastore
AbstractAzureStorageDatastore o AzureDataLakeDatastore
Requerido

Almacén de datos en el que residirá el objeto PipelineData. Si no se especifica, se usa el almacén de datos predeterminado.

output_name
str
Requerido

Nombre de la salida, si se usa el nombre None. que solo puede contener letras, dígitos y caracteres de subrayado.

output_mode
str
Requerido

Especifica si el paso de producción usará el método "upload" o "mount" para acceder a los datos.

output_path_on_compute
str
Requerido

Para output_mode = "upload", este parámetro representa la ruta de acceso en la que el módulo escribe la salida.

output_overwrite
bool
Requerido

Para output_mode = "upload", este parámetro especifica si se deben sobrescribir los datos existentes.

data_type
str
Requerido

Opcional. El tipo de datos se puede usar para especificar el tipo esperado de la salida y para detallar cómo los pasos de consumo deben usar los datos. Puede ser cualquier cadena definida por el usuario.

is_directory
bool
Requerido

Especifica si los datos están en un directorio o un único archivo. Esto solo se usa para determinar un tipo de datos que utiliza el servidor de back-end de Azure ML si no se proporciona el parámetro data_type. El valor predeterminado es False.

pipeline_output_name
str
Requerido

Si se proporciona, esta salida estará disponible mediante PipelineRun.get_pipeline_output(). Los nombres de salida de canalización deben ser únicos en la canalización.

training_output
TrainingOutput
Requerido

Define la salida del resultado del entrenamiento. Esto solo es necesario para entrenamientos específicos que dan lugar a diferentes tipos de salidas, como métricas y modelo. Por ejemplo, AutoMLStep da lugar a métricas y modelo. También puede definir una iteración de entrenamiento específica o una métrica que se usa para obtener el mejor modelo. Para HyperDriveStep, también puede definir los archivos de modelo específicos que se incluirán en la salida.

Comentarios

PipelineData representa la salida de datos que un paso producirá cuando se ejecute. Use PipelineData al crear pasos para describir los archivos o directorios que generará el paso. Estas salidas de datos se agregarán al almacén de datos especificado y se pueden recuperar y ver más adelante.

Por ejemplo, el siguiente paso de canalización genera una salida denominada "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)

En este caso, el script train.py escribirá el modelo que genera en la ubicación que se proporciona al script mediante el argumento –model.

Los objetos PipelineData también se usan al construir canalizaciones para describir las dependencias de pasos. Para especificar que un paso requiere la salida de otro paso como entrada, use un objeto PipelineData en el constructor de ambos pasos.

Por ejemplo, el paso de entrenamiento de canalización depende de la salida process_step_output del paso de proceso de la canalización:


   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])

Esto creará una canalización con dos pasos. El paso de proceso se ejecutará primero y, después de que se haya completado, se ejecutará el paso de entrenamiento. Azure ML proporcionará la salida que genera el paso de proceso para el paso de entrenamiento.

Consulte esta página para obtener más ejemplos del uso de PipelineData para construir una canalización: https://aka.ms/pl-data-dep.

Para los tipos de proceso admitidos, PipelineData también se puede usar para especificar cómo se producirán y usarán los datos en la ejecución. Se admiten dos métodos:

  • "Mount" (predeterminado): los datos de entrada o salida se montan en el almacenamiento local en el nodo de ejecución y se establece una variable de entorno que apunta a la ruta de acceso de estos datos ($AZUREML_DATAREFERENCE_name). Para mayor comodidad, puede pasar el objeto PipelineData como uno de los argumentos al script, por ejemplo, mediante el parámetro arguments de PythonScriptStep, y el objeto se resolverá en la ruta de acceso a los datos. Para las salidas, el script de proceso debe crear un archivo o directorio en esta ruta de acceso de salida. Para ver el valor de la variable de entorno utilizada al pasar el objeto Pipeline como argumento, use el método get_env_variable_name.

  • "Upload": especifique un output_path_on_compute correspondiente a un nombre de archivo o directorio que generará el script. (No se usan variables de entorno en este caso).

Métodos

as_dataset

Promocione la salida intermedia a un conjunto de datos.

Este conjunto de datos existirá después de que se haya ejecutado el paso. Tenga en cuenta que la salida debe promoverse para que sea un conjunto de datos para que la entrada posterior se consuma como conjunto de datos. Si as_dataset no se llama a en la salida, sino solo en la entrada, será un valor noop y la entrada no se consumirá como un conjunto de datos. En el ejemplo de código siguiente se muestra un uso correcto 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

Use PipelineData como descarga.

as_input

Cree un objeto InputPortBinding y especifique un nombre de entrada (pero use el modo predeterminado).

as_mount

Use PipelineData como montaje.

create_input_binding

Cree un enlace de entrada.

get_env_variable_name

Devuelva el nombre de la variable de entorno de este objeto PipelineData.

as_dataset

Promocione la salida intermedia a un conjunto de datos.

Este conjunto de datos existirá después de que se haya ejecutado el paso. Tenga en cuenta que la salida debe promoverse para que sea un conjunto de datos para que la entrada posterior se consuma como conjunto de datos. Si as_dataset no se llama a en la salida, sino solo en la entrada, será un valor noop y la entrada no se consumirá como un conjunto de datos. En el ejemplo de código siguiente se muestra un uso correcto 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()

Devoluciones

Salida intermedia como conjunto de datos.

Tipo de valor devuelto

as_download

Use PipelineData como descarga.

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

Parámetros

input_name
str
valor predeterminado: None

Se usa para especificar un nombre para esta entrada.

path_on_compute
str
valor predeterminado: None

Ruta de acceso del proceso en el que se descargará.

overwrite
bool
valor predeterminado: None

Úsela para indicar si desea sobrescribir los datos existentes.

Devoluciones

InputPortBinding con este objeto PipelineData como origen.

Tipo de valor devuelto

as_input

Cree un objeto InputPortBinding y especifique un nombre de entrada (pero use el modo predeterminado).

as_input(input_name)

Parámetros

input_name
str
Requerido

Se usa para especificar un nombre para esta entrada.

Devoluciones

InputPortBinding con este objeto PipelineData como origen.

Tipo de valor devuelto

as_mount

Use PipelineData como montaje.

as_mount(input_name=None)

Parámetros

input_name
str
valor predeterminado: None

Se usa para especificar un nombre para esta entrada.

Devoluciones

InputPortBinding con este objeto PipelineData como origen.

Tipo de valor devuelto

create_input_binding

Cree un enlace de entrada.

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

Parámetros

input_name
str
valor predeterminado: None

Nombre de la entrada.

mode
str
valor predeterminado: None

Modo para acceder a PipelineData ("mount" o "download").

path_on_compute
str
valor predeterminado: None

Para el modo "download", la ruta de acceso en el proceso donde residirán los datos.

overwrite
bool
valor predeterminado: None

Para el modo "download", si se van a sobrescribir los datos existentes.

Devoluciones

InputPortBinding con este objeto PipelineData como origen.

Tipo de valor devuelto

get_env_variable_name

Devuelva el nombre de la variable de entorno de este objeto PipelineData.

get_env_variable_name()

Devoluciones

Nombre de la variable de entorno.

Tipo de valor devuelto

str

Atributos

data_type

Tipo de datos que se producirá.

Devoluciones

El nombre del tipo de datos.

Tipo de valor devuelto

str

datastore

Almacén de datos en el que residirá PipelineData.

Devoluciones

El objeto del almacén de datos.

Tipo de valor devuelto

name

Nombre del objeto PipelineData.

Devoluciones

Name (Nombre).

Tipo de valor devuelto

str