【发布时间】:2019-10-22 15:19:39
【问题描述】:
我目前正在尝试比较数百万个文档的相似性。对于 CPU 上的第一次测试,我将它们减少到每个大约 50 个字符,并尝试一次获得 10 个字符的 ELMo 嵌入,如下所示:
ELMO = "https://tfhub.dev/google/elmo/2"
for row in file:
split = row.split(";", 1)
if len(split) > 1:
text = split[1].replace("\n", "")
texts.append(text[:50])
if i == 300:
break
if i % 10 == 0:
elmo = hub.Module(ELMO, trainable=False)
executable = elmo(
texts,
signature="default",
as_dict=True)["elmo"]
vectors = execute(executable)
texts = []
i += 1
然而,即使是这个小例子,在大约 300 个句子(甚至没有保存向量)之后,程序也会消耗高达 12GB 的 RAM。这是一个已知问题(我发现的其他问题暗示了类似的问题,但不是那么极端)还是我犯了错误?
【问题讨论】:
-
你传入了一个变量
sentences,但我们看不到这是在哪里定义的 -
对不起,我的错。它应该是文本而不是句子(在我的代码中,elmo 部分是它自己的方法的一部分,其中参数称为语句)。我已经编辑了它
标签: python tensorflow tensorflow-hub elmo