了解caffe库

时间:2017-08-02 06:56:55

标签: machine-learning neural-network deep-learning caffe gradient-descent

我使用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)这个班级NetParameter inside caffe.pb.h做了什么以及它的目的是什么?

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

1 个答案:

答案 0 :(得分:1)

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

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