Använda parametrar i ett kommandojobb

Slutförd

Du kan öka flexibiliteten för dina skript med hjälp av parametrar. Anta att du har skapat ett skript som tränar en maskininlärningsmodell. Du kan använda samma skript för att träna en modell på olika datauppsättningar eller med hjälp av olika hyperparametervärden.

Arbeta med skriptargument

Om du vill använda parametrar i ett skript måste du använda ett bibliotek som att läsa argument som argparse skickas till skriptet och tilldela dem till variabler.

Följande skript läser till exempel ett argument med namnet training_data, som anger sökvägen till träningsdata.

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

Alla parametrar som du förväntar dig bör definieras i skriptet. I skriptet kan du ange vilken typ av värde du förväntar dig för varje parameter och om du vill ange ett standardvärde.

Skicka argument till ett skript

Om du vill skicka parametervärden till ett skript måste du ange argumentvärdet i kommandot .

Om du till exempel skickar ett parametervärde när du kör ett skript i en terminal använder du följande kommando:

python train.py --training_data diabetes.csv

I exemplet diabetes.csv är en lokal fil. Du kan också ange sökvägen till en datatillgång som skapats på Azure Machine Learning-arbetsytan.

På samma sätt anger du värdena i kommandot när du vill skicka ett parametervärde till ett skript som du vill köra som ett kommandojobb:

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

När du har skickat ett kommandojobb kan du granska de indata- och utdataparametrar som du har angett.