Converter um notebook em um script

Concluído

Quando você usou blocos de anotações para experimentação e desenvolvimento, primeiro você precisa converter um notebook em um script. Como alternativa, você pode optar por ignorar o uso de notebooks e trabalhar somente com scripts. De qualquer forma, há algumas recomendações ao criar scripts para ter código pronto para produção.

Os scripts são ideais para teste e automação em seu ambiente de produção. Para criar um script pronto para produção, você precisa:

  • Remova o código não essencial.
  • Refatore seu código em funções.
  • Teste seu script no terminal.

Remover todo o código não essencial

O principal benefício do uso de notebooks é poder explorar rapidamente seus dados. Por exemplo, você pode usar print() e df.describe() instruções para explorar seus dados e variáveis. Ao criar um script usado para automação, você deseja evitar a inclusão de código escrito para fins exploratórios.

Portanto, a primeira coisa que você precisa fazer para converter seu código em código de produção é remover o código não essencial. Especialmente quando você executa o código regularmente, você deseja evitar a execução de qualquer coisa não essencial para reduzir o custo e o tempo de computação.

Refatorar seu código em funções

Ao usar código em processos empresariais, você deseja que o código seja fácil de ler para que qualquer pessoa possa mantê-lo. Uma abordagem comum para facilitar a leitura e o teste do código é usar funções.

Por exemplo, imagine que você usou 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 que você teste partes do código, talvez você prefira criar várias funções menores, em vez de uma função grande. Se você quiser testar uma parte do código, poderá optar por testar apenas uma pequena parte e evitar a execução de mais código do que o necessário.

Você pode 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:

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

Talvez você tenha notado que o código não essencial também foi omitido no código refatorado. Você pode optar por usar instruções print no código de produção se revisar a saída do script e quiser garantir que todo o código tenha sido executado conforme o esperado. No entanto, quando você sabe que não vai examinar a saída de um script em um terminal, é melhor remover qualquer código que não tenha nenhuma finalidade.

Testar o script

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

Uma maneira simples de testar seu script é executar o script em um terminal. No workspace do Azure Machine Learning, você pode executar rapidamente um script no terminal da instância de computação.

Ao abrir um script na página Notebooks do estúdio do Azure Machine Learning, você pode optar por salvar e executar o script no terminal.

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

python train.py

As saídas dos print comandos são mostradas no terminal. Todos os erros possíveis também aparecem no terminal.