Usar parâmetros em um trabalho de comando
É possível aumentar a flexibilidade de scripts usando parâmetros. Por exemplo, é possível que você tenha criado um script que treina um modelo de machine learning. É possível usar o mesmo script para treinar um modelo em diferentes conjuntos de dados ou usar diversos valores de hiperparâmetros.
Como trabalhar com argumentos de script
Para usar parâmetros em um script, use uma biblioteca como argparse
a fim de ler os argumentos transmitidos ao script e atribuí-los a variáveis.
Por exemplo, o script a seguir lê o argumento training_data
, que especifica o caminho para os dados de treinamento.
# 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)
Quaisquer parâmetros esperados devem ser definidos no script. Nele, é possível especificar que tipo de valor você espera para cada parâmetro e se deseja definir um valor padrão.
Transmitir argumentos para um script
Para transmitir valores de parâmetro para um script, forneça o valor do argumento no comando.
Por exemplo, para transmitir um valor de parâmetro ao executar um script em um terminal, use o seguinte comando:
python train.py --training_data diabetes.csv
No exemplo, diabetes.csv
é um arquivo local. Como alternativa, é possível especificar o caminho para um ativo de dados criado no workspace do Azure Machine Learning.
Da mesma forma, a fim de transmitir um valor de parâmetro para um script que será executado como um trabalho de comando, especifique os valores no 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"
)
Depois de enviar um trabalho de comando, é possível revisar os parâmetros de entrada e saída especificados.