Hintergrund: Ich fange gerade erst mit Scikit-Learn an und lese am Ende der Seite über Joblib im Vergleich zu Pickle .
Es kann interessanter sein, Joblibs Ersatz für pickle (joblib.dump & joblib.load) zu verwenden, der für Big Data effizienter ist, aber nur auf der Festplatte und nicht auf einer Zeichenfolge pickle
Ich habe diese Fragen und Antworten zu Pickle, den häufigsten Anwendungsfällen für Pickle in Python gelesen und mich gefragt, ob die Community hier die Unterschiede zwischen Joblib und Pickle teilen kann. Wann sollte man einen über den anderen verwenden?
python
pickle
scikit-learn
msunbot
quelle
quelle
Joblib
überPickle
? Welche NachteileJoblib
sollten wir berücksichtigen? Ich habe gerade davon gehörtJoblib
und es klingt für mich interessant.Vielen Dank an Gunjan, der uns dieses Skript gegeben hat! Ich habe es für Python3-Ergebnisse geändert
#comapare pickle loaders from time import time import pickle import os import _pickle as cPickle from sklearn.externals import joblib file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'database.clf') t1 = time() lis = [] d = pickle.load(open(file,"rb")) print("time for loading file size with pickle", os.path.getsize(file),"KB =>", time()-t1) t1 = time() cPickle.load(open(file,"rb")) print("time for loading file size with cpickle", os.path.getsize(file),"KB =>", time()-t1) t1 = time() joblib.load(file) print("time for loading file size joblib", os.path.getsize(file),"KB =>", time()-t1) time for loading file size with pickle 79708 KB => 0.16768312454223633 time for loading file size with cpickle 79708 KB => 0.0002372264862060547 time for loading file size joblib 79708 KB => 0.0006849765777587891
quelle
Ich bin auf dieselbe Frage gestoßen, also habe ich diese (mit Python 2.7) ausprobiert, da ich eine große Pickle-Datei laden muss
#comapare pickle loaders from time import time import pickle import os try: import cPickle except: print "Cannot import cPickle" import joblib t1 = time() lis = [] d = pickle.load(open("classi.pickle","r")) print "time for loading file size with pickle", os.path.getsize("classi.pickle"),"KB =>", time()-t1 t1 = time() cPickle.load(open("classi.pickle","r")) print "time for loading file size with cpickle", os.path.getsize("classi.pickle"),"KB =>", time()-t1 t1 = time() joblib.load("classi.pickle") print "time for loading file size joblib", os.path.getsize("classi.pickle"),"KB =>", time()-t1
Ausgabe dafür ist
time for loading file size with pickle 1154320653 KB => 6.75876188278 time for loading file size with cpickle 1154320653 KB => 52.6876490116 time for loading file size joblib 1154320653 KB => 6.27503800392
Demnach funktioniert die Joblib besser als das cPickle and Pickle-Modul dieser 3 Module. Vielen Dank
quelle