起因:Caffe里的GoogLeNet Inception V1只能输出对应于三个loss的accuracy,我想计算precision,recall和F1-measure。但是调用caffe的Python接口,结合训练集的mean文件、caffemodel文件和deploy.protxt文件对验证集预测,但是分类的结果错误很多,与网络训练输出的accuracy不符。我推断是训练样本是灰度图的问题,由于时间紧迫暂时没找到合适的解决办法。因此想到了在网络训练过程中打印验证集的预测结果作为权宜之计。

1.把create_imagenet.sh里生成val lmdb的shuffle项设置为false,也就是不打乱val集的数据。val可以自己先前制作数据集时预先打乱。

2.把train_val.protxt里val的batch_size设置为自己的验证集大小,比如我的验证集是67张图片

3.在网络的最后添加一个Softmax层和ArgMax层。图中最后一层是loss3/top-1是因为之前为了切合我们自己的分类任务删除了"loss3/top-5".ArgMax层的作用可以参考Caffe官网文档,Caffe: caffe::ArgMaxLayer< Dtype > Class Template Reference  http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1ArgMaxLayer.html。简单来说就是用以在一个分类层后生成预测结果。

4.最后的训练日志在测试时应该如下图

这样就得到val的预测结果。由于没有打乱数据,对应val集的标签可以很容易计算出每一类的precision,recall和F1-measure

当然这只是权宜之计。以后会研究为什么python接口对val集的图片预测不正确,因为之前和同学讨论官网的python分类脚本预测RGB图像是正确的,那么应该是需要针对灰度图像做出一定的修改。

在Caffe的训练过程中打印验证集的预测结果相关推荐

  1. 深度神经网络训练过程中为什么验证集上波动很大_图神经网络的新基准

    作者 | 李光明 编辑 | 贾 伟 编者注:本文解读论文与我们曾发文章<Bengio 团队力作:GNN 对比基准横空出世,图神经网络的「ImageNet」来了>所解读论文,为同一篇,不同作 ...

  2. 训练过程中的train,val,test的区别

     train是训练集,val是训练过程中的测试集,是为了让你在边训练边看到训练的结果,及时判断学习状态.test就是训练模型结束后,用于评价模型结果的测试集.只有train就可以训练,val不是必须的 ...

  3. [机器学习] 训练过程中的train,val,test的区别

    转自:Caffe训练过程中的train,val,test的区别. 训练过程中的train,val,test的区别 val是validation的简称. training dataset和validat ...

  4. 理解YOLOv2训练过程中输出参数含义

    转载自https://blog.csdn.net/dcrmg/article/details/78565440 原英文地址: https://timebutt.github.io/static/und ...

  5. DeepLearning tutorial(2)机器学习算法在训练过程中保存参数

    FROM: http://blog.csdn.net/u012162613/article/details/43169019 DeepLearning tutorial(2)机器学习算法在训练过程中保 ...

  6. ubuntu16.04下Caffe绘制训练过程的loss和accuracy曲线

    在利用Caffe训练相应的网络模型后,往往需要绘制训练过程中的数据,这样可以更加直观地展示我们的实验结果,事实上,caffe自带了这样的小工具,当然你也可以自己写个代码,下面分别介绍这两种方法: (一 ...

  7. cph = CoxPHFitter()训练过程中遇到的坑以及画图

    画图报错:会报valueError,原因是可能画图软件没有达到指定版本; 解决方案:(1)更新plt,安装最新的到0.17;可能还会需要安装最新的lifelines; DataFrames的画图: 参 ...

  8. 论文阅读|训练过程中动态改变训练方案的Dynamic R-CNN

    目录 论文相关信息 Abstract. 1 Introduction 2 Related Work 3 Dynamic Quality in the Training Procedure 3.1 Pr ...

  9. Pytorch在训练过程中常见的问题

    1 Input type (CUDAFloatTensor) and weight type (CPUFloatTensor) should be the same 仔细看错误信息,CUDA和CPU, ...

最新文章

  1. java 与jni转码_Android第十五课 Jni自带的iconv库不支持GBK转码
  2. 关于微信支付冲突的问题
  3. wpf 点击某控件范围之外的区域 该控件隐藏_iOS平台设计规范(八)控件Controls...
  4. 最全Pycharm教程
  5. sqlserver建表语句_重新认识MySQL中的COUNT语句
  6. c/c++ 字符串分割
  7. HDU ACM Steps攻略 ACM Steps的全部内容
  8. iPhone 12系列又有新变化:免费的有线耳机可能不再有
  9. MYSQL学习(一) - 数据结构
  10. AI 时代,为何机器人公司无法盈利只能走向倒闭?
  11. LeetCode 515. Find Largest Value in Each Tree Row
  12. base64位 解码图片
  13. system.data.oracleclient requires oracle client software version 8.1.7 or greater问题(转贴)
  14. iOS,Core Graphics
  15. Java工程师的职业规划
  16. win10装kali linux双系统,win10安装kali组成双系统攻略
  17. linux获取软电话信息,完整的SIP软电话工程实施过程
  18. BIM技术之Dynamo图元编程:柱、球面坐标系节点绘制螺旋线
  19. matlab两矩阵乘除,MATLAB矩阵乘法
  20. HTML学生个人网站作业设计:旅游景点网站设计——北京故宫(9页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载

热门文章

  1. TOOM网上舆情应急处置预案,怎么加强网上舆情监控?
  2. 论文:A Deep Hashing Technique for Remote Sensing Image-Sound Retrieval
  3. 二、生理信号处理 ——1.心电信号(含Matlab代码及数据)
  4. ubuntu下制作.c模板
  5. wps思维导图聚焦模式是灰色不能用的解决方案
  6. Java开发谈:java如何开发安卓软件
  7. JBPM4.4学习使用
  8. CC2530—MQ-2气敏式烟雾传感器
  9. MYSQL----innoDB存储引擎
  10. MATLAB——多元函数的极值