了解caffe库

Understanding caffe library

我使用 caffe 深度学习库。

我对图书馆的工作方式有点困惑。

我理解的是

net.cpp, net.h 中的 API 是用户应用程序的接口。

net.cpp, net.h 使用来自 caffe.pb.cc, caffe.pb.h.

的 API

我混淆的是

(1)caffe/src/caffe/layerscaffe.pb.cc, caffe.pb.h层之间的关系是什么?

(2)这个classNetParameter inside caffe.pb.h是做什么的,它的目的是什么?

(3)这个caffe.pb是做什么用的?

Caffe 使用google protocol buffer ("pb") 来定义网络结构。当 creating/downloading caffe 模型时,您将看到 'train.prototxt''deploy.prototxt' 文件。这些文件是根据caffe的protocol buffer语法编写的(在caffe.proto中定义)。
然后将此协议缓冲区编译为在自动生成的 caffe.pb.cccaffe.pb.h 文件中定义的 c++ 接口。

NetParameter结构是caffe.proto中定义的数据类型,负责表示"net"。各个层的功能实现可以在 src/caffe/layers/*.cpp 文件中找到。