日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【caffe-Windows】识别率批量输出——matlab实现

發布時間:2023/12/13 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【caffe-Windows】识别率批量输出——matlab实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

今天看到群里有人問”用matlab輸出測試集的精度“,瞎試了一下,好像還成功了。主要還是依據前面所有在matlab中操作caffe的博客。

這里說一下:classification.m是適用單張圖片的精度,類似于classification.exe的功能;這里要做的是在matlab中實現caffe.exe test的功能,也就是批量輸出精度

分析

根據caffe.exe test和classification.m的流程,很容易想到,直接把訓練時候所用的prototxt丟進去,對比classification.m中調用caffe.Net(model,wights,'test')的思路,試試當model為train_test.prototxt而非deploy.prototxt的效果。然后按照前面caffe在matlab中訓練的方法,進行一次前向計算,當然此前向計算需要數據已經載入網絡中,而非像classification一樣挨個輸入。z最后按照前面可視化權重的博客,提取最后一層的accuracy就行了。

流程

  • 將數據集,也就是一堆圖片,利用convert的那個exe轉換為lmdb格式
  • 在prototxt中更改測試部分的輸入為你所轉換的lmdb路徑
  • 細節調整,比如你有沒有均值文件,加入到prototxt中
  • 加載模型,命令caffe.Net
  • 前向計算forward_prefilled命令
  • 利用blob取最后一層accuracy的值

代碼書寫

  • 數據集轉換

以mnist為例,測試集的lmdb文件在前面已經制作出來了,如果是你自己的圖片,可以看前面轉換數據集的博客。

  • 模型結構

直接使用原始的lenet_train_test.prototxt,測試集部分內容為你自己的轉換數據集

layer {name: "mnist"type: "Data"top: "data"top: "label"include {phase: TEST}transform_param {scale: 0.00390625}data_param {source: "mnist_test_leveldb"batch_size: 100backend: LEVELDB} }

其中有一個參數batch_size表示一次性測試多少數據量的準確率, 由于mnist測試集共有一萬張圖片, 所以測試次數為1000/100=100, 使用批處理方式測試

..\..\Build\x64\Release\caffe.exe test -model=lenet_train_test.prototxt -weights=lenet_iter_10000.caffemodel -iterations=100 pause
  • 寫代碼
clear clc close allif exist('../../+caffe', 'dir')addpath('../..'); elseerror('Please run this demo from caffe/matlab/demo'); end caffe.reset_all % Set caffe mode if exist('use_gpu', 'var') && use_gpucaffe.set_mode_gpu();gpu_id = 0; % we will use the first gpu in this democaffe.set_device(gpu_id); elsecaffe.set_mode_cpu(); end% model_dir = '../mnist_data/'; % net_model = [model_dir 'lenet.prototxt']; model_dir = './'; net_model = [model_dir 'lenet_train_test.prototxt']; net_weights = [model_dir 'lenet_iter_10000.caffemodel'];if ~exist(net_weights, 'file')error('Please download CaffeNet from Model Zoo before you run this demo'); end% Initialize a network net = caffe.Net(net_model, net_weights, 'test'); acc=[]; for i=1:100net.forward_prefilledacc=[acc; net.blobs('accuracy').get_data()]; end acc

看看使用caffe.exe test的命令和我們的輸出acc的結果對應與否

應該是對應的吧,手動滑稽。

【注】記得剛才說的batchsize吧,看代碼倒數第三行,有一個for循環,這里寫的100,意思就是圖片總數除以batchsize,得到的結果就是這個for循環的上限。

源代碼各種文件打包放送

http://download.csdn.net/download/zb1165048017/9994062

直接運行里面的caffe_test.m即可,注意自己caffe的matlab接口一定要配置好。

總結

以上是生活随笔為你收集整理的【caffe-Windows】识别率批量输出——matlab实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。