当前位置: 首页 > news >正文

算法面经手撕系列(3)--手撕LayerNormlization

LayerNormlization

 在许多的语言模型如Bert里,虽然都是说做的LayerNormlization,但计算均值和方差只会沿着channel维度做,并不是沿着seq_L和channel维度一起做,参考:BERT用的LayerNorm可能不是你认为的那个Layer Norm
 LayerNormlization计算流程:

  1. init里初始化C_in大小的scale和shift向量
  2. 沿Channel维度计算均值和方差
  3. 归一化

代码

 LayerNorm(InstanceNorm)实现如下:

class LayerNormalization(nn.Module):def __init__(self,hidden_dim,eps=1e-6):super(LayerNormalization, self).__init__()self.eps=epsself.gamma=nn.Parameter(torch.ones(hidden_dim))self.beta=nn.Parameter(torch.zeros(hidden_dim))def forward(self,x):B,seq_L,C=x.shapemean=x.mean(dim=-1,keepdim=True)std=x.std(dim=-1,keepdim=True)out=(x-mean)/(std+self.eps)out=out*self.gamma+self.betareturn out
if __name__=="__main__":tensor_input=torch.rand(5,10,8)model=LayerNormalization(8)res=model(tensor_input)print(res)
http://www.lryc.cn/news/440798.html

相关文章:

  • 出厂非澎湃OS手机解BL锁
  • Go语言错误处理之道:优雅地应对程序中的问题
  • LIMS实验室管理系统的特点
  • vue之 package.json和package-lock.json
  • android 老项目中用到的jar包不存在,通过离线的方法加载
  • 每天五分钟玩转深度学习框架PyTorch:梯度下降之学习率衰减
  • 智能家居配上高颜值UI,瞬间感觉消费不起了呢
  • Winform登录实现及工具栏切换
  • Git bash使用
  • Java入门程序-HelloWorld
  • 计算机人工智能前沿进展-大语言模型方向-2024-09-12
  • Android MediaPlayer + GLSurfaceView 播放视频
  • gitee远程仓库OPEN GIT BASH HERE从错误中学习
  • 如何查看当前系统中所有具有sudo权限的用户?
  • 在线制作PPT组织架构图!这个AI工具简单又好用!
  • Mysql 视图存储过程触发器
  • 【天池比赛】【零基础入门金融风控 Task2赛题理解】实战进行中……20240915更新至2.3.4.3 查看训练集测试集中特征属性只有一值的特征
  • 配置Windows内核开发环境
  • nanoGPT用红楼梦数据从头训练babyGPT-12.32M实现任意问答
  • PDF转图片的思路思考
  • lnmp - 登录技术方案设计与实现
  • 如何在 Qt 的 QListWidget 中逐行添加和显示数据
  • Java API 之集合框架进阶
  • Java String isEmpty()方法
  • Redisson分布式锁分析,可重入、可续锁(看门狗)
  • C++掉血迷宫
  • Spring Boot- 数据库相关问题
  • 秒懂C++之特殊类设计
  • 人工智能学习
  • WINDOWS AGENTARENA:EVALUATING MULTI-MODAL OS AGENTS AT SCALE论文学习