这个索引帮助读者从 Caffe 的核心数据结构逐步走到完整训练流程。仓库是部分源码快照,因此链接只覆盖当前实际收录的文件。
caffe/include/caffe/blob.hpp:形状、容量、数据和梯度接口。caffe/src/caffe/blob.cpp:内存申请、形状变换、序列化和数值统计。
阅读目标:理解 data、diff、shape、count 和 capacity 的关系。
caffe/include/caffe/layer.hpp:层的生命周期以及SetUp、Forward、Backward接口。caffe/src/caffe/layer.cpp:基类默认实现和模板实例化。caffe/include/caffe/layer_factory.hpp:层注册与创建机制。
阅读目标:理解参数如何进入层、底层和顶层 Blob 如何连接,以及 CPU/GPU 实现如何分派。
caffe/include/caffe/net.hpp:网络持有的层、Blob、参数和执行接口。caffe/src/caffe/net.cpp:网络初始化、前向、反向、参数共享和权重载入。caffe/src/caffe/util/insert_splits.cpp:一对多连接时自动插入 Split 层。
阅读目标:沿 Net::Init、ForwardFromTo 和 BackwardFromTo 跟踪完整计算图。
caffe/include/caffe/solver.hpp:求解器接口、回调、测试网络和快照状态。caffe/src/caffe/solver.cpp:初始化、迭代、测试、保存和恢复。caffe/src/caffe/solvers/sgd_solver.cpp:学习率、动量、正则化和参数更新。caffe/include/caffe/solver_factory.hpp:不同求解器的注册机制。
阅读目标:从 Solve 进入 Step,再跟踪 Net::ForwardBackward 和 ApplyUpdate。
caffe/include/caffe/syncedmem.hpp与caffe/src/caffe/syncedmem.cpp:CPU/GPU 内存状态同步。caffe/src/caffe/util/io.cpp:模型、均值文件和图像数据读写。caffe/src/caffe/util/math_functions.cpp:CPU 数学运算封装。caffe/src/caffe/layers/base_conv_layer.cpp:卷积层共享逻辑。caffe/src/caffe/layers/conv_layer.cpp:卷积前向和反向流程。caffe/src/caffe/layers/pooling_layer.cpp:池化实现。
运行下面的命令可列出中文注释行最多的文件:
python3 scripts/annotation_stats.py --top 20该统计只判断源码行中是否包含中文字符,不代表注释的正确性、完整性或原创归属。