Python调用已训练好的caffe模型进行分类
2016-09-06 10:18
876 查看
python作为强大的解释型语言,其提供的库函数能够方便快速的实现常用的功能。本文用python调用caffe模型。
1.Setup
2.Load caffe
3.Import Net
4.Classifier
结果如下:
1.Setup
# set up Python environment: numpy for numerical routines, and matplotlib for plotting import numpy as np import matplotlib.pyplot as plt # display plots in this notebook %matplotlib inline # set display defaults plt.rcParams['figure.figsize'] = (10, 10) # large images plt.rcParams['image.interpolation'] = 'nearest' # don't interpolate: show square pixels plt.rcParams['image.cmap'] = 'gray' # use grayscale output rather than a (potentially misleading) color heatmap
2.Load caffe
# The caffe module needs to be on the Python path; # we'll add it here explicitly. import sys caffe_root = '/home/ubuntu/caffe/' # this file should be run from {caffe_root}/examples (otherwise change this line) sys.path.insert(0, caffe_root + 'python') import caffe # If you get "No module named _caffe", either you have not built pycaffe or you have the wrong path.
3.Import Net
caffe.set_mode_gpu() model_def = './deploy.prototxt' model_pretrained = './snapshot_iter_6720.caffemodel' # load the mean ImageNet image (as distributed with Caffe) for subtraction MEAN_PROTO_PATH = './mean.binaryproto' #这里是二进制文件,而不是Python的npy文件 blob = caffe.proto.caffe_pb2.BlobProto() data = open(MEAN_PROTO_PATH, 'rb' ).read() blob.ParseFromString(data) array = np.array(caffe.io.blobproto_to_array(blob))# 将blob中的均值转换成numpy格式,array的shape (mean_number,channel, hight, width) mu = array[0] mean = mu.mean(1).mean(1) # average over pixels to obtain the mean (BGR) pixel values net = caffe.Classifier(model_def, model_pretrained,mean=mean, channel_swap=(2,1,0),#RGB通道与BGR raw_scale=255,#把图片归一化到0~1之间 image_dims=(256, 256))#设置输入图片的大小
4.Classifier
label_list=['BAC','Caocx2','MUC','NEG','RBC','SPURM','WBC','XIAOYUAN','YEA','YISHUI'] input_image = caffe.io.load_image('1.jpg')#读取图片 #显示原图片,以及分类预测结果 prediction = net.predict([input_image])#图片分类 str_gender=label_list[prediction[0].argmax()] print str_gender plt.imshow(input_image) plt.title(str_gender) plt.show()
结果如下:
BAC
相关文章推荐
- caffe+python 使用训练好的VGG16模型 对 单张图片进行分类,输出置信度
- caffe+python 使用训练好的VGG16模型 对 单张图片进行分类,输出置信度
- 在c++程序中调用caffe训练完毕的模型进行分类
- 在c++程序中调用caffe训练完毕的模型进行分类
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
- 使用Caffe训练适合自己样本集的AlexNet网络模型,并对其进行分类
- Caffe——python接口学习(6):用训练好的模型来分类新的图片
- 【Caffe的C++接口使用说明(三)】Ubuntu14.04下Caffe利用训练好的模型进行分类的C++接口使用说明(三)
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
- Caffe实战Day5-使用opencv调用caffe模型进行分类
- caffe--python版利用训练好模型进行测试
- caffe python接口:用训练好的模型来分类
- Caffe深度学习入门——python调用caffe训练好的模型检测单帧图片
- python调用caffe模型进行classify时读入mean文件错误:mean shape incompatible with input shape
- caffe19 《深度学习--Caffe之经典模型详解与实战》笔记01 分类测试python调用
- 有关Caffe训练好的模型在Python接口下使用分类不准确的问题解决
- 基于caffe特征可视化 以及 用训练好的模型进行分类
- 使用MATLAB加载训练好的caffe模型进行识别分类
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
- 有关Caffe训练好的模型在Python接口下使用分类不准确的问题解决