Använda parametrar i ett kommandojobb
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.