У меня есть тензор формы: (batch_size, max_length, embedding_dim)
.
Каждый образец соответствует предложению (списку токенов). У меня также есть список индексов, по одному на образец формы (batch_size)
. Я хотел бы собрать встроенный вектор, который соответствует индексу в каждом предложении, в тензор формы: (batch_size, embedding_dim)
. Звучит просто, верно?
Однако я не могу понять, что я делаю неправильно с этими параметрами:
# option 1, doesn't work:
torch.gather(batch, dim=1, index=indices)
# option 2, doesn't work:
torch.index_select(batch, dim=1, index=indices)
# option 3, doesn't work:
batch[:, indices]
# option 4, the one that works:
batch[range(batch_size), indices]
В чем различия? Как правильно использовать каждый?
Спасибо