Partager via


PipelineData Classe

Représente des données intermédiaires dans un pipeline Azure Machine Learning.

Les données utilisées dans le pipeline peuvent être produites par une étape et consommées dans une autre étape en fournissant un objet PipelineData en tant que sortie d’une étape et une entrée d’une ou plusieurs étapes suivantes.

Notez que si vous utilisez les données du pipeline, assurez-vous que le répertoire utilisé existait.

Exemple python pour vous assurer que le répertoire existait, supposons que vous disposiez d’un port de sortie nommé output_folder en une étape de pipeline, vous souhaitez écrire des données dans le chemin relatif de ce dossier.


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

PipelineData utilise DataReference sous-jacent qui n’est plus l’approche recommandée pour l’accès aux données et la remise, utilisez OutputFileDatasetConfig à la place, vous trouverez un exemple ici : Pipeline à l’aide de OutputFileDatasetConfig.

Initialisez PipelineData.

Constructeur

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)

Paramètres

Nom Description
name
Obligatoire
str

Nom de l’objet PipelineData, qui peut contenir uniquement des lettres, des chiffres et des traits de soulignement.

Les noms pipelineData sont utilisés pour identifier les sorties d’une étape. Une fois l’exécution d’un pipeline terminée, vous pouvez utiliser le nom de l’étape avec un nom de sortie pour accéder à une sortie particulière. Les noms doivent être uniques au sein d’une seule étape d’un pipeline.

datastore

Le magasin de données sur lequel PipelineData réside. S’il n’est pas spécifié, le magasin de données par défaut est utilisé.

Valeur par défaut: None
output_name
str

Nom de la sortie, si aucun nom est utilisé. Peut contenir uniquement des lettres, des chiffres et des traits de soulignement.

Valeur par défaut: None
output_mode
str

Spécifie si l’étape de production utilise la méthode « upload » ou « mount » pour accéder aux données.

Valeur par défaut: mount
output_path_on_compute
str

Pour output_mode = « upload », ce paramètre représente le chemin dans lequel le module écrit la sortie.

Valeur par défaut: None
output_overwrite

Pour output_mode = « upload », ce paramètre spécifie s’il faut remplacer les données existantes.

Valeur par défaut: None
data_type
str

Optionnel. Le type de données peut être utilisé pour spécifier le type attendu de la sortie et pour détailler la façon dont les étapes consommatrices doivent utiliser les données. Il peut s’agir de n’importe quelle chaîne définie par l’utilisateur.

Valeur par défaut: None
is_directory

Spécifie si les données sont un répertoire ou un fichier unique. Cela est utilisé uniquement pour déterminer un type de données utilisé par le back-end Azure ML lorsque le data_type paramètre n’est pas fourni. La valeur par défaut est False.

Valeur par défaut: None
pipeline_output_name

Si cette sortie est fournie, elle est disponible à l’aide PipelineRun.get_pipeline_output()de . Les noms de sortie du pipeline doivent être uniques dans le pipeline.

Valeur par défaut: None
training_output

Définit la sortie pour le résultat d’entraînement. Cela est nécessaire uniquement pour des formations spécifiques qui entraînent différents types de sorties, tels que les métriques et le modèle. Par exemple, AutoMLStep les métriques et le modèle sont obtenus. Vous pouvez également définir une itération d’entraînement ou une métrique spécifique utilisée pour obtenir le meilleur modèle. Pour HyperDriveStep, vous pouvez également définir les fichiers de modèle spécifiques à inclure dans la sortie.

Valeur par défaut: None
name
Obligatoire
str

Nom de l’objet PipelineData, qui peut contenir uniquement des lettres, des chiffres et des traits de soulignement.

Les noms pipelineData sont utilisés pour identifier les sorties d’une étape. Une fois l’exécution d’un pipeline terminée, vous pouvez utiliser le nom de l’étape avec un nom de sortie pour accéder à une sortie particulière. Les noms doivent être uniques au sein d’une seule étape d’un pipeline.

datastore
Obligatoire

Le magasin de données sur lequel PipelineData réside. S’il n’est pas spécifié, le magasin de données par défaut est utilisé.

output_name
Obligatoire
str

Nom de la sortie, si aucun nom est utilisé. qui ne peut contenir que des lettres, des chiffres et des traits de soulignement.

output_mode
Obligatoire
str

Spécifie si l’étape de production utilise la méthode « upload » ou « mount » pour accéder aux données.

output_path_on_compute
Obligatoire
str

Pour output_mode = « upload », ce paramètre représente le chemin dans lequel le module écrit la sortie.

output_overwrite
Obligatoire

Pour output_mode = « upload », ce paramètre spécifie s’il faut remplacer les données existantes.

data_type
Obligatoire
str

Optionnel. Le type de données peut être utilisé pour spécifier le type attendu de la sortie et pour détailler la façon dont les étapes consommatrices doivent utiliser les données. Il peut s’agir de n’importe quelle chaîne définie par l’utilisateur.

is_directory
Obligatoire

Spécifie si les données sont un répertoire ou un fichier unique. Cela est utilisé uniquement pour déterminer un type de données utilisé par le back-end Azure ML lorsque le data_type paramètre n’est pas fourni. La valeur par défaut est False.

pipeline_output_name
Obligatoire
str

Si cette sortie est fournie, elle est disponible à l’aide PipelineRun.get_pipeline_output()de . Les noms de sortie du pipeline doivent être uniques dans le pipeline.

training_output
Obligatoire

Définit la sortie pour le résultat d’entraînement. Cela est nécessaire uniquement pour des formations spécifiques qui entraînent différents types de sorties, tels que les métriques et le modèle. Par exemple, AutoMLStep les métriques et le modèle sont obtenus. Vous pouvez également définir une itération d’entraînement ou une métrique spécifique utilisée pour obtenir le meilleur modèle. Pour HyperDriveStep, vous pouvez également définir les fichiers de modèle spécifiques à inclure dans la sortie.

Remarques

PipelineData représente la sortie de données qu’une étape produit lors de son exécution. Utilisez PipelineData lors de la création d’étapes pour décrire les fichiers ou répertoires qui seront générés par l’étape. Ces sorties de données seront ajoutées au magasin de données spécifié et peuvent être récupérées et consultées ultérieurement.

Par exemple, l’étape de pipeline suivante génère une sortie nommée « modèle » :


   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)

Dans ce cas, le script train.py écrit le modèle qu’il produit à l’emplacement fourni au script par le biais de l’argument –model.

Les objets PipelineData sont également utilisés lors de la construction de Pipelines pour décrire les dépendances d’étape. Pour spécifier qu’une étape nécessite la sortie d’une autre étape en tant qu’entrée, utilisez un objet PipelineData dans le constructeur des deux étapes.

Par exemple, l’étape de train de pipeline dépend de la sortie process_step_output de l’étape de processus 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])

Cela crée un pipeline en deux étapes. L’étape de processus sera exécutée en premier, puis une fois terminée, l’étape d’apprentissage sera exécutée. Azure ML fournit la sortie produite par l’étape de processus à l’étape d’apprentissage.

Consultez cette page pour obtenir d’autres exemples d’utilisation de PipelineData pour construire un pipeline : https://aka.ms/pl-data-dep

Pour les types de calcul pris en charge, PipelineData peut également être utilisé pour spécifier la façon dont les données seront produites et consommées par l’exécution. Il existe deux méthodes prises en charge :

  • Montage (valeur par défaut) : les données d’entrée ou de sortie sont montées sur le stockage local sur le nœud de calcul, et une variable d’environnement est définie qui pointe vers le chemin d’accès de ces données ($AZUREML_DATAREFERENCE_name). Pour plus de commodité, vous pouvez transmettre l’objet PipelineData dans l’un des arguments à votre script, par exemple en utilisant le arguments paramètre , PythonScriptStepet l’objet est résolu vers le chemin d’accès aux données. Pour les sorties, votre script de calcul doit créer un fichier ou un répertoire à ce chemin de sortie. Pour afficher la valeur de la variable d’environnement utilisée lorsque vous passez l’objet Pipeline en tant qu’argument, utilisez la get_env_variable_name méthode.

  • Charger : spécifiez un output_path_on_compute nom de fichier ou de répertoire correspondant à votre script. (Les variables d’environnement ne sont pas utilisées dans ce cas.)

Méthodes

as_dataset

Promouvoir la sortie intermédiaire dans un jeu de données.

Ce jeu de données existe une fois l’étape exécutée. Notez que la sortie doit être promue comme un jeu de données afin que l’entrée suivante soit consommée en tant que jeu de données. Si as_dataset n’est pas appelé sur la sortie, mais uniquement sur l’entrée, il s’agit d’une noop et l’entrée ne sera pas consommée en tant que jeu de données. L’exemple de code ci-dessous montre une utilisation correcte 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

Utilisez PipelineData en tant que téléchargement.

as_input

Créez un InputPortBinding et spécifiez un nom d’entrée (mais utilisez le mode par défaut).

as_mount

Utilisez PipelineData comme montage.

create_input_binding

Créez une liaison d’entrée.

get_env_variable_name

Retourne le nom de la variable d’environnement pour ce PipelineData.

as_dataset

Promouvoir la sortie intermédiaire dans un jeu de données.

Ce jeu de données existe une fois l’étape exécutée. Notez que la sortie doit être promue comme un jeu de données afin que l’entrée suivante soit consommée en tant que jeu de données. Si as_dataset n’est pas appelé sur la sortie, mais uniquement sur l’entrée, il s’agit d’une noop et l’entrée ne sera pas consommée en tant que jeu de données. L’exemple de code ci-dessous montre une utilisation correcte 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()

Retours

Type Description

Sortie intermédiaire en tant que jeu de données.

as_download

Utilisez PipelineData en tant que téléchargement.

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

Paramètres

Nom Description
input_name
str

Permet de spécifier un nom pour cette entrée.

Valeur par défaut: None
path_on_compute
str

Chemin d’accès sur le calcul à télécharger.

Valeur par défaut: None
overwrite

Permet d’indiquer s’il faut remplacer les données existantes.

Valeur par défaut: None

Retours

Type Description

InputPortBinding avec ce PipelineData comme source.

as_input

Créez un InputPortBinding et spécifiez un nom d’entrée (mais utilisez le mode par défaut).

as_input(input_name)

Paramètres

Nom Description
input_name
Obligatoire
str

Permet de spécifier un nom pour cette entrée.

Retours

Type Description

InputPortBinding avec ce PipelineData comme source.

as_mount

Utilisez PipelineData comme montage.

as_mount(input_name=None)

Paramètres

Nom Description
input_name
str

Permet de spécifier un nom pour cette entrée.

Valeur par défaut: None

Retours

Type Description

InputPortBinding avec ce PipelineData comme source.

create_input_binding

Créez une liaison d’entrée.

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

Paramètres

Nom Description
input_name
str

Nom de l’entrée.

Valeur par défaut: None
mode
str

Mode permettant d’accéder à PipelineData (« mount » ou « download »).

Valeur par défaut: None
path_on_compute
str

Pour le mode « télécharger », le chemin d’accès sur le calcul des données résidera.

Valeur par défaut: None
overwrite

Pour le mode « télécharger », indiquez s’il faut remplacer les données existantes.

Valeur par défaut: None

Retours

Type Description

InputPortBinding avec ce PipelineData comme source.

get_env_variable_name

Retourne le nom de la variable d’environnement pour ce PipelineData.

get_env_variable_name()

Retours

Type Description
str

Nom de la variable d’environnement.

Attributs

data_type

Type de données qui seront produites.

Retours

Type Description
str

Nom du type de données.

datastore

Magasin de données sur lequel réside PipelineData.

Retours

Type Description

Objet Magasin de données.

name

Nom de l’objet PipelineData.

Retours

Type Description
str

Nom.