腌制错误:无法腌制

2023-12-02

我想知道这个错误可能意味着什么:

PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed

据我了解,这与使用多核有关。我正在集群上运行我的程序,并在这行代码中使用 15 个线程:

gauss2 = PTSampler(ntemps, renwalkers, rendim, lnlike, lnprior, threads=15)

所讨论的采样器是记录在平行回火采样器中的采样器,位于http://dan.iel.fm/emcee/current/user/pt/

知道这个错误可能意味着什么吗?


该错误意味着您正在尝试腌制内置函数FunctionType…不是函数本身。这可能是由于某个地方的编码错误而选择了函数的类而不是函数本身。

>>> import sys
>>> import pickle
>>> import types
>>> types.FunctionType
<type 'function'>
>>> try:
...     pickle.dumps(types.FunctionType)
... except:
...     print sys.exc_info()[1]
... 
Can't pickle <type 'function'>: it's not found as __builtin__.function
>>> def foo(x):
...   return x
... 
>>> try:
...     pickle.dumps(type(foo))
... except:
...     print sys.exc_info()[1]
... 
Can't pickle <type 'function'>: it's not found as __builtin__.function
>>> try:
...     pickle.dumps(foo.__class__)
... except:
...     print sys.exc_info()[1]
... 
Can't pickle <type 'function'>: it's not found as __builtin__.function
>>> pickle.dumps(foo)
'c__main__\nfoo\np0\n.'
>>> pickle.dumps(foo, -1)
'\x80\x02c__main__\nfoo\nq\x00.'

如果你有一个FunctionType对象,那么您需要做的就是获取该类的实例之一——即像这样的函数foo.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

腌制错误:无法腌制 的相关文章

随机推荐