Usar parâmetros em um trabalho de comando

Concluído

Você pode aumentar a flexibilidade de seus scripts usando parâmetros. Por exemplo, você pode ter criado um script que treina um modelo de aprendizado de máquina. Você pode usar o mesmo script para treinar um modelo em conjuntos de dados diferentes ou usando vários valores de hiperparâmetro.

Trabalhando com argumentos de script

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

Por exemplo, o script a seguir lê um argumento chamado 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. No script, você pode especificar o tipo de valor esperado para cada parâmetro e se deseja definir um valor padrão.

Passando argumentos para um script

Para passar valores de parâmetro para um script, você precisa fornecer o valor do argumento no comando.

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

python train.py --training_data diabetes.csv

No exemplo, diabetes.csv é um arquivo local. Como alternativa, você pode especificar o caminho para um ativo de dados criado no espaço de trabalho do Azure Machine Learning.

Da mesma forma, quando quiser passar um valor de parâmetro para um script que deseja executar 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, você pode revisar os parâmetros de entrada e saída especificados.