加载预训练模型时面临的问题

时间:2019-11-10 14:48:16

标签: python pandas numpy machine-learning scikit-learn

我已经使用Google colab训练了模型,并将其另存为model.pkl。当我尝试在笔记本电脑中加载模型时,抛出以下错误:

Traceback (most recent call last):
File "app.py", line 8, in <module>
model = pickle.load(open('model.pkl', 'rb'))
File "sklearn\tree\_tree.pyx", line 606, in sklearn.tree._tree.Tree.__cinit__
ValueError: Buffer dtype mismatch, expected 'SIZE_t' but got 'long long'

我已经对上述错误进行了一些研究,并且知道随机森林代码在32位和64位计算机上对索引使用不同的类型。我在这个平台上看到过类似的question,但对接受的答案不满意,因为该答案建议再次训练模型,这种情况不合适,因为有很多事情要做,我不愿意这样做想要再次在服务器上增加负载。

有什么建议或解决方案吗?

2 个答案:

答案 0 :(得分:0)

不确定'.pkl'格式,但是您可以尝试将其另存为
model.save('modelweight.h5'),然后将其加载为model.load('modelweight.h5')。 这将起作用。 谢谢。

答案 1 :(得分:0)

尝试用腌料代替泡菜

try:
   import cPickle as pickle
except:
   import pickle
f = open('model.pkl','w+')
pickle.dump(model, f)#to save the model into file

f = open('model.pkl','r')
model = pickle.load(f)