我有两个形状的张量
voxels :: (4, 64, 64, 64) indices :: (4096, 3)
这里voxels有dtype float32,而indices是0和63之间的整数。我想索引体素,创建一个张量张量output
output :: 4, 4096
使下列约束保持
output[i,j] = voxels[i, indices[j,0], indices[j,1]. indices[j,2]]
我怎样才能在tensorflow中做到这一点?
有一些关于更高级的切片这里的讨论,但是还不清楚那里的建议是否适用,或者梯度是否已经实现。
作为参考,如果上面的张量是numpy数组,下面的代码可以实现我想要的结果:
output = voxels[:, indices[:,0],indices[:,1],indices[:,2]]
发布于 2016-09-08 16:53:44
gather_nd确实是一种可能,但是渐变还没有实现。然而,也有可能使用涉及gather的技巧,方法是使张量变平,并重新计算适当的指数。
发布于 2016-09-08 16:51:05
我相信gather_nd可以做您想做的事情,尽管我不认为渐变已经实现。
https://stackoverflow.com/questions/39380404
复制相似问题