在深度学习过程中,获取数据集后,在搭建自己的网络之前需要进行的是微调,通过别人现有的网络观察自己数据的实验结果,并在此基础上,初步确定自己网络的大体结构,其中微调的步骤主要有以下几步:
1) 获取已有网络的结构(prototxt)和网络参数(caffemodel),可以从网上下载经典的网络模型与网络结构
2) 准备好自己的数据集,一般情况下转换成为lmdb格式。
3) 关于均值的计算,可以直接用caffe中的 make_imagenet_mean.sh文件进行计算,有的网络结构种不含有这个参数。
4) 根据的自己的需要将最后的全连接的层该为自己所需要的输出,比如是10分类,最后的output就是10,同时改变最后一层的名字,只要不与原来的相同即可。
5) 最后是使用caffe的工具将fine-tuning的网络跑起来进行训练。
下面是对微调过程中出现的情况的举例说明
a) 用lenet模型时,图片通道数不一样,lenet使用一通道,我们的图片是rgb三通道。这个就需要改变这个第一层卷积的名字,与原始的conv1要不一样。
b) 在进行微调时,当输入图片大小不一样时,全连接的第一层名字没有进行修改,进入全连接层的参数不一样,需要重新命名,需要修改第一层全连接的名字。