gpt4 book ai didi

python - 无法pickle Scikit学习NearestNeighbor分类器 - 无法pickle实例方法对象

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

我正在尝试 pickle NearestNeighbor 模型,但它说无法 pickle instancemethod 对象。

代码:

import cPickle as pickle
from sklearn.neighbors import NearestNeighbors

nbrs = NearestNeighbors(n_neighbors=50, algorithm='ball_tree', metric=self.distanceCIE2000_classifier)
nbrs.fit(allValues)
with open('/home/ubuntu/nbrs.p','wb') as f:
pickle.dump(nbrs, f)

完整的回溯:

  File "/home/ubuntu/colorSetter.py", line 82, in createClassifier
pickle.dump(nbrs, f)
File "/usr/lib/python2.7/copy_reg.py", line 70, in _reduce_ex
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle instancemethod objects

最佳答案

NearestNeighbors 实例中的某个位置有一个属性,它引用您在 metric 参数中传递给它的实例方法。 Pickle 不会 pickle 实例方法,因此会出现错误。

解决这个问题的一种方法是将方法 distanceCIE2000_classifier() 从类中移出到常规独立函数(如果可能的话)。

关于python - 无法pickle Scikit学习NearestNeighbor分类器 - 无法pickle实例方法对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37760380/

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