nn.Embedding 根据索引生成的向量有权重吗

import torch

import torch.nn as nn

假设有一个大小为 10x3 的 Embedding 层,其中有 10 个单词,每个单词用一个长度为 3 的向量表示

num_words = 10

embedding_dim = 3

创建 Embedding 层

embedding_layer = nn.Embedding(num_words, embedding_dim)

print(embedding_layer.weight)

embedded_vectors = embedding_layer(torch.LongTensor([4]))

print(embedded_vectors)

embedded_vectors = embedding_layer(torch.LongTensor([5]))

print(embedded_vectors)

embedded_vectors = embedding_layer(torch.LongTensor([6]))

print(embedded_vectors)

nn.Embedding层单词转向量实测

1.nn.Embedding创建对象embedding_layer

2.可以看到embedding_layer创建完成,其属性weight已经有值了

3.embedding_layer方法传入分别torch.LongTensor([4]),torch.LongTensor([5]),(torch.LongTensor([6])生成的结果就是根据索引值去weight里取值。

打破猜测:

1.原以为embedding_layer里进行的一个乘法,传参*随机权重,如embedded_vectors =torch.LongTensor([4])*W,实际不是,没有乘法

2.实际是nn.Embedding(num_words, embedding_dim)根据参数已经随机生成了所有的向量,之后仅需根据索引取值

原始猜测:

1.由于程序每次重启embedding_layer.weight生成的参数随机,为供断点续训和预测用,这些参数不能每次都随机生成,所以这些应该是要保存在模型中。即断点续训或预测时,embedding层的向量不应是随机生成了,而是读取模型文件中存储的模型参数。

2.embedding_layer.weight参与梯度更新,一开始以为此处没有

3.一开始根据各种信息判断nn.Embedding的内部机制是,或许有一个随机参数,乘以输入单词索引,得到嵌入向量,并且这个参数不参加更新,潜意识是参数不保存。

复制代码
1.为什么有或许有一个随机参数,乘以输入单词索引,得到嵌入向量这样的理解?
	因为看着是传入了索引,得到了一个随机向量,合理猜测应该是有个随即参数与传参相乘。
	所以这里第一步的猜测就错了。
	首先这个参数的确是有的,机制的实际是随机生成所有的可能的索引的向量,供直接取用。这里参数即嵌入向量

2.这个参数不参加更新?
	这种不参与更新的参数,模型会保存吗?猜测应该不会,如果不会,那每次重启的得到的嵌入向量都变了,怎么供续训和预测用?

对于transformer/bert,网络上的确对nn.Embedding这一步骤的机制讲解不够清晰,不知道嵌入向量是怎么得出的,不知道其中是否有需要训练的参数。

嵌入参数不参加更新这说法主要是来自李宏毅讲的注意力机制那块的误解,说是除了wq,wk,wv参数参与训练,没有别的参数了。这就和续训预测产生了极强的的矛盾,难以判断。

当你创建 nn.Embedding 层时,PyTorch 会随机初始化权重。这些权重在训练过程中会通过反向传播进行更新,以拟合模型的输入和输出数据,确保模型能够更好地进行预测或分类任务。

相关推荐
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-03-25
人工智能·经验分享·深度学习·神经网络·产品运营
枫叶林FYL2 小时前
【自然语言处理 NLP】第二章 经典NLP算法与特征工程(Classical NLP Algorithms)
人工智能·深度学习·机器学习
剑穗挂着新流苏3124 小时前
117_PyTorch 实战:利用训练好的模型进行单张图片验证
人工智能·python·深度学习
枫叶林FYL5 小时前
【乳腺癌早期筛查(钼靶X光图像AI识别)】第一章:钼靶AI核心算法架构演进——从2D全视野到3D断层合成与视觉Transformer
人工智能·深度学习
枫叶林FYL5 小时前
【自然语言处理 NLP】数学与计算基础(Mathematical & Computational 完整源码实现
人工智能·深度学习·机器学习
another heaven6 小时前
【深度学习 超参调优】lr0与lrf 的关系
人工智能·深度学习
放下华子我只抽RuiKe56 小时前
深度学习全景指南:硬核实战版
人工智能·深度学习·神经网络·算法·机器学习·自然语言处理·数据挖掘
天空之城_tsf6 小时前
通用多模态检索——大模型微调
人工智能·深度学习·计算机视觉
OpenBayes贝式计算7 小时前
教程上新|低门槛部署英伟达最新 Physical AI 模型,覆盖人形机器人/人体运动生成/扩散模型微调等
人工智能·深度学习·机器学习
liliwoliliwo8 小时前
yolo3 点
人工智能·深度学习