pickle(オブジェクトデータ構造を直列化・非直列化)
Python のオブジェクトを直列化・非直列化するための機能を提供。
直列化 (Serialize) ・・オブジェクトをバイト列などの表現に変換
非直列化 (Deserialize) ・・バイト列を元にオブジェクトを復元する
pickle モジュールをC言語で再実装したcPickleモジュールは、 1000倍速いらしい。
import cPickle # Write cPickle.dump("Hoge Hoge", open("hoge.pickle", "wb")) # Read hoge = cPickle.load(open("hoge.pickle", "rb")) print hoge >> Hoge Hoge hoge_dic = {1: "a", 2: "b", 3: "c"} hoge_list = ["a", "b", "c"] cPickle.dump([hoge_dic, hoge_list], open("hoge.pickle", "wb")) hoge_dic, hoge_list = cPickle.load(open("hoge.pickle", "rb"))
scikit-learnのモデルの場合も同様
model = LogisticRegression() model.fit(X_train, Y_train) filename = 'finalized_model.sav' pickle.dump(model, open(filename, 'wb'))