我想了解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做了什么?我的意思是如何理解他们在形成这个咖啡深度学习网络中的作用。
答案 0 :(得分:3)
您正确理解caffe通过堆叠"层来实现深度学习。一个在另一个之上形成一个" net"。
<强> 'net.cpp'
强>
每一层都作为一个&#34;功能块&#34;其行为/实施在src/caffe/layers/<layer>.cpp
,src/caffe/layers/<layer>.cu
和include/caffe/layers/<layer>.hpp
中定义
实际上&#34;堆栈&#34;的代码所有层都可以在net.cpp
中找到(大部分)。
'caffe.pb.h'
,'caffe.pb.cc'
为了定义特定深层网络体系结构的特定结构(例如,AlexNet,GoogLeNet,ResNet等),caffe使用protocol-buffers库。 caffe协议缓冲区的具体格式在src/caffe/proto/caffe.proto
中定义。 caffe.proto
是&#34;已编译&#34;使用google protobuffer编译器生成'caffe.pb.h'
和'caffe.pb.cc'
c ++代码,用于解析和处理caffe prototxt
和caffemodel
文件。