Back / 文章

2026/7/11 · 项目日志

NanoMLP:从零手搓 MLP

补充项目说明文档,明确目录结构与编译运行方式。旨在通过 C++ 原生实现理解基础神经网络原理与反向传播过程。

这次变化

本次更新主要完善了项目的 README 文件。明确了仓库主线仅保留 cpp/模型代码和 data/数据集两部分结构,其中数据分为原始 MNIST 与合成测试集。编译指令已标准化,使用 g++ 配合 C++17 标准即可运行生成的可执行文件。这有助于降低上手门槛,让关注点回归到核心逻辑本身,而非环境配置细节。文档中列出了目录树状图,清晰展示了 cpp/下包含 main、dense、matrix等模块的分布情况。

实现与取舍

项目初衷是为了从零理解全连接层、ReLU、softmax 及反向传播等基础概念。不依赖任何深度学习框架意味着需要手动处理矩阵运算和梯度更新。这种选择牺牲了开发效率,但换取了对底层原理的透彻掌握。目前代码仅包含最简模型结构,未涉及优化器或复杂数据加载逻辑,保持轻量级特性。核心文件包括主程序入口、稠密层实现及基础矩阵操作模块,旨在通过最小化依赖来验证数学推导的正确性。对于 MNIST 数据集的处理流程也已在说明中简要提及,确保读者能复现训练与测试过程。这种极简主义风格避免了框架黑盒带来的理解障碍,适合希望深入底层代码的学习者参考使用。