簡體   English   中英

調用tf.session.run變慢

[英]Calling tf.session.run gets slower

我在執行nlp任務時遇到了性能問題。 我想將此模塊用於單詞嵌入,它會產生輸出,但是它的運行時間隨每次迭代調用而增加。 我已經讀過不同的解決方案,但是我無法讓它們正常工作。 我懷疑使用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

請注意,該文檔無法一次全部饋送到嵌入器。

先感謝您。

您將在每次迭代中重新創建整個模型,因此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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM