好久没更新博客了,最近一直在忙,既有生活上的也有工作上的。道阻且长啊。
今天来水一文,说一说最近工作上遇到的一个函数:torch.gather() 。...文字理解
我遇到的代码是 NLP 相关的,代码中用 torch.gather() 来将一个 tensor 的 shape 从 (batch_size, seq_length, hidden_size)...但是由于 input 可能含有多个维度,是 N 维数组,所以我们需要知道在哪个维度上进行 gather,这就是 dim 的作用。
对于 dim 参数,一种更为具体的理解方式是替换法。...直观理解
为便于理解,我们以一个具体例子来说明。我们使用反推法,根据 input 和输出推参数。这应该也是我们平常自己写代码的时候遇到比较多的情况。...如果输出和输入一样,那么原本的 index_tensor 就是如下:
tensor([[[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2