我使用caffe库进行深度学习。
我对图书馆的运作方式有点困惑。
我理解的是
net.cpp, net.h
中的API是用户应用程序的接口。
net.cpp, net.h
使用来自caffe.pb.cc, caffe.pb.h
的API。
我感到困惑的是
(1)caffe/src/caffe/layers
和caffe.pb.cc, caffe.pb.h
中的图层之间的关系是什么?
(2)这个班级NetParameter inside caffe.pb.h
做了什么以及它的目的是什么?
(3)这个caffe.pb
是什么?
答案 0 :(得分:1)
Caffe使用谷歌协议缓冲区(" pb")来定义网络结构。在创建/下载caffe模型时,您会看到'train.prototxt'
或'deploy.prototxt'
个文件。这些文件是根据caffe的协议缓冲区语法编写的(在caffe.proto
中定义)
然后将此协议缓冲区编译为c ++接口,该接口在自动生成的caffe.pb.cc
和caffe.pb.h
文件中定义。
NetParameter
结构是caffe.proto
中定义的数据类型,负责表示" net"。可以在src/caffe/layers/*.cpp
个文件中找到各个层的功能实现。