迁移学习
有两种方式,一是卷积网络作为固定的特征提取器.拿到一个预训练好的卷积网络,去掉全连接层,吧其余的部分作为一个特征提取器.alex网络会计算一个4096D的特征向量,称之为cnn codes.有了这些特征很容易训练一个线性分类器.
另外一种方式是fine-tuning卷积网络,是本文主要介绍的内容.该方法中不仅替换掉了顶层的全连接层,而且会改变预训练网络中的权值数据.这里既可以改变全部的网络参数,也可以只改变其中一部分的参数.
使用已经训练过的模型参数,经过调整,改变模型的结构,重新开始训练,达到新的最优模型.如果原始的网络中没有新的层需要的层,那么就使用随机的权重.降低base_lr学习的速度,提高新引入的层的学习速度lr_mult.
caffe % ./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0
使用-weight会告知caffe,需要加载一个网络模型,然后再开始训练
model zoo
可以下载其中预训练的模型来使用.