面向中文读者的 Caffe 源码学习资料。仓库收录了部分 Caffe 核心源码、中文行间注释,以及早期社区教程,重点覆盖 Blob、Layer、Net、Solver 与常用计算层。
本仓库维护为历史源码学习快照。其中的 Caffe 代码来自 2016 年前后的版本,并且只保留了分析所需的部分目录;它不是完整、可直接构建的 Caffe 发行版,也不建议用于生产环境。需要编译或部署 Caffe 时,请使用 BVLC/caffe 或仍在维护的下游版本。
当前维护重点是:
- 修正中文注释中的错误或歧义;
- 补充核心调用链和阅读导航;
- 整理仍有参考价值的历史资料;
- 明确旧代码与现代工具链之间的边界。
- 中文注释索引:按核心概念给出推荐阅读顺序和文件入口。
caffe/include/caffe:核心类型和接口的中文注释。caffe/src/caffe:网络构建、前后向计算、优化与内存管理实现。Caffe教程:历史教程和社区资料。第三方库:gflags、glog、protobuf、LMDB 等依赖的背景资料。IDE调试:旧版 Linux/Eclipse 调试资料,仅作历史参考。
Blob:理解数据、梯度、形状与 CPU/GPU 内存。Layer:理解层的生命周期、参数与前后向接口。Net:理解网络构建、层连接和执行顺序。Solver:理解训练循环、测试、快照与参数更新。SyncedMemory和常用层:继续跟踪内存同步与具体算子实现。
完整路径和每一部分的阅读目标见中文注释索引。原始的流程概览文章仍可参考:Caffe Source Code Analysis。
仓库提供了一个仅依赖 Python 标准库的统计脚本,用于查找包含中文注释的源码文件:
python3 scripts/annotation_stats.py --top 20输出 JSON 便于后续生成文档或自动检查:
python3 scripts/annotation_stats.py --format json欢迎提交注释纠错、阅读路径补充和失效链接修复。提交前请阅读 CONTRIBUTING.md。如果问题涉及真实的 Caffe 安全漏洞,请先阅读 SECURITY.md,并优先联系仍在维护相关代码的上游项目。
部分外部文章可能已经迁移或下线;仓库内保留的资料仅用于学习和历史研究,请尊重原作者及原始资料的许可条款。