PicklingError: Can't pickle <class 'gensim.models.word2vec.Word2Vec'>: import of module 'gensim.models.word2vec' failed
时间: 2024-01-17 08:02:47 浏览: 123
在python下实现word2vec词向量训练与加载实例
这个错误通常是由于 `gensim` 模块无法在子进程中被正确导入所导致的。解决这个问题的一种方法是使用 `dill` 模块代替 `pickle`,因为 `dill` 可以处理更多类型的对象。你可以这样修改代码:
```python
import dill as pickle
# your code here
```
如果以上修改不起作用,你可以尝试将 `gensim` 模块在主进程中导入,然后将其传递给子进程。例如:
```python
import multiprocessing as mp
import gensim
def worker(model):
# your code here
if __name__ == '__main__':
model = gensim.models.Word2Vec.load('your_model_path')
p = mp.Process(target=worker, args=(model,))
p.start()
p.join()
```
这样,`gensim` 模块就可以在主进程中正确导入,并且可以被传递到子进程中,从而避免了 `pickling` 错误。
阅读全文