gpt4 book ai didi

python - pickle 错误 : Can't pickle

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

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

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/ 上为并行回火采样器记录的采样器。

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

最佳答案

该错误意味着您正在尝试 pickle 内置 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 这样的函数。

关于python - pickle 错误 : Can't pickle <type 'function' >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24923163/

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