Usare i parametri in un processo di comando
È possibile aumentare la flessibilità degli script usando i parametri. Si supponga di aver creato uno script che esegue il training di un modello di Machine Learning. È possibile usare lo stesso script per eseguire il training di un modello in set di dati diversi o usando vari valori degli iperparametri.
Uso degli argomenti di script
Per usare i parametri in uno script, è necessario usare una libreria, argparse ad esempio per leggere gli argomenti passati allo script e assegnarli alle variabili.
Ad esempio, lo script seguente legge un argomento denominato training_data, che specifica il percorso dei dati di training.
# 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)
Tutti i parametri previsti devono essere definiti nello script. Nello script è possibile specificare il tipo di valore previsto per ogni parametro e se si vuole impostare un valore predefinito.
Passaggio di argomenti a uno script
Per passare i valori dei parametri a uno script, è necessario specificare il valore dell'argomento nel comando .
Ad esempio, se si passa un valore di parametro quando si esegue uno script in un terminale, usare il comando seguente:
python train.py --training_data diabetes.csv
Nell'esempio è diabetes.csv un file locale. In alternativa, è possibile specificare il percorso di un asset di dati creato nell'area di lavoro di Azure Machine Learning.
Analogamente, quando si vuole passare un valore di parametro a uno script che si vuole eseguire come processo di comando, specificare i valori nel comando:
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"
)
Dopo aver inviato un processo di comando, è possibile esaminare i parametri di input e output specificati.