从零实现两层神经网络

从零实现两层神经网络
从零实现两层神经网络
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

已在项目中添加友情链接

截屏2026-04-16 23.28.52

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


各位L大佬好,最近在钻研深度学习的底层数学原理,总觉得直接调包(PyTorch/TensorFlow)虽然爽,但对反向传播、权重衰减这些细节的理解总隔着一层雾。于是花了一点时间,撸了一个仅依赖 NumPy 的手写数字识别项目。

【项目简介】 项目地址:https://github.com/leonyangdev/digit-recognizer 这是一个面向学习者的开源项目,实现了从零构建一个两层神经网络。

小册文档地址:从零实现两层神经网络

【核心亮点】

  1. 零框架依赖:除了数学计算库 NumPy,没有使用任何深度学习框架,代码逻辑一眼到底。
  2. 硬核实现
  • 完整实现了前向传播与反向传播。
  • 加入了 AdamW 优化器(在实现过程中纠正了关于 Weight Decay 和梯度波动关系的不少理解误区)。
  • 包含 Cross-Entropy Loss 的推导逻辑。
  1. 适合人群
  • 跟我一样喜欢想看看数学公式如何变代码的同学。
  • 想了解神经网络底层“加减乘除”到底是怎么运作的极客。

训练截图

trainingresults

【求支持】 如果这个项目对你有启发,或者你也喜欢这种“不造轮子不舒服”的风格,欢迎点个 Star 支持一下! 也欢迎大家在评论区交流关于深度学习底层实现的各种坑,或者是对代码结构改进的建议。

3 个帖子 - 3 位参与者

阅读完整话题

来源: linux.do查看原文