Utiliser des paramètres dans un travail de commande

Effectué

Vous pouvez augmenter la flexibilité de vos scripts à l’aide de paramètres. Imaginez que vous avez créé un script qui entraîne un modèle Machine Learning. Vous pouvez utiliser le même script pour entraîner un modèle sur différents jeux de données ou à l’aide de différentes valeurs d’hyperparamètre.

Utilisation des arguments de script

Pour utiliser des paramètres dans un script, vous devez utiliser une bibliothèque telle que argparse pour lire les arguments passés au script et les affecter à des variables.

Par exemple, le script suivant lit un argument nommé training_data, qui spécifie le chemin d’accès aux données d’entraînement.

# import libraries
import argparse
import pandas as pd
from sklearn.linear_model import LogisticRegression

def main(args):
    # read data
    df = get_data(args.training_data)

# function that reads the data
def get_data(path):
    df = pd.read_csv(path)
    
    return df

def parse_args():
    # setup arg parser
    parser = argparse.ArgumentParser()

    # add arguments
    parser.add_argument("--training_data", dest='training_data',
                        type=str)

    # parse args
    args = parser.parse_args()

    # return args
    return args

# run script
if __name__ == "__main__":

    # parse args
    args = parse_args()

    # run main function
    main(args)

Tous les paramètres attendus doivent être définis dans le script. Dans le script, vous pouvez spécifier le type de valeur attendu pour chaque paramètre et indiquer si vous souhaitez définir une valeur par défaut.

Passage d’arguments à un script

Pour passer des valeurs de paramètre à un script, vous devez fournir la valeur d’argument dans la commande.

Par exemple, si vous transmettez une valeur de paramètre lors de l’exécution d’un script dans un terminal, vous utilisez la commande suivante :

python train.py --training_data diabetes.csv

Dans l’exemple, diabetes.csv il s’agit d’un fichier local. Vous pouvez également spécifier le chemin d’accès à une ressource de données créée dans l’espace de travail Azure Machine Learning.

De même, lorsque vous souhaitez passer une valeur de paramètre à un script que vous souhaitez exécuter en tant que travail de commande, vous spécifiez les valeurs dans la commande :

from azure.ai.ml import command

# configure job
job = command(
    code="./src",
    command="python train.py --training_data diabetes.csv",
    environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest",
    compute="aml-cluster",
    display_name="train-model",
    experiment_name="train-classification-model"
    )

Après avoir envoyé un travail de commande, vous pouvez passer en revue les paramètres d’entrée et de sortie que vous avez spécifiés.