火炬"聚集"问题



我有两个张量,如下所示:

归一化张量:
1
10
94
[火炬.长存储尺寸 3]

批次:
1
10
[火炬.长存储大小 2]

我想使用"批处理"来选择"归一化张量"的 3 维索引。到目前为止,我已经使用了如下集合:

normalised:long((:gather(1, batch:long(((

不幸的是,它返回此错误。 "'收集'的错误参数 #1(输入张量必须与输出具有相同的维度">

任何帮助将不胜感激!谢谢

答案基于以下假设:你有一个大小为 x,y,z 的三维张量,你想要一个大小为 x,y,10 的三维张量,其中 x,y 切片是根据另一个大小为 1,10 的张量中列出的索引选择的。

就我个人而言,我花了很多时间思考gather方法的可能用途。我得出的唯一结论是:这不是上面描述的问题。

所描述的问题可以通过使用index函数来解决:

local slice = normalised:gather(3, batch[1]:long())