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'的主要内容,如果未能解决你的问题,请参考以下文章
完美解决:ValueError: Object arrays cannot be loaded when allow_pickle=False
使用flask在heroku bert pytorch模型上部署:错误:_pickle.UnpicklingError:无效的加载键,'v'
ValueError: Object arrays cannot be loaded when allow_pickle=False