nn.Embedding
содержит тензор измерения (vocab_size, vector_size)
, то есть размера словаря x размерности каждого вектора вложения, и метод, который выполняет поиск.
При создании слоя вложенияТензор инициализируется случайным образом.Только когда вы тренируете его, должно появиться это сходство между похожими словами.Если вы не перезаписали значения встраивания ранее обученной моделью, такой как GloVe или Word2Vec, но это уже другая история.
Итак, как только вы определили слой встраивания, а словарь определен и закодирован (т.е. назначьтеуникальный номер для каждого слова в словаре) вы можете использовать экземпляр класса nn.Embedding для получения соответствующего встраивания.
Например:
import torch
from torch import nn
embedding = nn.Embedding(1000,128)
embedding(torch.LongTensor([3,4]))
вернет векторы вложениясоответствующие словам 3 и 4 в вашем словаре.Поскольку ни одна модель не была обучена, они будут случайными.