Używanie parametrów w zadaniu polecenia

Ukończone

Elastyczność skryptów można zwiększyć przy użyciu parametrów. Załóżmy, że utworzono skrypt, który szkoli model uczenia maszynowego. Możesz użyć tego samego skryptu, aby wytrenować model na różnych zestawach danych lub użyć różnych wartości hiperparametrów.

Praca z argumentami skryptu

Aby użyć parametrów w skrypcie, należy użyć biblioteki, takiej jak argparse, w celu odczytania argumentów przekazywanych do skryptu i przypisania ich do zmiennych.

Na przykład poniższy skrypt odczytuje argumenty o nazwie training_data, która określa ścieżkę do danych treningowych.

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

Wszelkie oczekiwane parametry powinny być zdefiniowane w skrypcie. W skryscie możesz określić typ oczekiwanej wartości dla każdego parametru i określić, czy chcesz ustawić wartość domyślną.

Przekazywanie argumentów do skryptu

Aby przekazać wartości parametrów do skryptu, należy podać wartość argumentu w poleceniu .

Jeśli na przykład przekażesz wartość parametru podczas uruchamiania skryptu w terminalu, użyj następującego polecenia:

python train.py --training_data diabetes.csv

W tym przykładzie diabetes.csv jest to plik lokalny. Alternatywnie można określić ścieżkę do zasobu danych utworzonego w obszarze roboczym usługi Azure Machine Learning.

Podobnie, jeśli chcesz przekazać wartość parametru do skryptu, który ma zostać uruchomiony jako zadanie polecenia, należy określić wartości w poleceniu:

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

Po przesłaniu zadania polecenia możesz przejrzeć określone parametry wejściowe i wyjściowe.