我發現即使通過求和張量並使用gather或gather_nd,也無法獲得n維數組中的最大張量。n維張量中的最大張量(不是元素)
最大張量我是指總和最高的權重集合。
我有一個形狀的張量(-1,4,30,256),其中256是權重。我需要爲每個(-1,0,30),(-1,1,30),(-1,2,30)和(-1,3,30)獲得最大權重集合, ,所以在第二維的每張張量下。
這將理想地導致(-1,4,256)張量。
reduce_max和任何其他最大函數將只返回最後一個維度內的最大元素值,而不是維度本身中的最大張量(這是具有最高總和的權重集合)。我曾嘗試:
p1 = tf.reduce_sum(tensor, axis=3) # (-1, 4, 30)
p2 = tf.argmax(p1, 2) # (-1, 4)
這給適當的索引值的第三維:
[[0, 2, 2, 0],
[0, 1, 3, 0],
...
但運行上述tf.gather或tf.gather_nd不工作,我的拆分數據,即使事先和使用不同的軸。
而且,我可以得到撥款指標,如果我的手用gather_nd,如:
tf.gather_nd(out5, [[0,0,0], [0,1,2], [0,2,2], [0,3,0], [1,0,0], [1,1,2], [1,2,2], [1,3,1]])
但是,當我們使用的是未知的第一個維度的變量tensorflow,我不能建立這些索引。
我已經通過搜索相關的解決方法,發現沒有適用。
誰能告訴我如何做到這一點?謝謝!
編輯澄清:
權重最大的張量將是具有最高總和的權重集:
[[ 1, 2, 3], [0, 0, 2], [1, 0, 2]] would be [1, 2, 3]
你是什麼意思最大張量?你的意思是張量是最大單張張量,還是最大張量張量,還是別的? – ml4294
具有最高求和值的權重(張量)的集合,例如權重[[1,2,3],[0,1,2],[2,0,2]]將是[1,2,3 ] –