Parameters gebruiken in een opdrachttaak
U kunt de flexibiliteit van uw scripts vergroten met behulp van parameters. U hebt bijvoorbeeld een script gemaakt waarmee een machine learning-model wordt getraind. U kunt hetzelfde script gebruiken om een model te trainen op verschillende gegevenssets of om verschillende hyperparameterwaarden te gebruiken.
Werken met scriptargumenten
Als u parameters in een script wilt gebruiken, moet u een bibliotheek gebruiken, zoals argparse
het lezen van argumenten die aan het script zijn doorgegeven en deze toewijzen aan variabelen.
Met het volgende script worden bijvoorbeeld argumenten met de naam training_data
gelezen, waarmee het pad naar de trainingsgegevens wordt opgegeven.
# 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 parameters die u verwacht, moeten worden gedefinieerd in het script. In het script kunt u opgeven welk type waarde u verwacht voor elke parameter en of u een standaardwaarde wilt instellen.
Argumenten doorgeven aan een script
Als u parameterwaarden wilt doorgeven aan een script, moet u de argumentwaarde in de opdracht opgeven.
Als u bijvoorbeeld een parameterwaarde doorgeeft bij het uitvoeren van een script in een terminal, gebruikt u de volgende opdracht:
python train.py --training_data diabetes.csv
In het voorbeeld diabetes.csv
is een lokaal bestand. U kunt ook het pad opgeven naar een gegevensasset die is gemaakt in de Azure Machine Learning-werkruimte.
Als u een parameterwaarde wilt doorgeven aan een script dat u wilt uitvoeren als een opdrachttaak, geeft u de waarden in de opdracht op:
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"
)
Nadat u een opdrachttaak hebt verzonden, kunt u de opgegeven invoer- en uitvoerparameters bekijken.