Caffe图像分类之测试

来源:互联网 发布:简述波士顿矩阵分析法 编辑:程序博客网 时间:2024/05/24 06:53

本代码使用Python对caffe框架下的训练模型进行测试,借鉴了网上其他的测试例子,有不足之处,敬请指教!

import numpy as np
import sys,os

caffe_root = ‘/home/xxx/caffe/’ #根目录
sys.path.insert(0, caffe_root + ‘python’)
import caffe
os.chdir(caffe_root)

net_file=’path_to_your_deploy/deploy.prototxt’
caffe_model=’path_to_your_caffemodel/caffemodel’
mean_file=’path_to_your_mean_file/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))

test.txt中存放了测试集中的图片以及其标签,如 A.jpeg 2

labelfile = open(“path_to_your_test_picture_label/test.txt”)
labelstr = labelfile.read()

测试集路径

path = “path_to_test/test/”
files = os.listdir(path)
right = 0.0 #正确个数
sum = 0.0 #测试集大小
for file in files:
temp = “”
im=caffe.io.load_image(path+file)
net.blobs[‘data’].data[…] = transformer.preprocess(‘data’,im)
out = net.forward()
#若你的分类为8分类,则将7改为8,prob为网络输出层的名称,改为自己使用的网络的输出层名称
top = net.blobs[‘prob’].data[0].flatten().argsort()[7]
temp = str(file)+” “+str(top)
if labelstr.find(temp) != -1:
right = right +1
sum = sum +1
print right
print right/sum #打印准确率

原创粉丝点击