caffe入门4:使用训练好的模型对数据分类
2017-04-27 11:53
423 查看
按照之前的设置,我们已经训练好了的模型文件位于$caffe/models/mydata 。
名为caffenet_train_iter_*.caffemodel
我们通过下面的python脚本来利用模型测试其在测试集外的数据的准确率。代码有点丑请见谅。
其中,test.txt内包含图片位置信息以及其对应的标签。我们通过比较预测值和真实值来判断我们的分类是否准确。
输出的count为所有测试图片的数目。
a_count为识别准确的数目。
我使用迭代30000次的模型,测试集的准确率为99.1%,这次较小的数据测试中,准确率为98.319%,偏差不大。
tips:1.测试数据也需要进行256*256的缩放。
2.路径一定要根据自己的文件目录写,写成绝对路径是最靠谱的。
名为caffenet_train_iter_*.caffemodel
我们通过下面的python脚本来利用模型测试其在测试集外的数据的准确率。代码有点丑请见谅。
import numpy as np import sys,os caffe_root = '/home/will/deepLearning/caffe-ssd/' sys.path.insert(0, caffe_root + 'python') import caffe os.chdir(caffe_root) net_file=caffe_root + 'models/yangshuang/deploy.prototxt' caffe_model=caffe_root + 'models/yangshuang/caffenet_train_iter_40000.caffemodel' mean_file=caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy' net = caffe.Net(net_file,caffe_model,caffe.TEST) transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) transformer.set_transpose('data', (2,0,1)) transformer.set_mean('data', np.load(mean_file).mean(1).mean(1)) transformer.set_raw_scale('data', 255) transformer.set_channel_swap('data', (2,1,0)) file=open("$caffe/data/mydata/test.txt") path="$caffe/data/mydata/test/" count=0 a_count=0 for line in file: pic_name=line.split(" ")[0] label=int(line.split(" ")[1].strip("\n").strip()) im=caffe.io.load_image(path+pic_name) net.blobs['data'].data[...] = transformer.preprocess('data',im) out = net.forward() #magenet_labels_filename = caffe_root + 'data/ilsvrc12/synset_words.txt' #labels = np.loadtxt(imagenet_labels_filename, str, delimiter='\t') top_1 = net.blobs['prob'].data[0].flatten().argsort()[-1] if top_1==label: print "true" a_count=a_count+1 else: print pic_name count=count+1 print "count:"+str(count) print "a_count:"+str(a_count) file.close()
其中,test.txt内包含图片位置信息以及其对应的标签。我们通过比较预测值和真实值来判断我们的分类是否准确。
输出的count为所有测试图片的数目。
a_count为识别准确的数目。
我使用迭代30000次的模型,测试集的准确率为99.1%,这次较小的数据测试中,准确率为98.319%,偏差不大。
zuoqianluntai/54f919d0d53b6873502.jpg 6 zuoqianluntai/54f91ae477a49930823.jpg 6 zuoqianluntai/54f91c3818d23717626.jpg 6 zuoqianluntai/54f919d2b39e8606663.jpg 6 zuoqianluntai/54f909781e5be111303.jpg 6 zuoqianluntai/54f90c962b62c641014.jpg 6 zuoqianluntai/54f915f3436c6806515.jpg 6 zuoqianluntai/54f919752883b784886.jpg 6 zuoqianluntai/54f91d10f169c520858.jpg 6
tips:1.测试数据也需要进行256*256的缩放。
2.路径一定要根据自己的文件目录写,写成绝对路径是最靠谱的。
相关文章推荐
- Caffe初试(三)使用caffe的cifar10网络模型训练自己的图片数据
- caffe+python 使用训练好的VGG16模型 对 单张图片进行分类,输出置信度
- win10下使用caffe训练自己的数据,车牌二分类
- 使用caffe训练好的模型进行分类
- 有关Caffe训练好的模型在Python接口下使用分类不准确的问题解决
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- 使用caffe训练一个多标签分类/回归模型
- 使用MATLAB加载训练好的caffe模型进行识别分类
- 【神经网络与深度学习】Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- caffe 09 win10 使用训练好模型为给定图片分类
- 使用caffe训练一个多标签分类/回归模型
- 【Caffe的C++接口使用说明(三)】Ubuntu14.04下Caffe利用训练好的模型进行分类的C++接口使用说明(三)
- caffe 框架下微调已有模型训练自己的数据实现图像分类
- caffe训练模型后,使用模型测试的分类结果全部都是相同的
- [原]有关Caffe训练好的模型在Python接口下使用分类不准确的问题解决
- Caffe深度学习入门—— caffenet 微调网络 训练自己的数据并测试训练的模型
- Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- 爬取百度图片各种狗狗的图片,使用caffe训练模型分类
- caffe+python 使用训练好的VGG16模型 对 单张图片进行分类,输出置信度