通过前两篇文章,我们已经把训练模型的数据准备好了,并做了需要做的预处理,接下来我们就开始准备网络结构文件,在开始之前呢,我们先列一下清单:
ok,本此我们就是准备其中的train_val.prototxt,deploy.prorotxt,solver.prototxt三个文件,最后的caffemodel文件,相信大家从名字也可以看出来,这个时训练成功后生成的模型参数文件,他涉及到模型的训练,我们放到下一篇来讲解。
一、train_val.prototxt
这个文件呢,是网络的结构文件,一般说设计网络,狭义上就是指的设计这个文件的内容,对于初学者,我建议你们先用简单的模板训练,在看懂的基础上,了解这个文件的结构,以及自己如何去设计这个文件。
caffe自带的demo中有很简单的,也很经典的LeNet、AlexNet、GoogLeNet模型(google为了向经典的LeNet致敬,才将L大写),再次强烈建议大家将这些模型的结构看一遍,弄懂为何这样设计,这对你以后自己去设计网络有很大的启发,当然基本的数理统计算法,比如经典的BP算法、autoencoder、基本的激活函数sigmoid函数LRN函数等等,这些需要根据格个人情况自行补课。
好了,废话不多说,我们马上开始准备train_val.prototxt文件。
我们采用自带的CaffeNet为例,层数少,容易理解,将caffe/models/bvlc_reference_caffenet下的文件全都copy到你的工作目录下。像我一样我把这个文件夹复制到我的工作目录下,并重命名为make_model。
大家打开刚才复制的文件夹,其实三个文件我们都可以找到,我们先打开train_val.prototxt文件,代码如下:
name: "CaffeNet"
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {