torch.gather
- torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor
-
沿由dim指定的轴收集值。
对于一个3D张量,其输出如下指定:
out[i][j][k] = input[index[i][j][k]][j][k] # if dim == 0 out[i][j][k] = input[i][index[i][j][k]][k] # if dim == 1 out[i][j][k] = input[i][j][index[i][j][k]] # if dim == 2
input和index必须具有相同的维度数量,并且对于所有不等于dim的维度d,需要满足index.size(d) <= input.size(d)。out将与index具有相同的形状。需要注意的是,input和index不能相互广播。- 参数
- 关键字参数
示例:
>>> t = torch.tensor([[1, 2], [3, 4]]) >>> torch.gather(t, 1, torch.tensor([[0, 0], [1, 0]])) tensor([[ 1, 1], [ 4, 3]])