今天會介紹存檔、讀檔的兩個方法, pickel
跟 joblib
。
# pickle save
from sklearn import svm
from sklearn import datasets
import pickle
model_path = 'model.pickle'
classifier = svm.SVC()
X, y = datasets.load_iris(return_X_y=True)
classifier.fit(X, y)
with open(model_path, 'wb') as f:
pickle.dump(classifier, f)
# pickle load
import pickle
with open(model_path, 'rb') as f:
classifier_load = pickle.load(f)
# check pickel
print('classifier pred:', classifier.predict(X[0:10]))
print('classifier load pred:', classifier_load.predict(X[0:10]))
下面示範的是 joblib
# joblib save
import joblib
from sklearn import svm
from sklearn import datasets
model_path = 'model.joblib'
classifier = svm.SVC()
X, y = datasets.load_iris(return_X_y=True)
classifier.fit(X, y)
with open(model_path, 'wb') as f:
joblib.dump(classifier, f)
# joblib load
import joblib
with open(model_path, 'rb') as f:
classifier_load = joblib.load(f)
# joblib check
print('classifier pred:', classifier.predict(X[0:10]))
print('classifier load pred:', classifier_load.predict(X[0:10]))
scikit learn 官方是推薦大家使用 joblib, 官方提到 joblib 比 pickel 更高效,尤其對於大的 numpy 陣列更為好用。
scikit learn onnx
下面課程要介紹怎麼把你的模型轉為 onnx