我有两个张量,如下所示:
归一化张量:
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())