了解caffe库

Understanding caffe library

我正在尝试了解 caffe library。为此,我 运行 逐步完成 feature_extraction.cpp 和 classification.cpp。

在那些cpp文件中,我找到了layers, prototxt file, caffemodel, net.cpp, caffe.pb.cc, caffe.pb.h个文件。

我知道caffe是用不同的层形成的。所以使用图层文件夹中的那些图层文件。

prototxt 文件用于特定网络的结构,例如 googlenet、alexnet 等。不同的网络具有不同的结构。

caffemodel 是针对特定类型的网络结构使用 caffe 库训练的模型。

那些 net.cpp、caffe.pb.cc 是做什么的?我的意思是如何理解他们在形成这个caffe深度学习网络中的作用。

你理解正确caffe实现深度学习的方式是"layers"一个堆叠在另一个上面形成一个"net"。

'net.cpp'
每个层都作为一个 "functional block" 工作,其 behavior/implementation 定义在 src/caffe/layers/<layer>.cppsrc/caffe/layers/<layer>.cuinclude/caffe/layers/<layer>.hpp.
中 实际上 "stack" 所有层都变成一个网络的代码可以(大部分)在 net.cpp.

中找到

'caffe.pb.h','caffe.pb.cc'
为了定义特定深度网络架构(例如,AlexNet、GoogLeNet、ResNet 等)的特定结构,caffe 使用 library. The specific format of caffe protocol buffer is defined in src/caffe/proto/caffe.proto. The caffe.proto is "compiled" using google protobuffer 编译器生成 'caffe.pb.h''caffe.pb.cc' c++ 代码用于解析和处理 caffe prototxtcaffemodel 文件。