Pickle 加载模型 ValueError:缓冲区 dtype 不匹配,预期为 'ITYPE_t' 但得到了 'long long'

Posted

技术标签:

【中文标题】Pickle 加载模型 ValueError:缓冲区 dtype 不匹配,预期为 \'ITYPE_t\' 但得到了 \'long long\'【英文标题】:Pickle Load Model ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'Pickle 加载模型 ValueError:缓冲区 dtype 不匹配,预期为 'ITYPE_t' 但得到了 'long long' 【发布时间】:2021-11-12 23:37:21 【问题描述】:

我在尝试加载 ML 模型时收到此错误“ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'”。

    我训练了一个分类器模型 (knn) 并将其保存在 PC 上。 然后,当我尝试在另一台 PC 上测试保存的模型时,出现此错误。

我保存模型的代码

dill.dump(src_model, open(filename, 'wb'))

加载模型的代码

LOADED_MODEL = pickle.load(open(filename, 'rb'))

我还尝试了 joblib、ubjson、dill,但我得到了同样的错误。

【问题讨论】:

【参考方案1】:

pd.to_pickle(model,r'location-to-store-file/name-of-file.pickle') 创建一个泡菜文件

model = pd.read_pickle(r'location-to-store-file/name-of-file.pickle') 加载 pickle 文件

【讨论】:

我遇到了同样的错误;文件“sklearn\neighbors_binary_tree.pxi”,第 1180 行,在 sklearn.neighbors._kd_tree.BinaryTree.__setstate__ 文件“sklearn\neighbors_binary_tree.pxi”,第 1122 行,在 sklearn.neighbors._kd_tree.BinaryTree._update_memviews 文件“sklearn\neighbors_binary_tree. pxi",第 236 行,在 sklearn.neighbors._kd_tree.get_memview_ITYPE_1D ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long' 您是从项目文件夹中加载泡菜文件吗? 是的,我愿意。但我也尝试从另一个目录导入它。我遇到了同样的错误。 你用的是什么IDE? Visual Studio 代码

以上是关于Pickle 加载模型 ValueError:缓冲区 dtype 不匹配,预期为 'ITYPE_t' 但得到了 'long long'的主要内容,如果未能解决你的问题,请参考以下文章

python使用pickle保存和加载机器学模型

完美解决:ValueError: Object arrays cannot be loaded when allow_pickle=False

使用flask在heroku bert pytorch模型上部署:错误:_pickle.UnpicklingError:无效的加载键,'v'

机器学习之保存与加载.pickle模型文件

ValueError: Object arrays cannot be loaded when allow_pickle=False

无法加载腌制对象