PipelineData Clase
Representa datos intermedios en una canalización de Azure Machine Learning.
Los datos usados en la canalización se pueden producir en un paso y consumirse en otro paso proporcionando un objeto PipelineData como salida de un paso y una entrada de uno o varios pasos posteriores.
Tenga en cuenta que si usa los datos de canalización, asegúrese de que el directorio usado existía.
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, quiere 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 DataReference subyacente que ya no es el enfoque recomendado para el acceso y la entrega de datos, use OutputFileDatasetConfig en su lugar, puede encontrar un ejemplo aquí: Canalización mediante OutputFileDatasetConfig.
Inicializar 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
| Nombre | Description |
|---|---|
|
name
Requerido
|
Nombre del objeto PipelineData, que solo puede contener letras, dígitos y caracteres de subrayado. Los nombres 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
|
Almacén de datos en el que residirá PipelineData. Si no se especifica, se usa el almacén de datos predeterminado. Valor predeterminado: None
|
|
output_name
|
Nombre de la salida, si se usa Ninguno. Solo puede contener letras, dígitos y caracteres de subrayado. Valor predeterminado: None
|
|
output_mode
|
Especifica si el paso de producción usará el método "upload" o "mount" para acceder a los datos. Valor predeterminado: mount
|
|
output_path_on_compute
|
Para Valor predeterminado: None
|
|
output_overwrite
|
Para Valor predeterminado: None
|
|
data_type
|
Opcional. El tipo de datos se puede usar para especificar el tipo esperado de la salida y para detallar cómo usar los pasos de consumo deben usar los datos. Puede ser cualquier cadena definida por el usuario. Valor predeterminado: None
|
|
is_directory
|
Especifica si los datos son un directorio o un único archivo. Esto solo se usa para determinar un tipo de datos que usa el back-end de Azure ML cuando no se proporciona el Valor predeterminado: None
|
|
pipeline_output_name
|
Si se proporciona esta salida estará disponible mediante Valor predeterminado: None
|
|
training_output
|
Define la salida para el resultado de 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 como resultado métricas y modelo. También puede definir una iteración o métrica de entrenamiento específica 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. Valor predeterminado: None
|
|
name
Requerido
|
Nombre del objeto PipelineData, que solo puede contener letras, dígitos y caracteres de subrayado. Los nombres 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
Requerido
|
Almacén de datos en el que residirá PipelineData. Si no se especifica, se usa el almacén de datos predeterminado. |
|
output_name
Requerido
|
Nombre de la salida, si se usa Ninguno. que solo puede contener letras, dígitos y caracteres de subrayado. |
|
output_mode
Requerido
|
Especifica si el paso de producción usará el método "upload" o "mount" para acceder a los datos. |
|
output_path_on_compute
Requerido
|
Para |
|
output_overwrite
Requerido
|
Para |
|
data_type
Requerido
|
Opcional. El tipo de datos se puede usar para especificar el tipo esperado de la salida y para detallar cómo usar los pasos de consumo deben usar los datos. Puede ser cualquier cadena definida por el usuario. |
|
is_directory
Requerido
|
Especifica si los datos son un directorio o un único archivo. Esto solo se usa para determinar un tipo de datos que usa el back-end de Azure ML cuando no se proporciona el |
|
pipeline_output_name
Requerido
|
Si se proporciona esta salida estará disponible mediante |
|
training_output
Requerido
|
Define la salida para el resultado de 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 como resultado métricas y modelo. También puede definir una iteración o métrica de entrenamiento específica 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 generará un paso cuando se ejecute. Use PipelineData al crear pasos para describir los archivos o directorios que se generarán mediante el paso. Estas salidas de datos se agregarán al almacén de datos especificado y se podrán 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 de train.py escribirá el modelo que genera en la ubicación que se proporciona al script a través del argumento –model.
Los objetos PipelineData también se usan al construir canalizaciones para describir las dependencias de paso. 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 process_step_output salida del paso de proceso de 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 generada por el paso de proceso al paso de entrenamiento.
Consulte esta página para obtener más ejemplos de uso de PipelineData para construir una canalización: https://aka.ms/pl-data-dep
En el caso de los tipos de proceso admitidos, PipelineData también se puede usar para especificar cómo se generarán y consumirán los datos mediante la ejecución. Hay dos métodos admitidos:
Montaje (valor predeterminado): los datos de entrada o salida se montan en el almacenamiento local en el nodo de proceso 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 en como uno de los argumentos al script, por ejemplo mediante el
argumentsparámetro de PythonScriptStepy 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 usada al pasar el objeto Pipeline como argumento, use el get_env_variable_name método .Cargar: especifique un
output_path_on_computevalor correspondiente a un nombre de archivo o directorio que generará el script. (Las variables de entorno no se usan en este caso).
Métodos
| as_dataset |
Promueva la salida intermedia en 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 no se llama a as_dataset en la salida, sino que solo se llama a en la entrada, será un 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_download |
Consuma PipelineData como descarga. |
| as_input |
Cree un inputPortBinding y especifique un nombre de entrada (pero use el modo predeterminado). |
| as_mount |
Consuma PipelineData como montaje. |
| create_input_binding |
Cree el enlace de entrada. |
| get_env_variable_name |
Devuelve el nombre de la variable de entorno para este PipelineData. |
as_dataset
Promueva la salida intermedia en 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 no se llama a as_dataset en la salida, sino que solo se llama a en la entrada, será un 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
| Tipo | Description |
|---|---|
|
Salida intermedia como un conjunto de datos. |
as_download
Consuma PipelineData como descarga.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parámetros
| Nombre | Description |
|---|---|
|
input_name
|
Use para especificar un nombre para esta entrada. Valor predeterminado: None
|
|
path_on_compute
|
Ruta de acceso del proceso al que se va a descargar. Valor predeterminado: None
|
|
overwrite
|
Use para indicar si se deben sobrescribir los datos existentes. Valor predeterminado: None
|
Devoluciones
| Tipo | Description |
|---|---|
|
InputPortBinding con pipelineData como origen. |
as_input
Cree un inputPortBinding y especifique un nombre de entrada (pero use el modo predeterminado).
as_input(input_name)
Parámetros
| Nombre | Description |
|---|---|
|
input_name
Requerido
|
Use para especificar un nombre para esta entrada. |
Devoluciones
| Tipo | Description |
|---|---|
|
InputPortBinding con pipelineData como origen. |
as_mount
Consuma PipelineData como montaje.
as_mount(input_name=None)
Parámetros
| Nombre | Description |
|---|---|
|
input_name
|
Use para especificar un nombre para esta entrada. Valor predeterminado: None
|
Devoluciones
| Tipo | Description |
|---|---|
|
InputPortBinding con pipelineData como origen. |
create_input_binding
Cree el enlace de entrada.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parámetros
| Nombre | Description |
|---|---|
|
input_name
|
Nombre de la entrada. Valor predeterminado: None
|
|
mode
|
Modo para acceder a PipelineData ("montar" o "descargar"). Valor predeterminado: None
|
|
path_on_compute
|
Para el modo de "descarga", la ruta de acceso del proceso residirán los datos. Valor predeterminado: None
|
|
overwrite
|
Para el modo de "descarga", si se van a sobrescribir los datos existentes. Valor predeterminado: None
|
Devoluciones
| Tipo | Description |
|---|---|
|
InputPortBinding con pipelineData como origen. |
get_env_variable_name
Devuelve el nombre de la variable de entorno para este PipelineData.
get_env_variable_name()
Devoluciones
| Tipo | Description |
|---|---|
|
Nombre de la variable de entorno. |
Atributos
data_type
datastore
Almacén de datos en el que residirá PipelineData.
Devoluciones
| Tipo | Description |
|---|---|
|
Objeto Almacén de datos. |