Caffe
核心模块
- Syncedmemory
- Blob
- Layer
- Net
- Solver
- IO
- 多GPU
Syncedmemory是GPU与CPU内存之间的数据交互的封装。
Blob完成操作数据的封装;模型参数和更新量的封装。
Layer表示模型层。
Net表示网络模型,包含Blob数组和Layer数组。
Solver包含Net。可继承出新的更新方法。
IO完成输入数据和初始化。
Caffe未采用符号计算的模式。
Layer
采用工厂方法创建对象。
初始化通过SetUp函数完成,内部主要函数: LayerSetUp、Reshape、SetLossWeights。
前向计算:
Forward_cpu(bottom, top);
for (int top_id = 0; top_id < top.size(); ++top_id) {
if (!this->loss(top_id)) {
continue; }
const int count = top[top_id]->count();
const Dtype* data = top[top_id]->cpu_data();
const Dtype

本文详细介绍了Caffe框架的核心模块,包括Syncedmemory用于GPU-CPU内存同步,Blob和Layer的封装,以及Net和Solver的结构。还探讨了如何通过C++和Python接口实现数据处理、模型组装和参数更新,以及CenterLoss的C++实现。
最低0.47元/天 解锁文章
515

被折叠的 条评论
为什么被折叠?



