Caffe训练步骤如下,
- Convert data(run a script):
使用Caffe训练的第一步,就是对数据进行处理,把数据打包成数据源的格式,比如LMDB、HDF5,再把数据源交给Caffe训练;
- Define net(edit prototxt):
数据准备工作做好后,第二步就是编写网络配置文件,一般来说有三个,分别是train.prototxt、test.prototxt和deploy.prototxt。以上这几个文件的作用是分别是定义一个网络的训练模型、测试模型和前向推导模型。卷积神经网络有很多种类,网络是由自己定义出来的,定义时只需要写一个配置文件,不需要写代码;
- Define slover(edit prototxt):
还有一个重要的超参数配置文件,就是solver.prototxt。这个配置文件定义一些Solver从而控制超参数,其中会指定train.prototxt和test.prototxt的路径,训练时也是直接指定该配置文件来进行训练的;
- Train(with pretrained weights)(run a script):
上述准备工作做好后,Ubuntu系统中直接调用命令行就能完成训练工作。直接使用 “caffe train + 超参数配置文件solver.prototxt” 命令训练网络,接下来要做的就是等待结果,使用生成的模型文件(*.caffemodel、*.solverstate)测试效果,不断迭代数据、调参的重复过程。
下图是caffe自带的mnist示例(路径:~/caffe/examples/mnist),可以做一个理解的参考。
说明
第二步中定义网络如何定义呢?——先写数据层,再写卷积层,全连接层,每一个层里有很多的参数项。
第三步中定义Solver配置文件,弄清楚所表达的意思。
第四步直接训练就可以了,直接调用命令,在命令中可以指定使用的GPU等选项。
具体例子参考: