CAFFE: Fine-tuning for style recognition


假设现在有一个20类的分类问题,那么最简单的方法就是重新训练一个基于该20类的分类问题。但如果我们已经有一个1000类的模型呢?

我们其实不必大费周张的重新训练一个20类的模型,其实两个模型只有最后一层不一样,即一个的输出为1000维,另一个为20维。那么我们完全

可以将1000类模型除最后一层的其余层拿过来使用,然后再使用现有数据对原模型执行fine-tuning操作,这样可以大大提高训练速度。

 ./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0

如果使用cpu模式,那么最后的-gpu省略。

在套用模型的时候会将层名相同的参数值作为初始值赋值给相应层的参数,那么就要求层名相同的的层的定义要完全一致,假设输出不一致,那么赋值失败。如果在原模型中没有找到相应的层,那么该层的参数初始值与普通训练无异。

为了简单起见,作者将CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt 去掉fc2层得到一个新的模型 lenet_train_test_new.prototxt

然后将对原模型进行find-tuning:

./build/tools/caffe train -solver examples/mnist/lenet_train_test_new.prototxt -weights examples/mnist/lenet.caffemodel

虽没有具体测训练时间,但训练确实是在瞬间完成的!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM