执行转移学习Caffe - Googlenet MIT放置模型

时间:2016-09-14 05:04:59

标签: machine-learning deep-learning caffe

我在这个领域比较新。目前我有三种型号:

  1. 模型#1:从头开始训练,但使用googlenet NN 架构
  2. 模型#2:转移学习(finetuning),只使用最后一层 googlenet,然后使用googlenet模型作为初始权重
  3. 模型#3:转移学习(finetuning),使用所有图层并使用 googlenet模型作为初始权重
  4. 模型#2和#3显示出良好的验证准确度(约79%-80%),但是,当我使用测试集(30000张照片)进行测试时,两种模型的性能都很差(错误率:95%) )而#1型使用相同的测试装置达到70%的准确度。

    我担心,由于在这个领域缺乏知识,我在微调现有模型(googlenet)时做错了。根据我从quorastackoverflow获得的指导,我尝试修改train.prototxt。 为了获得模型#2,我所做的是将所有lr_multdecay_mult设置为 0 (零),除了最后一层(在我的情况下将是fc层)。 为了获得模型#3,我使用了所有图层(仅修改最后一层并更改最后一层的num_ouput) 然后我使用以下命令训练模型:

    /root/caffe/build/tools/caffe train --solver my_solver.prototxt -weights googlenet_places365.caffemodel --gpu=0,1,2,3
    

    我的问题是:

    1. 上面提到的步骤(用于获取#2和#3型号) 正确?我错过了一些重要的步骤吗?
    2. 为什么在训练模型时使用验证集的准确性 显示出高价值,但在使用测试时表现非常差 数据(过度拟合)?这件套装的根本原因是什么?
    3. 仅供参考,我有400万张照片,分为三组:训练集(包含70%的照片),验证集(20%的照片)和测试集(10%的照片)。

      非常感谢,我很高兴听到您的任何指南,评论或信息。

0 个答案:

没有答案