【d2l】【常见函数】【9】 nn.Embedding()

发布时间 2023-07-26 23:26:36作者: zz子木zz

将输入的序列转换词向量
转载:https://www.jianshu.com/p/63e7acc5e890 ,本帖仅用于学习,请给原博主点赞
参考:https://pytorch.org/docs/stable/generated/torch.nn.Embedding.html

函数参数

nn.Embedding(num_embeddings (int), embedding_dim (int))

num_embeddings: 这个词典中有多少个词

embedding_dim: 词向量的维度,即多少长度的向量能表示一个词,类似于独热向量的长度。

image

函数使用

输入:

预处理:

词典映射:
image
加上EOS表示每个句子的结束
image
加上pad填充,让每个序列的长度相同
image
转换成RNN需要的格式(RNN每次处理一个时间步长中所有批量的单词) : 时间步长 * 批量大小
image

batch = [
	[3,6,4],
	[6,4,5],
	[5,7,8],
	[6,9,7],
	[7,5,1],
	[1,1,2]
]

最后根据输入的向量维度,输出词向量:时间步长 * 批量大小 * 词向量维度
image