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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

【caffe-Windows】mnist实例编译之model的使用-classification

發(fā)布時(shí)間:2025/3/21 windows 97 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【caffe-Windows】mnist实例编译之model的使用-classification 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
 【caffe-Windows】mnist實(shí)例編譯之model的使用-classification 標(biāo)簽: 深度學(xué)習(xí)caffe 1349人閱讀 評論(12) 收藏 舉報(bào) 本文章已收錄于: 分類: caffe(14) 作者同類文章X

    目錄(?)[+]

  • 第一步
  • 第二步
  • 第三步
  • 第四步
  • 第五步
  • 第六步
  • 第七步
  • 仿照cifar10的模型使用,本文對mnist的訓(xùn)練方式做了部分修改

    【注】本文caffe安裝路徑為E:\CaffeDev-GPU\caffe-master。請自行參考并修改相關(guān)路徑(debug以及release參考你編譯caffe時(shí)候采用的模式)

    第一步

    按照前面的model生成方法的前兩步驟制作數(shù)據(jù)集,得到兩個(gè)文件夾。并拷貝到E:\CaffeDev-GPU\caffe-master\Build\x64\Release


    train:鏈接:http://pan.baidu.com/s/1cJZNI2 密碼:ikz8

    test:鏈接:http://pan.baidu.com/s/1gfuhmvx 密碼:7krq

    第二步

    計(jì)算均值文件:在E:\CaffeDev-GPU\caffe-master\Build\x64\Release目錄下新建bat文件mnist_mean.bat,內(nèi)容如下

    [html] view plaincopyprint?
  • compute_image_mean.exe?mnist_train_leveldb?mean.binaryproto??
  • pause??
  • compute_image_mean.exe mnist_train_leveldb mean.binaryproto pause得到mean.binaryproto

    mean.binaryproto:鏈接:http://pan.baidu.com/s/1dFp19i5 密碼:xhux

    第三步

    將上面兩步的train和test數(shù)據(jù)集以及均值文件拷貝到E:\CaffeDev-GPU\caffe-master\examples\mnist文件夾下,方便后面的路徑書寫

    修改此文件夾下的訓(xùn)練方法lenet_train_test1.prototxt的前兩層,就是在原來的基礎(chǔ)上把均值文件加進(jìn)去。同時(shí)注意lenet_solver.prototxt中的net是你修改以后的prototxt文件,我是把修改后的prototxt訓(xùn)練文件命名為lenet_train_test1.prototxt了(加了一個(gè)1)

    [html] view plaincopyprint?
  • name:?"LeNet"??
  • layer?{??
  • ??name:?"mnist"??
  • ??type:?"Data"??
  • ??top:?"data"??
  • ??top:?"label"??
  • ??include?{??
  • ????phase:?TRAIN??
  • ??}??
  • ??transform_param?{??
  • ????mean_file:?"examples/mnist/mean.binaryproto"??
  • ????scale:?0.00390625??
  • ??}??
  • ??data_param?{??
  • ????source:?"examples/mnist/mnist_train_leveldb"??
  • ????batch_size:?64??
  • ????backend:?LEVELDB??
  • ??}??
  • }??
  • layer?{??
  • ??name:?"mnist"??
  • ??type:?"Data"??
  • ??top:?"data"??
  • ??top:?"label"??
  • ??include?{??
  • ????phase:?TEST??
  • ??}??
  • ??transform_param?{??
  • ?????mean_file:?"examples/mnist/mean.binaryproto"??
  • ?????scale:?0.00390625??
  • ??}??
  • ??data_param?{??
  • ????source:?"examples/mnist/mnist_test_leveldb"??
  • ????batch_size:?100??
  • ????backend:?LEVELDB??
  • ??}??
  • }??
  • name: "LeNet" layer {name: "mnist"type: "Data"top: "data"top: "label"include {phase: TRAIN}transform_param {mean_file: "examples/mnist/mean.binaryproto"scale: 0.00390625}data_param {source: "examples/mnist/mnist_train_leveldb"batch_size: 64backend: LEVELDB} } layer {name: "mnist"type: "Data"top: "data"top: "label"include {phase: TEST}transform_param {mean_file: "examples/mnist/mean.binaryproto"scale: 0.00390625}data_param {source: "examples/mnist/mnist_test_leveldb"batch_size: 100backend: LEVELDB} }lenet_train_test1.prototxt:鏈接:http://pan.baidu.com/s/1skBN3Md 密碼:ixzt

    lenet_solver1.prototxt:鏈接:http://pan.baidu.com/s/1kVxwQl5 密碼:3o5a

    第四步

    在E:\CaffeDev-GPU\caffe-master目錄下新建訓(xùn)練bat文件train_minist.bat,內(nèi)容如下:

    [html] view plaincopyprint?
  • .\Build\x64\Release\caffe.exe?train?--solver=examples/mnist/lenet_solver1.prototxt??
  • pause????
  • .\Build\x64\Release\caffe.exe train --solver=examples/mnist/lenet_solver1.prototxt pause

    此處注意一下CPU與GPU的訓(xùn)練僅僅需要修改lenet_solver1.prototxt的最后一行即可


    第五步

    測試一下測試集的分批準(zhǔn)確率,同樣在E:\CaffeDev-GPU\caffe-master下新建test_mnist.bat,內(nèi)容如下

    [html] view plaincopyprint?
  • .\Build\x64\Release\caffe.exe?test?--model=examples/mnist/lenet_train_test1.prototxt?-weights=examples/mnist/lenet_iter_10000.caffemodel?-gpu=0??
  • pause??
  • .\Build\x64\Release\caffe.exe test --model=examples/mnist/lenet_train_test1.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel -gpu=0 pause運(yùn)行之,得到如下結(jié)果:


    第六步

    這一步往后就比較實(shí)用了,先介紹如何制作手寫數(shù)字的單張測試樣本。兩種方法:①按照我前面的博客,從mnist數(shù)據(jù)集里面摘取里面的某張或者某些圖片;②用Windows的畫圖工具自己手寫一張(怎么打開畫圖工具就不說了吧)


    為了方便直接調(diào)整寫的數(shù)字的大小,如果你這里不調(diào)整大小,在matlab里面有相關(guān)的resize函數(shù),自己查詢調(diào)用方法,很簡單


    然后,寫幾張,本人龍飛鳳舞地畫了幾張:鏈接:http://pan.baidu.com/s/1o79lL5S 密碼:umjl

    可以發(fā)現(xiàn),這個(gè)保存下來的是RGB圖像,三通道,然而我們的測試集和訓(xùn)練集mnist都是灰度圖像,怎么辦,簡單,用matlab轉(zhuǎn)

    [html] view plaincopyprint?
  • %存儲(chǔ)二值圖像??
  • image=imread('009.png');??
  • im=255-rgb2gray(image);??
  • imshow(im)??
  • imwrite(uint8(im),'./binarybmp/9.bmp');???
  • %存儲(chǔ)二值圖像 image=imread('009.png'); im=255-rgb2gray(image); imshow(im) imwrite(uint8(im),'./binarybmp/9.bmp'); 【注意】這里不要手動(dòng)去save那個(gè)figure哦,不然圖像會(huì)比28*28大,一定要用imwrite,并且格式為bmp

    轉(zhuǎn)換完畢的測試集:鏈接:http://pan.baidu.com/s/1o7NySMu 密碼:bead

    第七步

    把轉(zhuǎn)換好的二值圖像拷貝到E:\CaffeDev-GPU\caffe-master\examples\mnist\

    在E:\CaffeDev-GPU\caffe-master\examples\mnist下建立標(biāo)簽文件synset_words.txt:

    [html] view plaincopyprint?
  • 0??
  • 1??
  • 2??
  • 3??
  • 4??
  • 5??
  • 6??
  • 7??
  • 8??
  • 9??
  • 0 1 2 3 4 5 6 7 8 9

    調(diào)用classification.exe去識(shí)別某張圖片,E:\CaffeDev-GPU\caffe-master目錄新建mnist_class.bat

    [cpp] view plaincopyprint?
  • E:\CaffeDev-GPU\caffe-master\Build\x64\Release\classification.exe?E:\CaffeDev-GPU\caffe-master\examples\mnist\lenet.prototxt?E:\CaffeDev-GPU\caffe-master\examples\mnist\lenet_iter_10000.caffemodel?E:\CaffeDev-GPU\caffe-master\examples\mnist\mean.binaryproto?E:\CaffeDev-GPU\caffe-master\examples\mnist\synset_words.txt?E:\CaffeDev-GPU\caffe-master\examples\mnist\binarybmp\0.bmp??
  • pause??
  • E:\CaffeDev-GPU\caffe-master\Build\x64\Release\classification.exe E:\CaffeDev-GPU\caffe-master\examples\mnist\lenet.prototxt E:\CaffeDev-GPU\caffe-master\examples\mnist\lenet_iter_10000.caffemodel E:\CaffeDev-GPU\caffe-master\examples\mnist\mean.binaryproto E:\CaffeDev-GPU\caffe-master\examples\mnist\synset_words.txt E:\CaffeDev-GPU\caffe-master\examples\mnist\binarybmp\0.bmp pause

    運(yùn)行就會(huì)得到結(jié)果


    【已解決】【筆者注】現(xiàn)在正在研究matlab的實(shí)現(xiàn),在預(yù)處理部分卡住了,在模型中加入均值計(jì)算以及歸一化以后,這兩個(gè)操作有沒有先后順序,在matlab中先進(jìn)行了減均值計(jì)算,發(fā)現(xiàn)數(shù)據(jù)分布有大于0和小于0的,如果直接除以255,肯定不可能歸一化到[0,1],此法測試效果很差,肯定錯(cuò)了。如果采用mapminmax(A,0,1)歸一化到[0,1],結(jié)果也是錯(cuò)的。如果有想法的同學(xué)請私密我一下,一起探討一下matlab的實(shí)現(xiàn)

    參考預(yù)處理代碼詳解:http://blog.csdn.net/langb2014/article/details/51050213

    Python的實(shí)現(xiàn):http://www.dongcoder.com/detail-57212.html

    總結(jié)

    以上是生活随笔為你收集整理的【caffe-Windows】mnist实例编译之model的使用-classification的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。