了解caffe库

时间:2017-02-14 09:23:34

标签: neural-network protocol-buffers deep-learning caffe

我想了解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做了什么?我的意思是如何理解他们在形成这个咖啡深度学习网络中的作用。

1 个答案:

答案 0 :(得分:3)

您正确理解caffe通过堆叠"层来实现深度学习。一个在另一个之上形成一个" net"。

<强> 'net.cpp'
每一层都作为一个&#34;功能块&#34;其行为/实施在src/caffe/layers/<layer>.cppsrc/caffe/layers/<layer>.cuinclude/caffe/layers/<layer>.hpp中定义 实际上&#34;堆栈&#34;的代码所有层都可以在net.cpp中找到(大部分)。

'caffe.pb.h''caffe.pb.cc'
为了定义特定深层网络体系结构的特定结构(例如,AlexNet,GoogLeNet,ResNet等),caffe使用库。 caffe协议缓冲区的具体格式在src/caffe/proto/caffe.proto中定义。 caffe.proto是&#34;已编译&#34;使用google protobuffer编译器生成'caffe.pb.h''caffe.pb.cc' c ++代码,用于解析和处理caffe prototxtcaffemodel文件。