PythonScriptStep Classe

Crée une étape de pipeline ML Azure qui exécute un script Python.

Pour obtenir un exemple d’utilisation de PythonScriptStep, consultez le notebook https://aka.ms/pl-get-started.

Créez une étape de pipeline Azure ML qui exécute un script Python.

Héritage
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

Constructeur

PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)

Paramètres

script_name
str
Obligatoire

[Obligatoire] Nom d’un script Python relatif à source_directory.

name
str
valeur par défaut: None

Nom de l'étape. S’il n’est pas spécifié, script_name est utilisé.

arguments
list
valeur par défaut: None

Arguments de ligne de commande pour le fichier de script Python. Les arguments sont transférés au calcul via le paramètre arguments dans RunConfiguration. Pour plus d’informations sur la façon de gérer des arguments tels que les symboles spéciaux, consultez RunConfiguration.

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
valeur par défaut: None

[Obligatoire] Cible de calcul à utiliser. Si elle n’est pas spécifiée, la cible du runconfig sera utilisée. Ce paramètre peut être spécifié sous la forme d’un objet de cible de calcul ou du nom de chaîne d’une cible de calcul dans l’espace de travail. Éventuellement, si la cible de calcul n’est pas disponible au moment de la création du pipeline, vous pouvez spécifier un tuple de (« Compute Target Name », « Compute Target type ») pour éviter l’extraction de l’objet cible de calcul (le type AmlCompute est « AmlCompute » et le type RemoteCompute est « VirtualMachine »).

runconfig
RunConfiguration
valeur par défaut: None

RunConfiguration facultatif à utiliser. Un RunConfiguration peut être utilisé pour spécifier des exigences supplémentaires pour l’exécution, telles que les dépendances Conda et l’image Docker. S’il n’est pas spécifié, un runconfig par défaut est créé.

runconfig_pipeline_params
dict[str, PipelineParameter]
valeur par défaut: None

Remplacement des propriétés runconfig au moment de l’exécution à l’aide de paires clé-valeur, chacune avec le nom de la propriété runconfig et PipelineParameter pour cette propriété.

Valeurs prises en charge : « NodeCount », « MpiProcessCountPerNode », « TensorflowWorkerCount », « TensorflowParameterServerCount »

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
valeur par défaut: None

Liste des liaisons de port de sortie.

params
dict
valeur par défaut: None

Dictionnaire des paires nom-valeur inscrites en tant que variables d’environnement avec « AML_PARAMETER_ ».

source_directory
str
valeur par défaut: None

Dossier qui contient le script Python, l’environnement Conda et d’autres ressources utilisées lors de cette étape.

allow_reuse
bool
valeur par défaut: True

Indique si l’étape doit réutiliser les résultats précédents lorsqu’elle est exécutée avec les mêmes paramètres. La réutilisation est activée par défaut. Si le contenu de l’étape (scripts/dépendances) ainsi que les entrées et les paramètres restent inchangés, la sortie de l’exécution précédente de cette étape est réutilisée. Lors de la réutilisation de l’étape, au lieu de soumettre le travail au calcul, les résultats de l’exécution précédente sont immédiatement mis à la disposition des étapes suivantes. Si vous utilisez des jeux de données Azure Machine Learning comme entrées, la réutilisation est déterminée par le fait que la définition du jeu de données a changé ou pas, non par la modification éventuelle des données sous-jacentes.

version
str
valeur par défaut: None

Balise de version facultative pour indiquer une modification de fonctionnalité pour l’étape.

hash_paths
list
valeur par défaut: None

DÉCONSEILLÉ : n’est plus nécessaire.

Liste de chemins à hacher lors de la recherche des modifications apportées au contenu de l’étape. Si aucune modification n’est détectée, le pipeline réutilise le contenu de l’étape d’une exécution précédente. Par défaut, le contenu de source_directory est haché (à l’exception des fichiers listés dans.amlignore ou .gitignore).

script_name
str
Obligatoire

[Obligatoire] Nom d’un script Python relatif à source_directory.

name
str
Obligatoire

Nom de l'étape. S’il n’est pas spécifié, script_name est utilisé.

arguments
[str]
Obligatoire

Arguments de ligne de commande pour le fichier de script Python. Les arguments sont transférés au calcul via le paramètre arguments dans RunConfiguration. Pour plus d’informations sur la façon de gérer des arguments tels que les symboles spéciaux, consultez RunConfiguration.

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
Obligatoire

[Obligatoire] Cible de calcul à utiliser. Si elle n’est pas spécifiée, la cible du runconfig sera utilisée. Ce paramètre peut être spécifié sous la forme d’un objet de cible de calcul ou du nom de chaîne d’une cible de calcul dans l’espace de travail. Éventuellement, si la cible de calcul n’est pas disponible au moment de la création du pipeline, vous pouvez spécifier un tuple de (« Compute Target Name », « Compute Target type ») pour éviter l’extraction de l’objet cible de calcul (le type AmlCompute est « AmlCompute » et le type RemoteCompute est « VirtualMachine »).

runconfig
RunConfiguration
Obligatoire

RunConfiguration facultatif à utiliser. RunConfiguration peut être utilisé pour spécifier des exigences supplémentaires pour l’exécution, telles que les dépendances conda et une image Docker. S’il n’est pas spécifié, un runconfig par défaut est créé.

runconfig_pipeline_params
dict[str, PipelineParameter]
Obligatoire

Remplacement des propriétés runconfig au moment de l’exécution à l’aide de paires clé-valeur, chacune avec le nom de la propriété runconfig et PipelineParameter pour cette propriété.

Valeurs prises en charge : « NodeCount », « MpiProcessCountPerNode », « TensorflowWorkerCount », « TensorflowParameterServerCount »

params
<xref:<xref:{str: str}>>
Obligatoire

Dictionnaire des paires nom-valeur. Inscrite en tant que variables d’environnement avec «>> AML_PARAMETER_<< ».

source_directory
str
Obligatoire

Dossier qui contient le script Python, l’environnement Conda et d’autres ressources utilisées lors de cette étape.

allow_reuse
bool
Obligatoire

Indique si l’étape doit réutiliser les résultats précédents lorsqu’elle est exécutée avec les mêmes paramètres. La réutilisation est activée par défaut. Si le contenu de l’étape (scripts/dépendances) ainsi que les entrées et les paramètres restent inchangés, la sortie de l’exécution précédente de cette étape est réutilisée. Lors de la réutilisation de l’étape, au lieu de soumettre le travail au calcul, les résultats de l’exécution précédente sont immédiatement mis à la disposition des étapes suivantes. Si vous utilisez des jeux de données Azure Machine Learning comme entrées, la réutilisation est déterminée par le fait que la définition du jeu de données a changé ou pas, non par la modification éventuelle des données sous-jacentes.

version
str
Obligatoire

Balise de version facultative pour indiquer une modification de fonctionnalité pour l’étape.

hash_paths
list
Obligatoire

DÉCONSEILLÉ : n’est plus nécessaire.

Liste de chemins à hacher lors de la recherche des modifications apportées au contenu de l’étape. Si aucune modification n’est détectée, le pipeline réutilise le contenu de l’étape d’une exécution précédente. Par défaut, le contenu de source_directory est haché (à l’exception des fichiers listés dans.amlignore ou.gitignore).

Remarques

Un PythonScriptStep est une étape intégrée et de base pour exécuter un script Python sur une cible de calcul. Il accepte un nom de script et d’autres paramètres facultatifs, comme des arguments pour le script, la cible de calcul, les entrées et les sorties. Si aucune cible de calcul n’est spécifiée, la cible de calcul par défaut de l’espace de travail est utilisée. Vous pouvez également utiliser un RunConfiguration pour spécifier les exigences pour le PythonScriptStep, telles que les dépendances Conda et l’image Docker.

La meilleure pratique pour l’utilisation de PythonScriptStep consiste à utiliser un dossier distinct pour les scripts et tous les fichiers dépendants associés à l’étape, et à spécifier ce dossier avec le paramètre source_directory. Suivre cette bonne pratique présente deux avantages. En premier lieu, cela permet de réduire la taille de l’instantané créé pour l’étape, car seuls les éléments nécessaires à l’étape sont capturés. Deuxièmement, la sortie de l’étape d’une exécution précédente peut être réutilisée si aucune modification n’est apportée au source_directory. La présence de modifications déclenche un nouveau téléchargement de l’instantané.

L’exemple de code suivant illustre l’utilisation d’un PythonScriptStep dans un scénario de formation Machine Learning. Pour plus d’informations sur cet exemple, consultez https://aka.ms/pl-first-pipeline.


   from azureml.pipeline.steps import PythonScriptStep

   trainStep = PythonScriptStep(
       script_name="train.py",
       arguments=["--input", blob_input_data, "--output", output_data1],
       inputs=[blob_input_data],
       outputs=[output_data1],
       compute_target=compute_target,
       source_directory=project_folder
   )

PythonScriptStep prend en charge un certain nombre de types d’entrée et de sortie. Il s’agit notamment de DatasetConsumptionConfig pour les entrées et OutputDatasetConfig, PipelineOutputAbstractDataset et PipelineData pour les entrées et les sorties.

Voici un exemple d’utilisation de Dataset en tant qu’entrée et sortie de l’étape :


   from azureml.core import Dataset
   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import Pipeline, PipelineData

   # get input dataset
   input_ds = Dataset.get_by_name(workspace, 'weather_ds')

   # register pipeline output as dataset
   output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
   output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)

   # configure pipeline step to use dataset as the input and output
   prep_step = PythonScriptStep(script_name="prepare.py",
                                inputs=[input_ds.as_named_input('weather_ds')],
                                outputs=[output_ds],
                                compute_target=compute_target,
                                source_directory=project_folder)

Pour obtenir des exemples d’utilisation d’autres types d’entrée/sortie, reportez-vous aux pages correspondantes dans la documentation.

Méthodes

create_node

Créez un nœud pour PythonScriptStep et ajoutez-le au graphique spécifié.

Cette méthode n’est pas destinée à être utilisée directement. Lorsqu’un pipeline est instancié avec cette étape, Azure ML transmet automatiquement les paramètres requis via cette méthode afin que l’étape puisse être ajoutée à un graphique de pipeline qui représente le workflow.

create_node

Créez un nœud pour PythonScriptStep et ajoutez-le au graphique spécifié.

Cette méthode n’est pas destinée à être utilisée directement. Lorsqu’un pipeline est instancié avec cette étape, Azure ML transmet automatiquement les paramètres requis via cette méthode afin que l’étape puisse être ajoutée à un graphique de pipeline qui représente le workflow.

create_node(graph, default_datastore, context)

Paramètres

graph
Graph
Obligatoire

Objet graphique auquel ajouter le nœud.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Obligatoire

Magasin de données par défaut.

context
<xref:azureml.pipeline.core._GraphContext>
Obligatoire

Contexte du graphique.

Retours

Nœud créé.

Type de retour