例如,假设我的输入张量的尺寸为Unzip
。
我还有一个形状为(bs, nv, dims)
的索引张量
我想发生的是输入中的元素按索引中的给定顺序排列。
因此,如果输入张量为(bs, nv)
,即[[[1,1], [2,2], [3,3], [4,4]]]
,bs=1
和nv=4
与dims=2
我希望输出为indices = [[2,1,3,0]]
。
请注意,如果[[[4,4], [2,2], [1,1], [3,3]]]
始终为1,则使用bs
很容易做到。
我真正感兴趣的是何时tf.scatter_nd(..)
。
注意:这是用collect不能实现的,因为如果使用collect,它将为您提供bs > 1
,这对上下文是不正确的。
当前解决方案: 我现在拥有的解决方案是:
[[[3,3], [2,2], [4,4], [1,1]]]
我认为这很慢,因为它涉及地图。