Convertir un notebook en script
Lorsque vous avez utilisé des notebooks pour l’expérimentation et le développement, vous devez d’abord convertir un notebook en script. Vous pouvez également choisir d’ignorer l’utilisation de notebooks et de travailler uniquement avec des scripts. Dans les deux cas, il existe des recommandations lors de la création de scripts pour disposer d’un code prêt pour la production.
Les scripts sont idéaux pour le test et l’automatisation dans votre environnement de production. Pour créer un script prêt pour la production, vous devez :
- Supprimez le code non essentiel.
- Refactorisez votre code en fonctions.
- Testez votre script dans le terminal.
Supprimer tout le code non essentiel
L’avantage principal de l’utilisation de notebooks est de pouvoir explorer rapidement vos données. Par exemple, vous pouvez utiliser les instructions print() et df.describe() pour explorer vos données et variables. Lorsque vous créez un script utilisé pour l’automatisation, vous souhaitez éviter d’inclure du code écrit à des fins exploratoires.
La première chose que vous devez donc faire pour convertir votre code en code de production consiste à supprimer le code nonessential. En particulier lorsque vous exécutez régulièrement le code, vous souhaitez éviter d’exécuter tout élément non essentiel pour réduire les coûts et le temps de calcul.
Refactoriser votre code en fonctions
Lorsque vous utilisez du code dans des processus métier, vous souhaitez que le code soit facile à lire afin que tout le monde puisse le conserver. Une approche courante pour faciliter la lecture et le test du code consiste à utiliser des fonctions.
Par exemple, imaginez que vous avez utilisé l’exemple de code suivant dans un notebook pour lire et fractionner les données :
# 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)
Comme les fonctions vous permettent également de tester des parties de votre code, vous préférez peut-être créer plusieurs fonctions plus petites, plutôt qu’une fonction volumineuse. Si vous souhaitez tester une partie de votre code, vous pouvez choisir de tester uniquement une petite partie et d’éviter d’exécuter plus de code que nécessaire.
Vous pouvez refactoriser le code présenté dans l’exemple en deux fonctions :
- Lire les données
- Fractionner les données
Voici un exemple de code refactorisé :
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
Note
Vous avez peut-être remarqué que le code nonessential a également été omis dans le code refactorisé. Vous pouvez choisir d’utiliser print des instructions dans le code de production si vous passez en revue la sortie du script et que vous souhaitez vous assurer que tout le code s’est exécuté comme prévu. Toutefois, lorsque vous savez que vous ne allez pas passer en revue la sortie d’un script dans un terminal, il est préférable de supprimer tout code qui n’a aucun but.
Tester votre script
Avant d’utiliser des scripts dans des environnements de production, par exemple en les intégrant à des pipelines d’automatisation, vous souhaitez tester si les scripts fonctionnent comme prévu.
Un moyen simple de tester votre script consiste à exécuter le script dans un terminal. Dans l’espace de travail Azure Machine Learning, vous pouvez rapidement exécuter un script dans le terminal de l’instance de calcul.
Lorsque vous ouvrez un script dans la page Notebooks d’Azure Machine Learning Studio, vous pouvez choisir d’enregistrer et d’exécuter le script dans le terminal.
Vous pouvez également accéder directement au terminal de l’instance de calcul. Accédez à la page Calcul et sélectionnez le terminal de l’instance de calcul que vous souhaitez utiliser. Vous pouvez utiliser la commande suivante pour exécuter un script Python nommé train.py:
python train.py
Les sorties des instructions print s’affichent dans le terminal. Toutes les erreurs possibles apparaissent également dans le terminal.