gpt4 book ai didi

python - 保持对象在 python 的另一个程序中使用它们

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:42 25 4
gpt4 key购买 nike

我正在使用 word2vec 来计算两个词之间的相似度。所以对于模型,我使用的是 GoogleNews。该模型非常庞大,因此需要大量时间来加载。

model = Word2Vec.load_word2vec_format('D:/Userfiles/vsachidananda/Downloads/GoogleNews-vectors negative300.bin.gz', binary=True)

我想加载它并保存在一个变量/对象中,这样每当我运行一个 python 程序时,我都应该能够调用

model.similarity('word1','word2')

如何实现?有什么想法吗?

最佳答案

我知道在 Python 进程之间共享复杂对象的唯一方法是使用 multiprocessing.Manager。但是每次需要与子进程共享时,model 都会被pickledunpickled。我猜它会和 load_word2vec_format 一样慢。

您可以运行一个加载一次 model 的启动器,然后等待并按需执行另一个 python 脚本。一个非常简单的启动器看起来像这样:

import Word2Vec
model = Word2Vec.load_word2vec_format(...)

try:
import traceback
import script

while True:
raw_input()

try:
reload(script)
script.main(model)
except:
print traceback.print_exc()

except KeyboardInterrupt:
print 'exit launcher'

有了这个基本的启动器,script.py 应该在同一个文件夹中并且需要定义一个 main():

def main(model):
model.similarity('word1','word2')
...

关于python - 保持对象在 python 的另一个程序中使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782727/

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