Skip to the content.

今天會介紹存檔、讀檔的兩個方法, pickeljoblib

# 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