生活随笔
收集整理的这篇文章主要介绍了
caffe预测、特征可视化python接口调用
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
转载自:
深度学习(九)caffe预测、特征可视化python接口调用 - hjimce的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/hjimce/article/details/48972877
网上有很多caffe训练好的模型,有的时候我们仅仅想要方便的调用已经训练好的模型,利用python进行预测分类测试,查看可视化结果,这个时候,我们可以使用caffe为我们写好的python接口文件,我们在安装caffe的时候,有一步:make pycaffe。这个便是安装caffe的python 结果函数,把自己用的代码记录一下,以便日后直接复制粘贴使用。感觉使用python就是轻松,如果用caffe的c++接口,挺麻烦的。
下面的使用例子是自己搞利用CNN进行性别预测的python接口调用实例:
[python] view plaincopy
import os import numpy as np from matplotlib import pyplot as plt import cv2 import shutil import time def showimage(im): if im.ndim == 3: im = im[:, :, ::-1] plt.set_cmap('jet') plt.imshow(im) plt.show() def vis_square(data, padsize=1, padval=0): data -= data.min() data /= data.max() n = int(np.ceil(np.sqrt(data.shape[0]))) padding = ((0, n ** 2 - data.shape[0]), (0, padsize), (0, padsize)) + ((0, 0),) * (data.ndim - 3) data = np.pad(data, padding, mode='constant', constant_values=(padval, padval)) data = data.reshape((n, n) + data.shape[1:]).transpose((0, 2, 1, 3) + tuple(range(4, data.ndim + 1))) data = data.reshape((n * data.shape[1], n * data.shape[3]) + data.shape[4:]) showimage(data) caffe_root = '../../../caffe/' import sys sys.path.insert(0, caffe_root + 'python') import caffe mean_filename='./imagenet_mean.binaryproto' proto_data = open(mean_filename, "rb").read() a = caffe.io.caffe_pb2.BlobProto.FromString(proto_data) mean = caffe.io.blobproto_to_array(a)[0] gender_net_pretrained='./caffenet_train_iter_1500.caffemodel' gender_net_model_file='./deploy_gender.prototxt' gender_net = caffe.Classifier(gender_net_model_file, gender_net_pretrained,mean=mean, channel_swap=(2,1,0), raw_scale=255, image_dims=(256, 256)) gender_list=['Male','Female'] input_image = caffe.io.load_image('1.jpg') prediction_gender=gender_net.predict([input_image]) print 'params:' for k, v in gender_net.params.items(): print 'weight:' print (k, v[0].data.shape) print 'b:' print (k, v[1].data.shape) filters = gender_net.params['conv1'][0].data vis_square(filters.transpose(0, 2, 3, 1)) '' print 'feature maps:' for k, v in gender_net.blobs.items(): print (k, v.data.shape); feat = gender_net.blobs[k].data[0,0:4] vis_square(feat, padval=1) str_gender=gender_list[prediction_gender[0].argmax()] print str_gender plt.imshow(input_image) plt.title(str_gender) plt.show()
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读
总结
以上是生活随笔为你收集整理的caffe预测、特征可视化python接口调用的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。