PythonScriptStep Classe
Crée une étape de pipeline Azure ML 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.
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
Nom | Description |
---|---|
script_name
Obligatoire
|
[Obligatoire] Nom d’un script Python relatif à |
name
|
Nom de l’étape. S’il n’est pas spécifié, Valeur par défaut: None
|
arguments
|
Arguments de ligne de commande pour le fichier de script Python. Les arguments sont passés au calcul via le Valeur par défaut: None
|
compute_target
|
[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é en tant qu’objet cible de calcul ou le nom de chaîne d’une cible de calcul sur l’espace de travail. Si la cible de calcul n’est pas disponible au moment de la création du pipeline, vous pouvez spécifier un tuple de (nom cible de calcul, « type cible de calcul ») pour éviter d’extraire l’objet cible de calcul (le type AmlCompute est « AmlCompute » et le type RemoteCompute est « VirtualMachine »). Valeur par défaut: None
|
runconfig
|
RunConfiguration facultatif à utiliser. Une RunConfiguration peut être utilisée 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éé. Valeur par défaut: None
|
runconfig_pipeline_params
|
Remplace les 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 » Valeur par défaut: None
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste des liaisons de port d’entrée. Valeur par défaut: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Liste des liaisons de port de sortie. Valeur par défaut: None
|
params
|
Dictionnaire de paires nom-valeur inscrites en tant que variables d’environnement avec « AML_PARAMETER_ ». Valeur par défaut: None
|
source_directory
|
Dossier qui contient le script Python, conda env et d’autres ressources utilisées à l’étape. Valeur par défaut: None
|
allow_reuse
|
Indique si l’étape doit réutiliser les résultats précédents lors de la réexécutation 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 la modification de la définition du jeu de données, et non par la modification des données sous-jacentes. Valeur par défaut: True
|
version
|
Balise de version facultative pour indiquer une modification des fonctionnalités de l’étape. Valeur par défaut: None
|
hash_paths
|
DÉCONSEILLÉ : n’est plus nécessaire. Liste des chemins d’accès au hachage lors de la vérification des modifications apportées au contenu de l’étape. S’il n’y a aucune modification détectée, le pipeline réutilise le contenu de l’étape à partir d’une exécution précédente. Par défaut, le contenu de Valeur par défaut: None
|
script_name
Obligatoire
|
[Obligatoire] Nom d’un script Python relatif à |
name
Obligatoire
|
Nom de l’étape. S’il n’est pas spécifié, |
arguments
Obligatoire
|
[str]
Arguments de ligne de commande pour le fichier de script Python. Les arguments sont passés au calcul via le |
compute_target
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é en tant qu’objet cible de calcul ou le nom de chaîne d’une cible de calcul sur l’espace de travail. Si la cible de calcul n’est pas disponible au moment de la création du pipeline, vous pouvez spécifier un tuple de (nom cible de calcul, « type cible de calcul ») pour éviter d’extraire l’objet cible de calcul (le type AmlCompute est « AmlCompute » et le type RemoteCompute est « VirtualMachine »). |
runconfig
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
Obligatoire
|
Remplace les 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 » |
inputs
Obligatoire
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste des liaisons de port d’entrée. |
outputs
Obligatoire
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Liste des liaisons de port de sortie. |
params
Obligatoire
|
<xref:<xref:{str: str}>>
Dictionnaire de paires nom-valeur. Inscrit en tant que variables d’environnement avec «>> AML_PARAMETER_<< ». |
source_directory
Obligatoire
|
Dossier qui contient le script Python, conda env et d’autres ressources utilisées à l’étape. |
allow_reuse
Obligatoire
|
Indique si l’étape doit réutiliser les résultats précédents lors de la réexécutation 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 la modification de la définition du jeu de données, et non par la modification des données sous-jacentes. |
version
Obligatoire
|
Balise de version facultative pour indiquer une modification des fonctionnalités de l’étape. |
hash_paths
Obligatoire
|
DÉCONSEILLÉ : n’est plus nécessaire. Liste des chemins d’accès au hachage lors de la vérification des modifications apportées au contenu de l’étape. S’il n’y a aucune modification détectée, le pipeline réutilise le contenu de l’étape à partir d’une exécution précédente. Par défaut, le contenu de |
Remarques
PythonScriptStep est une étape intégrée de base pour exécuter un script Python sur une cible de calcul. Il prend un nom de script et d’autres paramètres facultatifs tels que 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 pour l’espace de travail est utilisée. Vous pouvez également utiliser un RunConfiguration pour spécifier les conditions requises pour 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 source_directory
paramètre.
Le suivi de cette bonne pratique présente deux avantages. Tout d’abord, il permet de réduire la taille de l’instantané créé pour l’étape, car seul ce qui est nécessaire pour l’étape est instantané. Deuxièmement, la sortie de l’étape à partir d’une exécution précédente peut être réutilisée s’il n’y a aucune modification apportée à source_directory
celle qui déclencherait un nouveau chargement de l’instantané.
L’exemple de code suivant montre l’utilisation d’un PythonScriptStep dans un scénario d’entraînement 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
)
PythonScriptSteps prend en charge un certain nombre de types d’entrée et de sortie. Celles-ci incluent DatasetConsumptionConfig les entrées et OutputDatasetConfig, PipelineOutputAbstractDatasetet PipelineData pour les entrées et les sorties.
Voici un exemple d’utilisation Dataset comme entrée et sortie d’é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)
Reportez-vous aux pages de documentation correspondantes pour obtenir des exemples d’utilisation d’autres types d’entrée/sortie.
Méthodes
create_node |
Créez un nœud pour PythonScriptStep et ajoutez-le au graphe 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 par cette méthode afin que cette étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail. |
create_node
Créez un nœud pour PythonScriptStep et ajoutez-le au graphe 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 par cette méthode afin que cette étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail.
create_node(graph, default_datastore, context)
Paramètres
Nom | Description |
---|---|
graph
Obligatoire
|
Objet graphique auquel ajouter le nœud. |
default_datastore
Obligatoire
|
Magasin de données par défaut. |
context
Obligatoire
|
<xref:azureml.pipeline.core._GraphContext>
Contexte de graphe. |
Retours
Type | Description |
---|---|
Nœud créé. |