不同于pycaffe利用caffemodel进行分类,这里利用pycaffe包装好的classifier.py来进行分类,详见:/caffe/python/caffe/classifier.py
- 导入相关库
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()
- 网络构建(含数据预处理 => 详见pycaffe利用caffemodel进行分类(1)):
net = caffe.Classifier(MODEL_FILE, PRETRAIN_FILE,
raw_scale=255, channel_swap=(2, 1, 0))
- 读取图片
# 详见/caffe/python/caffe/io.py
img = caffe.io.load_image('temp.jpg')
# 读取的图片文件格式为H×W×K,需转化
- 数据输入,进行分类:
# 需注意第一个参数为数组
# 默认采用过采样(详见**/caffe/python/caffe/io.py**),这里取消
out = net.predict([img], oversample=False)
# 输出结果为各个可能分类的概率分布
- 最可能分类
pridect = out.argmax()