Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调用tf.session.run会变慢_Python_Tensorflow_Nlp - Fatal编程技术网

Python 调用tf.session.run会变慢

Python 调用tf.session.run会变慢,python,tensorflow,nlp,Python,Tensorflow,Nlp,我在执行nlp任务时遇到问题。我想将模块用于单词嵌入,它会产生输出,但它的运行时间会随着每次迭代调用而增加。我已经读过不同的解决方案,但我无法让它们发挥作用。我怀疑使用这个方法是一个很好的解决方案,但我不知道在这个例子中如何使用它们 我的问题的示例代码: embedder=hub.Module(“https://tfhub.dev/google/nnlm-en-dim128-with-normalization/1") session=tf.session() session.run(tf.gl

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

我的问题的示例代码:

embedder=hub.Module(“https://tfhub.dev/google/nnlm-en-dim128-with-normalization/1")
session=tf.session()
session.run(tf.global\u variables\u initializer())
session.run(tf.tables\u initializer())
文档=[“示例1”、“示例2”、“示例3”、“示例4”、…]、[…]、…]
对于文件中的段落:
vectors=session.run(嵌入器(段落))
#用向量做点什么
请注意,文档不能一次全部馈送到嵌入器


提前感谢。

您在每次迭代中都会重新创建整个模型,因此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

非常感谢我读到的,这就是问题所在,但我不确定如何使用占位符。