簡體   English   中英

在TensorFlow圖的中間選擇要使用的張量

[英]Select which tensor to use in middle of TensorFlow graph

在Tensorflow中,我將如何在圖中間的python張量列表之間進行選擇,作為其余圖的輸入?

基本上,我有一張張量的python列表,可以用作圖其余部分的輸入。 我想從其中之一中進行選擇,而無需添加需要計算列表中所有張量的額外依賴項(我認為如果使用tf.cond會發生這種情況)。 如何選擇其中之一? 我無法在python級別上執行此操作,因為我根據從占位符計算出的值選擇了張量。 例如:

x = tf.placeholder(tf.int32, shape=(num_steps, None))
y = tf.placeholder(tf.int32, shape=(None,))
lengths = tf.placeholder(tf.int32, shape=(None,))
# Pretend there is a bunch of lines of code here
output_index = max_sequence_length = tf.reduce_max(lengths)
final_output = potential_outputs[output_index] # won't work, output_index is Tensor
# Pretend the rest of the model uses final_output

如果您需要更多信息:

我正在展開一個RNN,我只想展開到序列的最大長度。 如果少於展開步驟的數量,則會浪費大量計算資源。 Dynamic_rnn和static_rnn無法滿足我的需求,因此我試圖提出自己的自定義方法來展開圖形。

要在tensorflow中建立索引,請使用tf.slice

應該注意的是,根據您提供的代碼,我認為您沒有使用tf.reduce_max函數正確索引輸出,因為這是在給定軸上提供的實際最大值,該最大值可能不是整數(但我我不確定您的網絡如何工作)。 您可能正在尋找返回最大值的索引的tf.argmax。 然而,與此有關的問題是,張量流沒有為tf.argmax定義梯度,因此函數不能成為網絡的學習部分。

暫無
暫無

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

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