Uso de parámetros en un trabajo de comando
Puede aumentar la flexibilidad de los scripts mediante parámetros. Por ejemplo, puede que haya creado un script que entrene un modelo de aprendizaje automático. Puede usar el mismo script para entrenar un modelo en diferentes conjuntos de datos o usar varios valores de hiperparámetros.
Uso de argumentos de script
Para usar parámetros en un script, debe usar una biblioteca como argparse
para leer los argumentos que se pasan 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.
Paso de 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 comando siguiente:
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, cuando quiera pasar un valor de parámetro a un script que desea ejecutar como un trabajo de comando, especificará 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.