Utiliser des paramètres dans un travail de commande
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.