在Caffe的训练过程中打印验证集的预测结果
起因: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的训练过程中打印验证集的预测结果相关推荐
- 深度神经网络训练过程中为什么验证集上波动很大_图神经网络的新基准
作者 | 李光明 编辑 | 贾 伟 编者注:本文解读论文与我们曾发文章<Bengio 团队力作:GNN 对比基准横空出世,图神经网络的「ImageNet」来了>所解读论文,为同一篇,不同作 ...
- 训练过程中的train,val,test的区别
train是训练集,val是训练过程中的测试集,是为了让你在边训练边看到训练的结果,及时判断学习状态.test就是训练模型结束后,用于评价模型结果的测试集.只有train就可以训练,val不是必须的 ...
- [机器学习] 训练过程中的train,val,test的区别
转自:Caffe训练过程中的train,val,test的区别. 训练过程中的train,val,test的区别 val是validation的简称. training dataset和validat ...
- 理解YOLOv2训练过程中输出参数含义
转载自https://blog.csdn.net/dcrmg/article/details/78565440 原英文地址: https://timebutt.github.io/static/und ...
- DeepLearning tutorial(2)机器学习算法在训练过程中保存参数
FROM: http://blog.csdn.net/u012162613/article/details/43169019 DeepLearning tutorial(2)机器学习算法在训练过程中保 ...
- ubuntu16.04下Caffe绘制训练过程的loss和accuracy曲线
在利用Caffe训练相应的网络模型后,往往需要绘制训练过程中的数据,这样可以更加直观地展示我们的实验结果,事实上,caffe自带了这样的小工具,当然你也可以自己写个代码,下面分别介绍这两种方法: (一 ...
- cph = CoxPHFitter()训练过程中遇到的坑以及画图
画图报错:会报valueError,原因是可能画图软件没有达到指定版本; 解决方案:(1)更新plt,安装最新的到0.17;可能还会需要安装最新的lifelines; DataFrames的画图: 参 ...
- 论文阅读|训练过程中动态改变训练方案的Dynamic R-CNN
目录 论文相关信息 Abstract. 1 Introduction 2 Related Work 3 Dynamic Quality in the Training Procedure 3.1 Pr ...
- Pytorch在训练过程中常见的问题
1 Input type (CUDAFloatTensor) and weight type (CPUFloatTensor) should be the same 仔细看错误信息,CUDA和CPU, ...
最新文章
- java 与jni转码_Android第十五课 Jni自带的iconv库不支持GBK转码
- 关于微信支付冲突的问题
- wpf 点击某控件范围之外的区域 该控件隐藏_iOS平台设计规范(八)控件Controls...
- 最全Pycharm教程
- sqlserver建表语句_重新认识MySQL中的COUNT语句
- c/c++ 字符串分割
- HDU ACM Steps攻略 ACM Steps的全部内容
- iPhone 12系列又有新变化:免费的有线耳机可能不再有
- MYSQL学习(一) - 数据结构
- AI 时代,为何机器人公司无法盈利只能走向倒闭?
- LeetCode 515. Find Largest Value in Each Tree Row
- base64位 解码图片
- system.data.oracleclient requires oracle client software version 8.1.7 or greater问题(转贴)
- iOS,Core Graphics
- Java工程师的职业规划
- win10装kali linux双系统,win10安装kali组成双系统攻略
- linux获取软电话信息,完整的SIP软电话工程实施过程
- BIM技术之Dynamo图元编程:柱、球面坐标系节点绘制螺旋线
- matlab两矩阵乘除,MATLAB矩阵乘法
- HTML学生个人网站作业设计:旅游景点网站设计——北京故宫(9页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载