Convertir un notebook en script
Si 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 de ne pas utiliser de notebooks et de travailler uniquement avec des scripts. Dans les deux cas, pour préparer votre code pour la production, vous devez appliquer certaines recommandations lors de la création de scripts.
Les scripts conviennent parfaitement aux tests et à l’automatisation dans votre environnement de production. Pour créer un script prêt pour la production, vous devez :
- supprimer le code non essentiel ;
- refactoriser votre code en fonctions ;
- tester votre script dans le terminal.
Supprimer tout le code non essentiel
Le principal avantage de l’utilisation de notebooks est de pouvoir explorer rapidement des données. Par exemple, vous pouvez utiliser les instructions print() et df.describe() pour explorer vos données et vos variables. Quand vous créez un script qui sera utilisé pour l’automatisation, évitez 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 est de supprimer le code non essentiel. En particulier, quand vous exécutez le code régulièrement, omettez tout ce qui n’est pas essentiel pour réduire les coûts et le temps de calcul.
Refactoriser le code en fonctions
Quand vous utilisez du code dans des processus métier, le code doit être facile à lire pour que tout le monde puisse le gérer. Une approche courante pour rendre le code plus facile à lire et à tester consiste à utiliser des fonctions.
Par exemple, vous avez peut-être 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)
Dans la mesure où les fonctions permettent également de tester des parties de votre code, vous pouvez créer plusieurs fonctions plus petites plutôt qu’une grande fonction. Si vous souhaitez tester une partie de votre code, vous pouvez choisir de tester uniquement une petite partie en veillant à ne pas 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
Remarque
Vous avez peut-être remarqué que le code non essentiel a également été omis dans le code refactorisé. Vous pouvez utiliser des instructions print dans le code de production pour passer en revue la sortie du script et vérifier que tout le code s’est exécuté comme prévu. Toutefois, si vous savez que vous n’examinerez pas la sortie d’un script dans un terminal, il est préférable de supprimer tout code inutile.
Tester votre script
Avant d’utiliser des scripts dans des environnements de production, par exemple en les intégrant à des pipelines d’automatisation, vous devez tester si les scripts fonctionnent comme prévu.
Un moyen simple de tester votre script consiste à l’exécuter dans un terminal. Dans l’espace de travail Azure Machine Learning, vous pouvez exécuter rapidement un script dans le terminal de l’instance de calcul.
Quand 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 aussi 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 sont affichées dans le terminal. Toutes les erreurs possibles apparaissent également dans le terminal.