python - 嵌入pytorch

标签 python pytorch word-embedding

我在 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/

相关文章:

python - Django:暂时将所有 URL 重定向到一个 View

将应用于另一个变量的 Python 函数

python - 为什么 scipy.optimize.curve_fit() 在拟合函数中使用定义数量的参数时表现更好?

python - 如何使用 PyTorch 构建 LSTM AutoEncoder?

pytorch - 评估期间出现内存不足错误,但训练效果良好

tensorflow - 在 keras 中使用带有 LSTM nn 的 Gensim Fasttext 模型

python - sympy 在尝试求解一个简单的代数方程时挂起

python - 在 Pytorch 中对张量 [batch, channel, sequence, H,W] 运行 conv2d

machine-learning - 词嵌入模型

python - keras - 嵌入层 mask_zero 导致后续层出现异常