调用tf.session.run得到

2024-06-28 19:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在执行nlp任务时遇到了性能问题。我想将this模块用于字嵌入,它会产生输出,但每次迭代调用都会增加其运行时间。我已经读过不同的解决方案,但我无法让它们发挥作用。我怀疑使用tf.placeholders将是一个很好的解决方案,但我不知道如何在这个实例中使用它们

我的问题的示例代码:

embedder = hub.Module("https://tfhub.dev/google/nnlm-en-dim128-with-normalization/1")
session = tf.Session()
session.run(tf.global_variables_initializer())
session.run(tf.tables_initializer())

doc = [["Example1", "Example2", "Example3", "Example4", ...], [...], ...]

for paragraph in doc:
   vectors = session.run(embedder(paragraph))
   #do something with vectors

注意,文档不能一次全部输入到嵌入器

先谢谢你


Tags: 模块rundocnlpsessiontfwith时间
1条回答
网友
1楼 · 发布于 2024-06-28 19:34:15

每次迭代都要重新创建整个模型,因此TensorFlow图不断增长。相反,您应该有一个带有占位符的模型作为输入,然后输入不同的段落

embedder = hub.Module("https://tfhub.dev/google/nnlm-en-dim128-with-normalization/1")
session = tf.Session()
session.run(tf.global_variables_initializer())
session.run(tf.tables_initializer())

doc = [["Example1", "Example2", "Example3", "Example4", ...], [...], ...]

my_input = tf.placeholder(tf.string, [None])
my_embedder = embedder(my_input)
for paragraph in doc:
   vectors = session.run(my_embedder, feed_dict={my_input: paragraph})
   #do something with vectors

相关问题 更多 >