caffe--python版利用训练好模型进行测试

本文介绍了如何在Caffe中实现网络边训练边测试,涉及solver.prototxt和train.prototxt的修改,以及如何添加自定义输出层。此外,还分享了使用已训练模型进行单张或多张图片测试的Python脚本,包括环境配置、结果保存和类别文件格式。作者探讨了测试阶段loss被忽略的原因,并寻求提高测试阶段precision和recall的方法。
摘要由CSDN通过智能技术生成

小鱼最近在caffe上用faster rcnn网络进行目标的检测,但是网络是先按设置好的训练迭代次数进行训练,得到训练模型之后进行一次性的测试(这里小鱼认为是验证更合理),最终网络得到的输出只有train net output的四个输出。下面为某次迭代的输出结果:

I1224 13:55:23.250411 16953 solver.cpp:229] Iteration 20000, loss = 0.179466
I1224 13:55:23.250457 16953 solver.cpp:245]     Train net output #0: loss_bbox = 0.0858043 (* 1 = 0.0858043 loss)
I1224 13:55:23.250463 16953 solver.cpp:245]     Train net output #1: loss_cls = 0.106088 (* 1 = 0.106088 loss)
I1224 13:55:23.250465 16953 solver.cpp:245]     Train net output #2: rpn_cls_loss = 0.000335818 (* 1 = 0.000335818 loss)
I1224 13:55:23.250469 16953 solver.cpp:245]     Train net output #3: rpn_loss_bbox = 0.00807029 (* 1 = 0.00807029 loss)
I1224 13:55:23.250474 16953 sgd_solver.cpp:106] Iteration 20000, lr = 0.001

但是只得到训练阶段的结果没有太大的意义,如果可以让网络边训练边测试,并且输出自己想要的结果那就完美了。
A.实现让网络边训练边测试方法

有两个地方需要改,第一是solver.prototxt文件

train_net: "models/pascal_voc/VGG16/faster_rcnn_end2end/train.prototxt"
test_net: "models/pascal_voc/VGG16/faster_rcnn_end2end/test.prototxt"
test_iter:10
test_interval:100

加入训练和测试的配置文件,并且加入训练多少次测试一次的参数。
其中test_iter为测试时要迭代的次数,iter_iter*batchsize要等于或大于测试集的数量
test_interval表示训练的时候每迭代多少次进行一次训练
关于改两个参数还有不懂可参考:test_iter test_interval等概念
第二个需要修改的地方为train.prototxt文件,加入你想要的输出层,比如这里是加入accuracy精度层

layer {
  name: "accuracy"
  type: "Accuracy"
  bottom: "cls_score"
  bottom: "labels
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值