Utilisation de joblib pour la compression de fichiers lors de l'enregistrement
joblib est un module Python qui permet de sérialiser des objets de manière plus efficace que pickle, surtout pour des objets volumineux comme les modèles de machine learning ou les tableaux NumPy. Il offre en plus la possibilité de compresser les fichiers sérialisés, ce qui permet de réduire l’espace disque nécessaire pour les stocker.
Fonctions :
-
joblib.dump()
La fonction joblib.dump() permet de sérialiser un objet Python, tout en offrant une option pour la compression du fichier généré. Cela peut être utile pour réduire la taille des fichiers de modèles ou d'objets volumineux, tout en conservant la possibilité de les recharger plus tard.
Importation :
import joblib
Attributs :
Paramètre Type Description Valeur par défaut obj
object L'objet Python à sérialiser et à compresser (peut être un modèle, une liste, un dictionnaire, etc.). None
filename
str Le nom du fichier dans lequel l'objet sera enregistré (extension .joblib
).None
compress
int, optionnel (Optionnel) Le niveau de compression à appliquer. Une valeur entre 0 (pas de compression) et 9 (compression maximale). Par défaut, la compression est de niveau 3. 3
Exemple de code :
import joblib # Création d'un objet, ici un modèle de régression linéaire pour l'exemple from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit([[1], [2], [3]], [1, 2, 3]) # Sérialisation et compression de l'objet 'model' joblib.dump(model, 'model_compressed.joblib', compress=3)
Explication du code :
- Nous utilisons le module
joblib
pour sérialiser l'objetmodel
, qui est un modèle de régression linéaire dans cet exemple. - L'objet est sauvegardé sous le nom de fichier
model_compressed.joblib
avec une compression de niveau 3, ce qui permet de réduire la taille du fichier tout en conservant les données du modèle.
- Nous utilisons le module
-
joblib.load()
La fonction joblib.load() permet de charger un objet sérialisé et compressé précédemment avec joblib.dump(). Elle prend en charge la décompression automatique lors de la lecture du fichier.
Importation :
import joblib
Attributs :
Paramètre Type Description Valeur par défaut filename
str Le nom du fichier contenant l'objet sérialisé à charger. None
Exemple de code :
import joblib # Chargement de l'objet 'model' précédemment sérialisé et compressé loaded_model = joblib.load('model_compressed.joblib') # Utilisation du modèle chargé print(loaded_model.predict([[4]])) # Affiche une prédiction basée sur le modèle chargé
Explication du code :
- Nous utilisons
joblib.load()
pour charger l'objet sérialisé et compressé dans le fichiermodel_compressed.joblib
. - L'objet chargé, ici un modèle de régression linéaire, peut être utilisé directement pour faire des prédictions.
Avantages de l'utilisation de
joblib
pour la compression- Compression efficace :
joblib
est optimisé pour sérialiser et compresser des objets volumineux, comme des modèles de machine learning, tout en offrant un bon compromis entre taille du fichier et vitesse de compression. - Chargement rapide : Lors du chargement d'objets compressés,
joblib
gère automatiquement la décompression, ce qui facilite l'utilisation des fichiers compressés tout en maintenant des performances élevées.
- Nous utilisons