生活随笔
收集整理的這篇文章主要介紹了
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接口调用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。