我发现即使通过求和张量并使用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 ] –