Usar parâmetros num trabalho de comando

Concluído

Podes aumentar a flexibilidade dos teus scripts usando parâmetros. Imagina que criaste um script que treina um modelo de aprendizagem automática. Podes usar o mesmo script para treinar um modelo em diferentes conjuntos de dados, ou usando vários valores de hiperparâmetro.

Trabalhar com argumentos de script

Para usar parâmetros num script, deve usar uma biblioteca como argparse ler argumentos passados para o script e atribuí-los a variáveis.

Por exemplo, o script seguinte lê um argumento chamado training_data, que especifica o caminho para os dados de treino.

# 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 que esperes devem estar definidos no script. No script, podes especificar que tipo de valor esperas para cada parâmetro e se queres definir um valor padrão.

Passar argumentos a um script

Para passar valores de parâmetros a um script, é necessário fornecer o valor do argumento no comando.

Por exemplo, se passasse um valor de parâmetro ao executar um script num terminal, usaria o seguinte comando:

python train.py --training_data diabetes.csv

No exemplo, diabetes.csv é um ficheiro local. Em alternativa, pode especificar o caminho para um ativo de dados criado no espaço de trabalho Azure Machine Learning.

De forma semelhante, quando queres passar um valor de parâmetro a um script que queres executar como um trabalho de comando, especificas 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 submeteres um trabalho de comando, podes rever os parâmetros de entrada e saída que especificaste.