【发布时间】:2016-02-03 11:58:29
【问题描述】:
我做了一个示例程序来使用 sklearn 训练 SVM。这是代码
from sklearn import svm
from sklearn import datasets
from sklearn.externals import joblib
clf = svm.SVC()
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf.fit(X, y)
print(clf.predict(X))
joblib.dump(clf, 'clf.pkl')
当我转储模型文件时,我得到了这么多文件。 :
['clf.pkl'、'clf.pkl_01.npy'、'clf.pkl_02.npy'、'clf.pkl_03.npy'、'clf.pkl_04.npy'、'clf.pkl_05。 npy','clf.pkl_06.npy','clf.pkl_07.npy','clf.pkl_08.npy','clf.pkl_09.npy','clf.pkl_10.npy','clf.pkl_11.npy' ]
如果我做错了什么,我会感到困惑。或者这是正常的吗?什么是 *.npy 文件。为什么有 11 个?
【问题讨论】:
-
大概这些是
numpy数组用于您的数据,joblib在加载回.pkl时会查找那些np数组并加载回模型数据 -
我刚刚意识到,如果我使用 joblib.dump(clf, 'clf.pkl', compress=9) 我只会得到 1 个 clf.pkl 文件。所以我假设正如你所说的那样,这些是 numpy 数组。在加载过程中,我是手动加载还是自动加载?
-
我希望它们会自动加载,试试吧
-
是的,这是真的。我不加载 *.npy 格式,只加载 .pkl。你知道如果我使用参数压缩,它会影响非常大的数据集的数组吗?
-
基本上它会以读取/写入为代价影响腌制数据的大小,因此这取决于您的优先级是什么
标签: python machine-learning scikit-learn joblib