我想了解“沿dim指定的轴收集值”的含义。意思是下面的代码。如何构造对大脑中数据的功能操作。此函数对数据有什么作用?如何实现?
请参考此链接https://pytorch.org/docs/stable/torch.html#torch.gather
torch.gather(input, dim, index, out=None, sparse_grad=False)
Gathers values along an axis specified by dim.
For a 3-D tensor the output is specified by:
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
答案 0 :(得分:1)
是的,它将经历张量的给定暗度(维数),并将由所提供的索引指定的值收集到新的张量中。因此,如果我有一个一维张量(允许吗?)为
MyValues = torch.tensor([0,2,4,6,8])
做了
torch.gather(MyValues, 0, torch.tensor([0,1,3]))
我希望返回包含[0,2,6]
的一维张量。即位于位置0
,1
和3
的值。
因此,它只是使用index
张量作为指向要从input
张量提取的内容位置的指针来挑选内容。
dim
是您要索引的维度。因此,对于2D而言,您可以选择按行或按列进行索引,然后可以将其外推到任意多个维度。