使用Caffe訓練適合自己樣本集的AlexNet網絡模型,並對其進行分類


  1.在開始之前,先簡單回顧一下幾個概念。

Caffe(Convolution Architecture For Feature Extraction-卷積神經網絡框架):是一個清晰,可讀性高,快速的深度學習框架。

CUDA(Compute Unifined Device Architecture-計算統一設備框架):是顯卡廠商NVIDIA推出的運算平台。 CUDA是一種由NVIDIA推出的通用並行計算架構,該架構使GPU能夠解決復雜的計算問題。

CuDNN( CUDA Deep Neural Network library):是NVIDIA專門針對深度神經網絡設計的一套GPU計算加速庫,被廣泛用於各種深度學習框架,例如Caffe, TensorFlow, Theano, Torch, CNTK等。

  2.Caffe的安裝可參考一下博客:

http://www.cnblogs.com/hust-yingjie/p/6525584.html

http://blog.csdn.net/zb1165048017/article/details/51549105

http://blog.csdn.net/zb1165048017/article/details/51355143

    3.安裝過程出現的問題,以及解決方法,可參考:

http://www.cnblogs.com/hust-yingjie/p/6515213.html

Caffe.sln中的16個工程編譯成功,會生成12個.exe,如下圖所示:

  4.下面具體介紹基於Window訓練自己的模型,並進行分類

4.1 第一步:制作Label標簽文件,並利用convert_imageset.exe將圖片轉換為Caffe的數據格式LEVELDB格式或者lmdb格式。

訓練樣本的標簽文件TrainLabel.txt如下圖所示:

測試樣本的標簽文件TestLabel.txt如下圖所示:

此時需重新生成一下convert_imageset.exe文件,具體見http://www.cnblogs.com/hust-yingjie/p/6526419.html

可根據實際情況執行convert_imageset.exe文件,其參數信息可打開convert_imageset.cpp查看,下面是我執行其的批處理文件,測試樣本集類似:

SET GLOG_logtostderr=1
E:\CaffeGPU\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe --backend=leveldb --resize_width=32 --resize_height=32 E:\MyCaffe E:\MyCaffe\TrainSet\TrainLabel.txt E:\MyCaffe\Trainleveldb
pause

正確執行后,你會看到如下界面:

執行上述過程,可能出現以下兩種情況,如下圖所示:

上面兩種錯誤,都是由於路徑錯誤導致,所以這里一定要注意。還有一種錯誤,解決比較簡單,見下圖:

成功后,會生成一個Trainleveldb文件夾,里面有如下內容:

4.2 第二步:基於LEVELDB文件利用compute_image_mean.exe獲取均值文件Mean.binaryproto

可參考以下批處理文件執行compute_image_mean.exe,具體如下:

SET GLOG_logtostderr=1
E:\CaffeGPU\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe --backend=leveldb --resize_width=256 --resize_height=256 E:\MyCaffe E:\MyCaffe\TrainSet\TrainLabel.txt E:\MyCaffe\Trainleveldb
pause

正確執行后的效果如下圖所示:

4.3 第三步:定義網絡結構並進行訓練

在安裝的Caffe目錄下找到\models\bvlc_alexnet文件夾,里面有如下內容:

將最后兩個文件拷貝到自己的工程目錄下,並做一下修改:

如果你使用的LMDB文件格式,就不需要修改backend,否則就需修改為LEVELDB數據格式。

4.4 第四步:利用Caffe.exe文件訓練AlexNet模型網絡

基於第三步的兩個文件,執行Caffe.exe文件,可參考下面批處理文件,具體如下:

E:\CaffeGPU\caffe-master\caffe-master\Build\x64\Release\caffe.exe train --solver=E:/MyCaffe/Train_Test/Alexnet/solver.prototxt
pause

正確執行的效果,如下圖所示:

可參考:http://m.blog.csdn.net/article/details?id=51001536

4.5 第五步:測試模型

上述步驟完成后,會得到兩個文件,第一個caffemodel是訓練完畢得到的模型參數文件,第二個solverstate是訓練中斷以后,可以用此文件從中斷地方繼續訓練,具體如下所示:

后面的操作參考:http://blog.csdn.net/zb1165048017/article/details/51483206


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM