Verwenden von Parametern in einem Befehlsauftrag

Abgeschlossen

Sie können die Flexibilität Ihrer Skripts mithilfe von Parametern erhöhen. Stellen Sie sich vor, Sie haben ein Skript erstellt, das ein Machine Learning-Modell trainiert. Sie können dasselbe Skript verwenden, um ein Modell für verschiedene Datasets zu trainieren oder verschiedene Hyperparameterwerte zu verwenden.

Arbeiten mit Skriptargumenten

Um Parameter in einem Skript zu verwenden, müssen Sie eine Bibliothek wie argparse verwenden, um Argumente, die an das Skript übergeben werden, zu lesen und sie Variablen zuzuweisen.

Das folgende Skript liest beispielsweise ein Argument namens training_data, das den Pfad zu den Schulungsdaten angibt.

# 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)

Alle parameter, die Sie erwarten, sollten im Skript definiert werden. Im Skript können Sie angeben, welche Art von Wert Sie für jeden Parameter erwarten und ob Sie einen Standardwert festlegen möchten.

Übergeben von Argumenten an ein Skript

Um Parameterwerte an ein Skript zu übergeben, müssen Sie den Argumentwert im Befehl angeben.

Wenn Sie beispielsweise beim Ausführen eines Skripts in einem Terminal einen Parameterwert übergeben würden, verwenden Sie den folgenden Befehl:

python train.py --training_data diabetes.csv

Im Beispiel diabetes.csv handelt es sich um eine lokale Datei. Alternativ können Sie den Pfad zu einer Datenressource angeben, die im Azure Machine Learning-Arbeitsbereich erstellt wurde.

Wenn Sie einen Parameterwert an ein Skript übergeben möchten, das Sie als Befehlsauftrag ausführen möchten, geben Sie die Werte im Befehl an:

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"
    )

Nachdem Sie einen Befehlsauftrag übermittelt haben, können Sie die von Ihnen angegebenen Eingabe- und Ausgabeparameter überprüfen.