碰到了这个东西,有点不太清楚,在这里记下笔记
将nn.embedding理解为学习一个词向量的表示,每一个词都会对应一个指定维度的单独的向量表示(embed_dim在GRU等模型的输入中,可以认为是input_size)。假设当前词汇表中一共有V个不同的词,则可以定义如下形式:
假设当前词汇表中有4个不同的单词,则V=4
import torch
import torch.nn as nn
embed=nn.Embedding(4,embed_dim)
x=torch.LongTensor([[0,1,2],[3,2,1]])#B,seq_length
x_embed=embed(x)
print(x_embed.size())#B,seq_length,embed_size
可以将embed理解为一共矩阵,每个词类似于0,1,2等相当于通过矩阵的行去索引出该行向量的内容,行向量的维度为embed_dim。使用embedding去发现词隐藏的特征形式,使用神经网络的方法去自行学习。
参考连接:
PyTorch快速入门教程七(pytorch下RNN如何做自然语言处理)
PyTorch快速入门教程七(RNN做自然语言处理) - pytorch中文网