Converter um notebook em um script

Concluído

Depois de usar notebooks para experimentação e desenvolvimento, converta um notebook em um script. Alternativamente, você pode optar por ignorar o uso de notebooks e trabalhar apenas com scripts. De qualquer forma, há algumas recomendações ao criar scripts para preparar seu código para produção.

Os scripts são ideais para testes e automação no ambiente de produção. Para criar um script pronto para produção, o seguinte é necessário:

  • Remover códigos não essenciais.
  • Refatorar o código em funções.
  • Testar o script no terminal.

Remover todo o código não essencial

O principal benefício do uso de notebooks é a possibilidade de explorar os dados rapidamente. Por exemplo, é possível usar as instruções print() e df.describe() para explorar dados e variáveis. Ao criar um script a ser usado para automação, evite incluir códigos escritos para fins exploratórios.

A primeira coisa que deve ser feita para converter o código em código de produção é remover as partes não essenciais. Especialmente ao executar o código regularmente, evite a execução de qualquer parte não essencial a fim de reduzir o custo e o tempo de computação.

Refatorar o código em funções

Ao usar códigos em processos de negócios, elabore-os a fim de facilitar a leitura, para que a manutenção possa ser feita por qualquer pessoa. Uma abordagem comum para facilitar a leitura e o teste do código é usar funções.

Por exemplo, você deve ter utilizado o seguinte código de exemplo em um notebook para ler e dividir os dados:

# read and visualize the data
print("Reading data...")
df = pd.read_csv('diabetes.csv')
df.head()

# split data
print("Splitting data...")
X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness','SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)

Como as funções também permitem testar partes do seu código, é preferível criar várias funções menores, ao invés de uma função grande. Se uma parte do código precisar ser testada, faça-o somente em um pequeno fragmento a fim de evitar a execução de mais partes do que o necessário.

É possível refatorar o código mostrado no exemplo em duas funções:

  • Ler os dados
  • Dividir os dados

Um exemplo de código refatorado pode ser o seguinte:

def main(csv_file):
    # read data
    df = get_data(csv_file)

    # split data
    X_train, X_test, y_train, y_test = split_data(df)

# function that reads the data
def get_data(path):
    df = pd.read_csv(path)
    
    return df

# function that splits the data
def split_data(df):
    X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness',
    'SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)

    return X_train, X_test, y_train, y_test

Observação

Observe que códigos não essenciais também foram omitidos no código refatorado. É possível optar por usar instruções print no código de produção a fim de revisar a saída do script para garantir que todo o código seja executado conforme o esperado. No entanto, se você sabe que não revisará a saída de um script em um terminal, é melhor remover os códigos desnecessários.

Testar o script

Antes de usar scripts em ambientes de produção, por exemplo, integrando-os a pipelines de automação, teste se eles funcionam conforme o esperado.

Uma maneira simples de testar o script é executá-lo em um terminal. No workspace do Azure Machine Learning, é possível executar rapidamente um script no terminal da instância de computação.

É possível optar por salvar e executar um script no terminal ao abri-lo na página Notebooks do Estúdio do Azure Machine Learning.

Como alternativa, é possível navegar diretamente para o terminal da instância de computação. Acesse a página Computação e selecione o Terminal da instância de computação que você deseja usar. É possível usar o seguinte comando para executar um script Python chamado train.py:

python train.py

As saídas de instruções print serão mostradas no terminal. Quaisquer erros possíveis também aparecerão no terminal.