一、caffe下载
caffe的下载是个麻烦的过程,真是废了九牛二虎之力。分CPU版本和GPU版本。在GPU版本中需要使用到CUDA驱动,所以显卡必须是英伟达(Nvidia)的显卡。可通过以下命令检验显卡类型:
lspic | grep -i vga
如果有输出代表是N卡,没有输出就不是N卡。下载caffe只能够下载CPU版本。CPU版本的下载比GPU版本的下载简单很多,但苍天逃过谁:训练的时候报应就来了——CPU版本实在太慢了!!!
因为我的电脑没有N卡,所有我下载的caffe的CPU版本。虽然下载简单,但也要找对方法。网上方法实在太多,但最后成功的却寥寥无几。再次我推荐一篇博客,亲测有效!(同时再次感谢博主大大提供的好方法!!!)
CPU版本caffe下载博客:https://blog.csdn.net/lkj345/article/details/51280369link
注意:我的Linux版本为ubuntu16.04,版本不同下载方法可能会有差异,一切以实践为主,本文仅供参考!
二、文件介绍
caffe下载之后会生成各种文件,下面做一个简单的介绍(其实我不是特别懂,只能看一点皮毛出来)
caffe/docs/tutorial/layers 中包含各层的模板,以及详细的介绍
caffe/docs/tutorial中包括介绍各个过程的.md文件,应该逐个阅读以了解过程
caffe/include/caffe中包括blob,layer,net,solver各类的头文件
caffe/src/caffe中包括blob,layer,net,solver。各类的具体实现过程
根本文件caffe.proto位于caffe/src/caffe/proto
caffe/src/caffe/layers中包括各种类型层的.cpp/.cu文件
caffe/src/caffe/solvers中包括各种类型优化器的.cpp/.cu文件
caffe/src.caffe/test中包括各种测试集的.cpp的文件
caffe/toos中包括特殊工具的.cpp实现例如:转换数据类型等
caffe/include/caffe/blob(.hpp)聚焦于数据的四个维度:数字,频度,高度,宽度。提供修改数据的函数,主要对data和diff做修改。使用很多同名但是参数个数不同的函数
caffe/include/caffe/data_transform声明了各种transform函数,适用于把各种类型的数据转化至LMDB/leveldb(但文件中并未出现该两种词汇,猜测这两种还不是数据类型)
caffe/include/caffe//filler用于填充数字,类型包括:constant,gasssian等
caffe/include/caffe/layer声明layer中需要的各种功能,主要包括改变bottom和top的大小,或者统计bottom和top的大小。另外一个主要的部分是forward/backword(返回值是loss),包括CPU/GPU版本的声明
caffe/include/caffe/net从网络角度看,包括一些统一调配各层的函数,如统一修改权值。参数包括训练阶段的选择:train/test。在net中也存在forward and backward但是与之前的大大不同。
在此再推荐一本学习caffe的书:《21天实战Caffe》。作者也是写博客出身,语言幽默风趣,内容通俗易懂(此处省略一万字赞美之言)。
本文作者水平有限,如有错误之处,请务必下方评论区指出,谢谢!