Что означает "Собирает значения вдоль оси, указанной dim."имею в виду? - PullRequest
0 голосов
/ 18 июня 2019

Я хочу понять, что означает "Собирает значения вдоль оси, заданной 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

1 Ответ

1 голос
/ 18 июня 2019

Да, он проходит через заданный димер (размерность) тензора и собирает в новый тензор значения, указанные в указанном индексе. Так что, если бы у меня был 1D тензор (это разрешено?) Как

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 это даст вам возможность индексировать по строкам или столбцам, и вы можете экстраполировать это на столько измерений, сколько захотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...