Partager via


CommandStep Classe

Crée une étape de pipeline Azure ML qui exécute une commande.

Crée une étape de pipeline Azure ML qui exécute une commande.

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

Constructeur

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

Paramètres

Nom Description
command
list ou str

Commande à exécuter ou chemin du fichier exécutable/du script relatif à source_directory. Cet élément est obligatoire, sauf s’il est fourni avec runconfig. Il peut être spécifié avec des arguments de chaîne dans une chaîne unique ou avec entrée/sortie/PipelineParameter dans une liste.

Valeur par défaut: None
name
str

Nom de l'étape. S’il n’est pas spécifié, le premier mot de la command est utilisé.

Valeur par défaut: None
compute_target

Cible de calcul à utiliser. Si elle n’est pas spécifiée, la cible de runconfig est 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 »).

Valeur par défaut: None
runconfig

Objet de configuration facultatif qui encapsule les informations nécessaires pour soumettre une exécution d’entraînement dans une expérience.

Valeur par défaut: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

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 »

Valeur par défaut: None
inputs
list[InputPortBinding ou DataReference ou PortDataReference ou PipelineData ou <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> ou DatasetConsumptionConfig]

Liste des liaisons de port d’entrée.

Valeur par défaut: None
outputs

Liste des liaisons de port de sortie.

Valeur par défaut: None
params

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

Valeur par défaut: None
source_directory
str

Dossier qui contient les scripts, l’environnement Conda et les autres ressources utilisées lors de cette étape.

Valeur par défaut: None
allow_reuse

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.

Valeur par défaut: True
version
str

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

Valeur par défaut: None
command
Obligatoire
list ou str

Commande à exécuter ou chemin du fichier exécutable/du script relatif à source_directory. Cet élément est obligatoire, sauf s’il est fourni avec runconfig. Il peut être spécifié avec des arguments de chaîne dans une chaîne unique ou avec entrée/sortie/PipelineParameter dans une liste.

name
Obligatoire
str

Nom de l'étape. S’il n’est pas spécifié, le premier mot de la command est utilisé.

compute_target
Obligatoire

Cible de calcul à utiliser. Si elle n’est pas spécifiée, la cible de runconfig est 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
Obligatoire

Objet de configuration facultatif qui encapsule les informations nécessaires pour soumettre une exécution d’entraînement dans une expérience.

runconfig_pipeline_params
Obligatoire
<xref:<xref:{str: PipelineParameter}>>

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 »

inputs
Obligatoire
list[InputPortBinding ou DataReference ou PortDataReference ou PipelineData ou <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> ou DatasetConsumptionConfig]

Liste des liaisons de port d’entrée.

outputs
Obligatoire

Liste des liaisons de port de sortie.

params
Obligatoire

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

source_directory
Obligatoire
str

Dossier qui contient les scripts, l’environnement Conda et les autres ressources utilisées lors de cette étape.

allow_reuse
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
Obligatoire
str

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

Remarques

Un CommandStep est une étape intégrée simple pour exécuter une commande sur la cible de calcul donnée. Il utilise une commande en tant que paramètre ou d’autres paramètres tels que runconfig. Il utilise également d’autres paramètres facultatifs tels que la cible de calcul, les entrées et les sorties. Vous devez utiliser ScriptRunConfig ou RunConfiguration pour spécifier les conditions requises de CommandStep, comme une image Docker personnalisée.

La bonne pratique pour utiliser CommandStep consiste à se servir d’un dossier distinct pour l’exécutable ou le script afin d’exécuter 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é.

Pour les commandes connues du système, source_directory n’est pas obligatoire, mais vous pouvez malgré tout le fournir avec les fichiers dépendants associés à l’étape.

L’exemple de code suivant illustre l’utilisation d’un CommandStep dans un scénario d’entraînement de machine learning. Pour répertorier les fichiers dans Linux :


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

Pour exécuter un script Python :


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

Pour exécuter un script Python via ScriptRunConfig :


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

Pour plus d’informations sur la création de pipelines en général, consultez https://aka.ms/pl-first-pipeline.

Méthodes

create_node

Créez un nœud pour CommandStep 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 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 CommandStep 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 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

Nom Description
graph
Obligatoire

Objet graphique auquel ajouter le nœud.

default_datastore
Obligatoire

Magasin de données par défaut.

context
Obligatoire
<xref:_GraphContext>

Contexte du graphique.

Retours

Type Description

Nœud créé.