gpt4 book ai didi

python - 使用增量分类器 sklearn 在 cPickle 之后文件大小增加和减少

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:56 28 4
gpt4 key购买 nike

我正在使用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 字节。这正常吗?它在做自己的事情吗?或者我的代码有问题?

最佳答案

这可以通过以下事实来解释:原始 pickle 使用了其他协议(protocol)。

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

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

目前有 3 种不同的协议(protocol)可用于 pickle 。

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

关于python - 使用增量分类器 sklearn 在 cPickle 之后文件大小增加和减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45000460/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com