Uso de parámetros en un trabajo de comando
Puede aumentar la flexibilidad de los scripts mediante el uso de parámetros. Imagine que ha creado un script que entrena un modelo de aprendizaje automático. Puede usar el mismo script para entrenar un modelo en distintos conjuntos de datos o usar varios valores de hiperparámetros.
Trabajar con argumentos de script
Para usar parámetros en un script, debe usar una biblioteca como argparse para leer argumentos pasados al script y asignarlos a variables.
Por ejemplo, el siguiente script lee un argumento denominado training_data, que especifica la ruta de acceso a los datos de entrenamiento.
# 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)
Los parámetros esperados deben definirse en el script. En el script, puede especificar qué tipo de valor espera para cada parámetro y si desea establecer un valor predeterminado.
Pasar argumentos a un script
Para pasar valores de parámetro a un script, debe proporcionar el valor del argumento en el comando .
Por ejemplo, si pasara un valor de parámetro al ejecutar un script en un terminal, usaría el siguiente comando:
python train.py --training_data diabetes.csv
En el ejemplo, diabetes.csv es un archivo local. Como alternativa, puede especificar la ruta de acceso a un recurso de datos creado en el área de trabajo de Azure Machine Learning.
Del mismo modo, si desea pasar un valor de parámetro a un script que desea ejecutar como un trabajo de comando, especifique los valores en el comando:
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"
)
Después de enviar un trabajo de comando, puede revisar los parámetros de entrada y salida especificados.