python 内存溢出MemoryError如何解决 word2vec库

发布于 2022-09-05 20:02:44 字数 1443 浏览 30 评论 0

使用word2vec训练model的时候内存溢出MemoryError
分好词的文本文件不到1G,200维,真没搞懂为啥会溢出?难道真是train的时候分两次,第一次先加载词库,第二次再训练神经网络,所以超2G了,于是报错?

简单两行代码
sentences =word2vec.Text8Corpus(u'wikichinesepreprocessed.txt') # 加载语料
model = word2vec.Word2Vec(sentences,size=200,workers=multiprocessing.cpu_count())

报错
warnings.warn("detected Windows; aliasing chunkize to chunkize_serial")
UserWarning: detected Windows; aliasing chunkize to chunkize_serial
Traceback (most recent call last):
model = word2vec.Word2Vec(sentences,size=200,workers=multiprocessing.cpu_count())
Python36-32libsite-packagesgensimmodelsword2vec.py", line 503, in init

self.build_vocab(sentences, trim_rule=trim_rule)

Python36-32libsite-packagesgensimmodelsword2vec.py", line 579, in build_vocab

self.finalize_vocab(update=update)  # build tables & arrays

Python36-32libsite-packagesgensimmodelsword2vec.py", line 752, in finalize_vocab

self.reset_weights()

Python36-32libsite-packagesgensimmodelsword2vec.py", line 1173, in reset_weights

self.syn1neg = zeros((len(self.wv.vocab), self.layer1_size), dtype=REAL)

MemoryError

尝试过按eachline分行读入,但是不行啊word2vec如果分行读入,一开始不能设置train参数,不知道会成什么样。
如果一开始设置model设置训练参数,就不能添加文本进行再训练

而如果用chunksize之类的分割成多个小文件,也同样面临上面的问题


有其他解决办法没啊?比如修改python的默认内存溢出设置

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文