pytorch如何读取词向量(nn.Embedding)

如何从已经训练好的词向量矩阵中读取词向量呢?

假设embeddings是我们训练好的词向量矩阵,我们要从中每次读取batch_size个句子的词向量。

x = torch.tensor(x, dtype=torch.long)   # 注意这里x的类型必须是torch.long,否则后面读取词向量的时候会报错

# 首先使用nn,Embedding定义一个词向量矩阵,称作embed
embed = nn.Embedding(embeddings.shape[0], embeddings.shape[1])
# 接下来将embeddings中的值拷贝到embed中
embed.weight.data.copy_(embeddings)
# embed.weight.data = embeddings 这样写与上面的写法效果一样

# x是一个batch_size × sentence_length大小的矩阵, 那么word中就是batch_size个句子的单词的embedding
word = embed(x)
# word的维度是batch_size * sentence_length * embedding_size

你可能感兴趣的:(pytorch)