Caffe调参相关问题整理

来源:互联网 发布:软件外包文章 编辑:程序博客网 时间:2024/05/29 16:59


================ 格式 ================

问题n:

问题详细描述

解决办法

参考:

提问者

解答者

================ 格式 ================

 

问题1:二分类训练训练caffe模型中Test score #0:的值一直为0和1两种可能值
       

问题详细描述:用自己制作的数据进行二分类,网络参数采用imagenet设置,训练中Test score #0:的值一直都是1或者0,具体示图如下:


    



解决办法

 经过讨论发现,问题产生的原因主要在如下三个方面:

(1).二分类数据没有进行Shuffling,即进行随机化处理;

(2)没有进行finutune处理;

(3)学习率、batchSize等参数的调整。

 针对(1),要在convert_imagenet.cpp命令中将最后一个参数设置为1,即使如下条件满足:

    if (argc == 5 && argv[4][0] == '1') {
       // randomly shuffle data
       LOG(INFO) << "Shuffling data";
       std::random_shuffle(lines.begin(), lines.end());

     }

 针对(2),要在imagenet_train.prototxt和imagenet_val.prototxt中将fc8重命名,使网络进行finutune。具体位置如下所示:


 针对(3),本人实验中发现,当学习率为0.01时,loss会变成NAN,太大了,当学习率为0.0000001时,学习太慢了,不会跳动,本人最后将学习率设置为0.0001。batchSize设置为10(虽然很小,但是实验中发现没有多少影响)。

 本人训练数据设置中,train两类各1000张图像,val两类各1000张图像。

 训练中,迭代1000次结果如下:

迭代1300次结果如下:

 


迭代4400次结果如下:


    

       可见,一般情况下只要相关设置正确,cnn能对二分类数据进行准确的分类。

 

    参考:http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html


    提问者:立琛


    解答者:辛淼-北航   李波-西工大  刘昕-ICT  卜居-CSDN等




问题2:caffe安装到最后一步,make runtest报错


问题详细描述最后一步,出现如下报错:

"[syncedmen.cpp57] Check failed:error ==cudaSuccess (73 vs.0) an illegal instruction was encountered"或者“Check failed:error ==cudaSuccess (4 vs.0) unspecified launch failure”

解决办法

在Makefiile.config中保留-gencode arch=compute_20,code=sm_20 \
其他选项全部删除。然后make clean 清理下,避免上次错误的cuda代码混入,再接续make。

参考:不是安装出错,是运行出现问题,产生的cuda代码与实际设备不兼容,可能与我的显卡有关系。

提问者:breeze501

解答者:卜居-CSDN


 

===========================================================================

    本blog内容由CCUG群成员共同维护,转载请注明出处,谢谢!

    CCUG 群QQ :431141753

    Caffe源码阅读、开发交流、问题答疑。

===========================================================================


 

0 0
原创粉丝点击