Enregistrement d’objets Python
La sérialisation d’objets en Python consiste à convertir des objets en un format qui peut être facilement stocké sur disque ou transmis à travers un réseau. Cela permet de sauvegarder des objets complexes, comme des modèles de machine learning ou des résultats d’analyse, et de les recharger ultérieurement. Dans cette section, nous allons explorer deux des bibliothèques les plus courantes pour la sérialisation : pickle et joblib.
Ce que vous allez apprendre dans cette section :
-
Introduction à la sérialisation d’objets Python
La sérialisation est le processus de conversion d’un objet Python en une représentation binaire ou textuelle qui peut être enregistrée ou transmise. Vous apprendrez pourquoi et comment sérialiser des objets Python, en particulier lorsqu’il s’agit de sauvegarder des modèles de machine learning ou de partager des objets complexes entre différents environnements Python. -
Enregistrer un objet avec
pickle
Vous découvrirez comment utiliser la bibliothèquepickle
pour sérialiser et enregistrer des objets Python sur disque. La méthodepickle.dump()
permet d’écrire l’objet dans un fichier binaire. -
Charger un objet avec
pickle
Une fois l’objet enregistré, vous apprendrez à le recharger avecpickle.load()
, permettant de restaurer l’objet en mémoire pour l’utiliser à nouveau. -
Protéger contre l’exécution de code malveillant lors de l’utilisation de
pickle
pickle
peut exécuter du code malveillant lorsqu’il charge des objets, car il désérialise des objets en appelant des méthodes spécifiées dans le pickle. Vous apprendrez à éviter ce risque en ne chargeant que des objets provenant de sources sûres et en utilisant des alternatives plus sécurisées, commepickle.load()
avec des restrictions. -
Utiliser
joblib
pour la sérialisation efficace de grands objetsjoblib
est une bibliothèque qui permet de sérialiser efficacement des objets volumineux, comme des modèles de machine learning. Contrairement àpickle
,joblib
est optimisé pour la sérialisation de grands tableaux NumPy et de modèles de machine learning, ce qui en fait un choix privilégié dans ce contexte. -
Charger un objet avec
joblib
Vous apprendrez à recharger des objets sérialisés avecjoblib.load()
. Cette méthode est similaire à celle depickle.load()
, mais elle est plus adaptée aux objets volumineux. -
Comparaison entre
pickle
etjoblib
Bien quepickle
soit plus général,joblib
est spécifiquement conçu pour la sérialisation de gros objets et offre des fonctionnalités de compression et de parallélisation. Vous comprendrez les différences entre ces deux outils et dans quels cas il est préférable d’utiliser l’un ou l’autre. -
Sérialisation d’objets personnalisés avec
pickle
Vous apprendrez à sérialiser des objets Python personnalisés (comme des classes définies par l’utilisateur) avecpickle
, en s’assurant que tous les attributs et méthodes de l’objet sont correctement enregistrés et restaurés. -
Utilisation de
joblib
pour la compression de fichiers lors de l’enregistrementjoblib
permet également de compresser les fichiers sérialisés pour réduire l’espace de stockage nécessaire. Vous apprendrez à utiliser l’optioncompress
lors de l’enregistrement avecjoblib
pour économiser de l’espace disque. -
Enregistrement et chargement de modèles de machine learning avec
joblib
Pour les modèles de machine learning,joblib
est souvent préféré en raison de son efficacité avec les grands objets comme les modèles scikit-learn. Vous apprendrez comment enregistrer et recharger des modèles de machine learning avecjoblib
, ce qui vous permettra de partager vos modèles ou de les utiliser à une autre étape de votre pipeline.
💡 Sérialiser et stocker vos objets Python avec pickle
ou joblib
vous permet de gagner du temps en évitant de recalculer ou de reconstruire vos objets et modèles. Cela améliore l’efficacité de vos workflows de données et de machine learning.
Sous-sections du Chapitre
- Introduction à la sérialisation d’objets Python
- Enregistrer un objet avec pickle
- Charger un objet avec pickle
- Protéger contre l’exécution de code malveillant lors de l’utilisation de pickle
- Utiliser joblib pour la sérialisation efficace de grands objets
- Charger un objet avec joblib
- Comparaison entre pickle et joblib
- Sérialisation d’objets personnalisés avec pickle
- Utilisation de joblib pour la compression de fichiers lors de l’enregistrement
- Enregistrement et chargement de modèles de machine learning avec joblib