【问题标题】:Facing issue while loading the pre-trained model加载预训练模型时面临的问题
【发布时间】:2020-03-06 10:58:52
【问题描述】:

我使用 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,但对接受的答案不满意,因为答案建议再次训练模型,这不适合以防万一,因为有很多事情要重新做,我不想再次加载服务器。

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

【问题讨论】:

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


    【解决方案1】:

    尝试使用 cpickle 代替 pickle

    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)
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-06-01
        • 2021-05-05
        • 2021-01-31
        • 2021-04-05
        • 1970-01-01
        • 2021-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多