Caffe学习:pycaffe利用caffemodel进行分类
2015-09-10 14:17
513 查看
在使用pycaffe定义网络、使用pycaffe进行网络训练与测试之后得到caffemodel
文件,下面利用caffemodel
进行分类:
导入相关库import caffe
配置
# caffemodel文件 MODEL_FILE = 'model/_iter_10000.caffemodel' # deploy文件,参考/caffe/models/bvlc_alexnet/deploy.prototxt DEPLOY_FILE = 'deploy.prototxt' # 测试图片存放文件夹 TEST_ROOT = 'datas/'
GPU模式测试
caffe.set_mode_gpu() net = caffe.Net(DEPLOY_FILE, MODEL_FILE, caffe.TEST)
数据输入预处理
# 'data'对应于deploy文件: # input: "data" # input_dim: 1 # input_dim: 3 # input_dim: 32 # input_dim: 96 transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) # python读取的图片文件格式为H×W×K,需转化为K×H×W transformer.set_transpose('data', (2, 0, 1)) # python中将图片存储为[0, 1],而caffe中将图片存储为[0, 255], # 所以需要一个转换 transformer.set_raw_scale('data', 255) # caffe中图片是BGR格式,而原始格式是RGB,所以要转化 transformer.set_channel_swap('data', (2, 1, 0)) # 将输入图片格式转化为合适格式(与deploy文件相同) net.blobs['data'].reshape(1, 3, 32, 96)
读取图片
# 详见/caffe/python/caffe/io.py img = caffe.io.load_image('temp.jpg') # 读取的图片文件格式为H×W×K,需转化
进行分类
# 数据输入、预处理 net.blobs['data'].data[...] = transformer.preprocess('data', img) # 前向迭代,即分类 out = net.forward() # 输出结果为各个可能分类的概率分布 pridects = out['prob'] # 上述'prob'来源于deploy文件: # layer { # name: "prob" # type: "Softmax" # bottom: "ip2" # top: "prob" # }
最可能分类
pridect = pridects.argmax()
相关文章推荐
- jQuery Mobile发展新闻阅读器,适应iphone和android打电话
- angularjs指令详解
- list_for_each()与list_for_each_safe()的区别
- 解析Jquery取得iframe中元素的几种方法
- javascript语法
- jQuery和Prototype的兼容性和冲突的五种解决方法
- jquery validate 详细说明
- JS window 对象 open方法弹窗实现父子窗口中的参数传递
- 基于HTML5的可预览多图片Ajax上传
- javascript输出
- js 遮罩层请稍后
- HTML5安全:CORS(跨域资源共享)简介
- javascript
- jQuery 将网页中一个表格中的数据已行为最小单元添加到另外的一个表格当中
- 去除jsp执行后,网页源码中的空行
- CSS 之Box-sizing 属性的使用方法
- jQuery1.2.6 好用的AJAX库,库+手册
- HTML5调用本地相机服务(实现代码)
- liferay常用api总结
- JSTL标签 参考手册