【问题标题】:file size increasing and decreasing after cPickle using incremental classifier sklearncPickle 使用增量分类器 sklearn 后文件大小增加和减少
【发布时间】:2017-07-09 19:58:56
【问题描述】:

我正在使用PassiveAggressiveRegressor 增量分类器。每次我使用partial_fit 时,我都会将模型保存到pickle 文件中。

from sklearn import linear_model
import numpy as np
import time

X = np.array(range(1000))
y = np.array([x + random.random() for x in X])
X = X.reshape(1000,1)

model = linear_model.PassiveAggressiveRegressor()
model.partial_fit(X, y)
cPickle.dump(model, open('model.pkl', 'wb'))


for i in range(0,10):
    time.sleep(1)
    model = cPickle.load(open('model.pkl', 'rb'))
    model.partial_fit(X, y)
    cPickle.dump(model, open('model.pkl', 'wb'))

我不明白为什么文件 model.pkl 会改变大小。有时它' s 大小变为 889 字节,然后下降到 886 字节。这正常吗?它在做自己的事情吗?还是我的代码有问题?

【问题讨论】:

    标签: python scikit-learn pickle


    【解决方案1】:

    这可以通过原来的 pickle 使用其他协议来解释。

    例如,尝试将protocol=2 指定为pickle.dump 的关键字参数并再次测试它。因此,请尝试始终指定相同的协议。

    一般来说,二进制泡菜的大小应该小得多。

    目前有 3 种不同的协议可用于酸洗。

    1. 协议版本 0 是原始 ASCII 协议,向后兼容早期版本的 Python。
    2. 协议版本 1 是旧的二进制格式,它也与早期版本的 Python 兼容。
    3. 协议版本 2 是在 Python 2.3 中引入的。它提供了更有效的新式类的酸洗。

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      相关资源
      最近更新 更多