我在 Stackoverflow 上查看了 PyTorch 教程和与此类似的问题。
我有点迷惑不解了; pytorch ( Embedding ) 中的嵌入是否会使相似的单词彼此更接近?我只需要给它所有的句子吗?或者它只是一个查找表,我需要对模型进行编码?
最佳答案
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 的嵌入向量。由于没有训练过模型,它们将是随机的。
关于python - 嵌入pytorch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50747947/