gpt4 book ai didi

Python 多处理类型错误 : can't pickle generator objects

转载 作者:太空狗 更新时间:2023-10-30 00:20:03 45 4
gpt4 key购买 nike

我正在尝试将一个函数调用映射到一个池中。我正在使用来自其他类似线程的修复程序,涉及使用多个参数调用函数。我无法提供更全面的示例,因为策略类的训练方法非常长且复杂,而且数据集很大:

import multiprocessing as mp
from functools import partial
from numpy import array_split

def call_train(signals, args):
return args[0].train(signals, args[1])

pool = mp.Pool()

chunks = array_split(data.train_signals, pool._processes)
res = pool.map(partial(call_train, [strat, data.train_md]), chunks)

在上面,strat 是一个 python 对象,data.train_signals 和 data.train_md 都是 pandas 数据帧。

错误如下:

File "/home/jason/PycharmProjects/backtester/core/backtester.py", line 51, in evaluate
res = pool.map(partial(call_train, [strat, data.train_md]), chunks)
File "/usr/lib/python3.5/multiprocessing/pool.py", line 260, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/usr/lib/python3.5/multiprocessing/pool.py", line 608, in get
raise self._value
File "/usr/lib/python3.5/multiprocessing/pool.py", line 385, in _handle_tasks
put(task)
File "/usr/lib/python3.5/multiprocessing/connection.py", line 206, in send
self._send_bytes(ForkingPickler.dumps(obj))
File "/usr/lib/python3.5/multiprocessing/reduction.py", line 50, in dumps
cls(buf, protocol).dump(obj)
TypeError: can't pickle generator objects

最佳答案

更新:

在我的 strat 类的深处嵌套了 3 个对象我有一个我忘记的生成器。

关于Python 多处理类型错误 : can't pickle generator objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185746/

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