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

《Born》第9章:神经网络模块——从 Linear 到 Transformer Block

Born 的nn包提供了 20+ 原生模块,从最简单的全连接层到完整的 Transformer Block。所有模块都实现了统一的接口。


统一模块接口

typeModule[T DType,B Backend]interface{Forward(x Tensor[T,B])Tensor[T,B]Parameters()[]Tensor[T,B]To(B)Module[T,B]// 切换后端}

基础模块

// 全连接层linear:=nn.NewLinear[float32](784,128,backend)// 卷积层conv:=nn.NewConv2D[float32](1,32,3,backend)// 输入1通道,输出32通道,核3×3// 激活函数relu:=nn.NewReLU[float32]()silu:=nn.NewSiLU[float32]()// 归一化layerNorm:=nn.NewLayerNorm[float32](128,backend)rmsNorm:=nn.NewRMSNorm[float32](128,backend)// LLaMA 使用

容器模块

// Sequential:按顺序执行model:=nn.NewSequential[float32](nn.NewLinear[float32](784,128,backend),nn.NewReLU[float32](),nn.NewLinear[float32](128,10,backend),)output:=model.Forward(input)

Transformer Block(LLaMA 风格)

typeTransformerBlock[T DType,B Backend]struct{Norm1*RMSNorm[T,B]// 预归一化Attention*GQA[T,B]// 分组查询注意力Norm2*RMSNorm[T,B]FFN*SwiGLUFFN[T,B]// SwiGLU 前馈网络}func(b*TransformerBlock[T,B])Forward(x Tensor[T,B])Tensor[T,B]{// 预归一化 + 残差连接h:=x.Add(b.Attention.Forward(b.Norm1.Forward(x)))// 前馈 + 残差连接out:=h.Add(b.FFN.Forward(b.Norm2.Forward(h)))returnout}

这是 LLaMA/Mistral/DeepSeek 的核心架构。


参数初始化

// Xavier/Glorot 初始化(适用于 tanh/sigmoid)nn.Xavier(linear.Weight)// Kaiming 初始化(适用于 ReLU)nn.Kaiming(linear.Weight)

📘 《Born》连载技术书,第 9/22 章。

http://www.zskr.cn/news/1528430.html

相关文章:

  • 2026云南避坑持证导游推荐TOP3纯玩无购物,本地人私藏,费用路线 - 旅游发布
  • 【Springboot毕设全套源码+文档】基于Java+springboot在线书籍商城系统的设计和开发(丰富项目+远程调试+讲解+定制)
  • Pandas读取CSV/Excel/JSON/HTML四大文件格式实战指南
  • 德阳市黄金回收门店推荐 五家靠谱店铺TOP排行榜及联系方式地址电话+白银回收+铂金回收+彩金回收当场结算 - 大熊猫898989
  • 轻量级模型服务化实战:Nginx+Gunicorn+Flask部署PyTorch模型
  • 用Logisim搞定HUST单总线CPU设计:从微程序到跑通sort-5.hex的保姆级排错指南
  • LLM幻觉真相:它根本不会撒谎,因为它从不知道什么是真
  • DDrawCompat终极指南:让Windows 11流畅运行经典DirectX老游戏的完整解决方案 [特殊字符]
  • 2026年6月15日成都市场钢板经销商出厂价格及钢厂调价 - 四川盛世钢联营销中心
  • MPC8560 TSEC网络驱动开发:内存映射与寄存器编程实战指南
  • HT1622驱动段码屏避坑指南:从数据手册到稳定显示,我踩过的那些坑
  • 开源大模型落地困境:算力成本、数据闭环与工程化瓶颈
  • 别只写博客了!用Jekyll + Gitee/GitHub Pages打造你的个人技术门户(集成简历、项目文档、在线PPT)
  • 自编码器实战失效边界与工业级调优指南
  • 谷歌官宣3万字路线图:1亿人类水平的AI就是ASI!
  • 别只盯着代码!MPU6050数据读数为零的硬件排查指南(附原理图与示波器实测)
  • CIFAR-10图像分类避坑指南:用PyTorch复现VGG-16时,我踩过的那些坑
  • 机器学习预处理实战:从物理意义到可复用流水线
  • 【Springboot毕设全套源码+文档】基于Java+springboot企业资产管理系统(丰富项目+远程调试+讲解+定制)
  • 除了写博客,我这样用Beautiful Jekyll和Gitee Pages搭建了个人简历和项目文档站
  • 咨询600镍基合金价格费用,选购时注意什么 - myqiye
  • STM32定时器避坑指南:从内部时钟到ETR外部时钟,配置时基单元的5个常见错误
  • Vivado仿真波形周期不准?手把手教你排查跑马灯时序问题(Verilog避坑指南)
  • 从MCU到MPU:瑞萨RZN2L上手初体验,给Cortex-M工程师的Cortex-R52入门避坑指南
  • 图片怎么去水印?2026免费工具实测推荐
  • SAP采购订单定价不准?手把手教你用VOFM例程701搞定ZRA4条件类型
  • 给戴尔R720xd换张卡吧:实测H710P解决ESXi 7.0.3不认盘的坑
  • 别再让Segmentation Fault折磨你:用GDB和Valgrind快速定位C/C++内存访问错误
  • pandas多维聚合实战:从groupby到滚动窗口的工程化落地
  • 2026年视频号视频保存到相册的实用方法