Caffe代码学习
1. cifar10_quick_solver.prototxt:方案配置,用于配置迭代次数等信息,训练时直接调用caffe train指定这个文件,就会开始训练
2. cifar10_quick_train_test.prototxt:训练网络配置,用来设置训练用的网络,这个文件的名字会solver. prototxt里指定
3. cifar10_quick_iter_4000.caffemodel.h5:训练出来的模型,后面就用这个模型来做分类
4. cifar10_quick_iter_4000.solverstate.h5:也是训练出来的,应该是用来中断后继续训练用的文件
5. cifar10_quick.prototxt:分类用的网络
模型描述在examples/cifar10/cifar10_quick_solver.prototxt和examples/cifar10/cifar10_quick_train_test.prototxt中。
模型训练时执行train_quick.sh
1. caffe/examples/minst/lenet_train_test.prototxt是lenet的网络模型
2. mnist/lenet_solver.prototxt是用来训练/预测网络描述文件,就是定义训练中的参数
3. blob的4维作用是用来储存和交换数据。维度从低到高位(width_, height_, channels_, num_), width_和height_表示图像的宽和高度,channels_表示颜色通道RGB,num_表示第几帧,用于储存数据或权值(data)和权值增量(diff),在进行网络计算时,每层的输入,输出都需要通过Blob对象缓冲。Blob是Caffe的基本存储单元。
4. 注意到Caffe类中成员变量名都带有后缀“_”
5. 先看proto, blob,在layer,再看net,看代码的顺序
根据net中在看layer中的代码,
做创新点可以修改网络结构可以改proto,也可以自己设计网络结构在layer中,但是需要在proto中添加,在看net时可以参考pooing和卷积