测试python代码

#!/usr/bin/env python
#coding=utf-8  
#加载必要的库  
import numpy as np  
import sys,os  
#设置当前目录  
caffe_root = '/home/cjj/caffe/'    
sys.path.insert(0, caffe_root + 'python')  
import caffe  
os.chdir(caffe_root)  
#net_file=caffe_root + 'examples/myimagenet/train_alexnet.prototxt'  
net_file=caffe_root + 'models/bvlc_reference_caffenet/deploy.prototxt'      #必须用自带网络文件
caffe_model=caffe_root + 'examples/myimagenet/myimagenet_train_alexnet_iter_200.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))  
im=caffe.io.load_image(caffe_root+'examples/images/510.jpg')  
net.blobs['data'].data[...] = transformer.preprocess('data',im)  
out = net.forward()  
imagenet_labels_filename = caffe_root + 'data/ilsvrc12/type.txt'  
labels = np.loadtxt(imagenet_labels_filename, str, delimiter='\t')  
top_k = net.blobs['prob'].data[0].flatten().argsort()[-1:-3:-1]       #prob最后一层网络  -1.-3设置显示出的种类数,-1表示倒序
for i in np.arange(top_k.size):  

 print top_k[i], labels[top_k[i]] 




#coding=utf-8 
       
import os
import caffe 
import numpy as np 
root = '/home/liuyun/caffe/'   #根目录 
deploy = root + 'examples/DR_grade/deploy.prototxt'    #deploy文件 
caffe_model = root + 'models/DR/model1/DRnet_iter_40000.caffemodel'  #训练好的 caffemodel 
 
 
import os
dir = root + 'examples/DR_grade/test_512/'
filelist = []
filenames = os.listdir( dir )
for fn in filenames:
    fullfilename = os.path.join( dir ,fn)
    filelist.append(fullfilename)
 
 
# img=root+'data/DRIVE/test/60337.jpg'   #随机找的一张待测图片 
 
def Test(img):
      
     net = caffe.Net(deploy,caffe_model,caffe.TEST)   #加载model和network 
       
     #图片预处理设置 
     transformer = caffe.io.Transformer({ 'data' : net.blobs[ 'data' ].data.shape})  #设定图片的shape格式(1,3,28,28) 
     transformer.set_transpose( 'data' , ( 2 , 0 , 1 ))    #改变维度的顺序,由原始图片(28,28,3)变为(3,28,28) 
     #transformer.set_mean('data', np.load(mean_file).mean(1).mean(1))    #减去均值,前面训练模型时没有减均值,这儿就不用 
     transformer.set_raw_scale( 'data' , 255 )    # 缩放到【0,255】之间 
     transformer.set_channel_swap( 'data' , ( 2 , 1 , 0 ))   #交换通道,将图片由RGB变为BGR 
       
     im = caffe.io.load_image(img)                   #加载图片 
     net.blobs[ 'data' ].data[...] = transformer.preprocess( 'data' ,im)      #执行上面设置的图片预处理操作,并将图片载入到blob中 
       
     #执行测试 
     out = net.forward() 
       
     labels = np.loadtxt(labels_filename, str , delimiter = '\t' )   #读取类别名称文件 
     prob = net.blobs[ 'prob' ].data[ 0 ].flatten() #取出最后一层(prob)属于某个类别的概率值,并打印,'prob'为最后一层的名称
     print prob 
     order = prob.argsort()[ 4 #将概率值排序,取出最大值所在的序号 ,9指的是分为0-9十类 
     #argsort()函数是从小到大排列 
     print 'the class is:' ,labels[order]   #将该序号转换成对应的类别名称,并打印 
     f = file ( "/home/liuyun/caffe/examples/DR_grade/label.txt" , "a+" )
     f.writelines(img + ' ' + labels[order] + '\n' )
 
labels_filename = root + 'examples/DR_grade/DR.txt'    #类别名称文件,将数字标签转换回类别名称 
 
for i in range ( 0 , len (filelist)):
     img = filelist[i]
     Test(img)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值