win10環境下cpu版本caffe訓練mnist資料集的心得 openmv機器學習卷積神經網絡訓練步驟二
Caffe快速上手 mnist資料集分類
1.下載下傳資料集
yann.lecun.com/exdb/mnist/ (網絡要求高,另附以下下載下傳方式)
連結:https://pan.baidu.com/s/1ADDhMGx5QBYydY84G7dshw
提取碼:4f74
将所下載下傳的4個(壓縮包)二進制資料集放入caffe目錄下example下的mnist下建立的mnist_data檔案下,并解壓到該檔案下,如下圖
2.将下載下傳的二進制檔案轉換成LEVELDB或LMDB格式的檔案
之前編譯輸出的檔案下caffe-windows ->Build->x64 ->Dubug目錄下有一個convert_mnist_data.exe檔案,此檔案可實作檔案格式轉換功能
在caffe-windows ->example->mnist檔案夾下建立bat檔案,再bat檔案夾下建立convert_train_lmdb.bat,用notepad++編輯如下文字
%執行資料轉換程式%
%傳入訓練圖檔%
%傳入訓練圖檔的标簽%
%轉換後的資料存放在此目錄%
E:\caffe-cpu\caffe-windows\Build\x64\Debug\convert_mnist_data.exe ^
E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\train-images.idx3-ubyte ^
E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\train-labels.idx1-ubyte ^
E:\caffe-cpu\caffe-windows\examples\mnist\lmdb\train_lmdb
檔案的路徑需要根據自己的存放路徑進行修改
注意:第四行需要在mnist檔案夾下建立lmdb檔案,但是不需要在lmdb檔案下建立train_lmdb,此檔案會自動生成。修改好之後儲存,然後輕按兩下此bat檔案即可執行該檔案,執行完之後的結果時lmdb檔案夾下會建立一個train_lmdb的檔案如下圖
同理,在在caffe-windows ->example->mnist ->bat檔案夾下建立convert_test_lmdb.bat,用notepad++編輯如下文字
> %執行資料轉換程式%
> %傳入測試圖檔%
> %傳入測試圖檔的标簽%
> %轉換後的資料存放在此目錄%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\convert_mnist_data.exe ^
> E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\t10k-images.idx3-ubyte ^
> E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\t10k-labels.idx1-ubyte ^
> E:\caffe-cpu\caffe-windows\examples\mnist\lmdb\test_lmdb pause
檔案的路徑也是需要自己根據自己的存放路徑進行修改的,同樣test_lmdb不需要自己建立,儲存好之後,輕按兩下convert_test_lmdb.bat檔案運作,得到如下圖:
3.修改網絡模型描述檔案
在mnist檔案夾下會有一個lenet_train_test.prototxt檔案,需要對其進行修改
使用notepad++打開進行編輯
主要是把剛剛生成的lmdb的路徑進行修改,train_lmdb和test_lmdb注意複制過來的路徑斜杠是這樣的\,需要把\變成/,切記。
之後打開mnist下的lenet_solver.prototxt檔案,對其進行修改
也主要是路徑的修改
Net路徑修改成剛剛那個lenet_train_test.prototxt,注意修改成反斜杠/
max_iter:10000 總共訓練10000次
Snapshot:5000 每5000次輸出一次
模型檔案存放目錄snapshot_prefix:需要自己設定
Solver_model: cpu 使用CPU訓練
4.訓練模型
在bat檔案夾下建立train.bat檔案
進行修改
> %train訓練資料%
> %超參數檔案%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\caffe.exe train ^
> -solver=E:/caffe-cpu/caffe-windows/examples/mnist/lenet_solver.prototxt
> pause
注意:修改為自己的路徑,第一行斜杠為\,第二行斜杠為/。修改完成後就可以訓練了,一般情況下cpu訓練一個小時左右(i7-9750H親測48分鐘)
Pause是訓練結束後會停住
按照我的教程,訓練好的檔案會存放到mnist檔案下
在mnist檔案下建立model檔案,把這四個檔案放進去。
5.準備好要測試的圖檔
下載下傳連結:
連結:https://pan.baidu.com/s/1Zw3Ji0rwN9ETlWn7A2xDsw
提取碼:sycr
下載下傳好之後放入到mnist_data檔案夾下,檔案名為0-9,裡邊有10張28*28像素的圖檔,在bat檔案夾下建立一個mnist_mean.bat檔案,并進行編輯
> %計算均值程式%
> %train_lmdb%
> %均值檔案存放路徑%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\compute_image_mean.exe ^
> E:\caffe-cpu\caffe-windows\examples\mnist\lmdb\train_lmdb ^
> E:\caffe-cpu\caffe-windows\examples\mnist\mean_file\mean.binaryproto
> Pause
路徑修改成自己的路徑,需要在mnist檔案夾下建立mean_file檔案,不需要建立mean.binaryproto,否則會報錯,儲存之後運作,運作完會在mean_file檔案夾下生成一個mean.binaryproto檔案
6.準備标簽并測試分類效果
在mnist檔案夾下建立label檔案夾,建立label.txt,對其進行編輯如下并儲存
在bat檔案夾下建立mnist_classification.bat并進行編輯
> %分類可執行程式%
> %網絡結構%
> %訓練好的模型%
> %均值檔案%
> %标簽%
> %要分類的圖檔%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\classification.exe ^
> E:\caffe-cpu\caffe-windows\examples\mnist\lenet.prototxt ^
> E:\caffe-cpu\caffe-windows\examples\mnist\models\lenet_iter_10000.caffemodel ^
> E:\caffe-cpu\caffe-windows\examples\mnist\mean_file\mean.binaryproto ^
> E:\caffe-cpu\caffe-windows\examples\mnist\label\label.txt ^
> E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\0-9\5.bmp Pause
更改成自己的路徑,随意選取一張圖檔,以5為例
運作結果如下,即為5的準确率為100%
慢慢來,這隻是安裝好之後的測試,如果需要訓練自己的模型,首先需要采集照片,大概一個類别至少800張,需要後邊的教程,部落格第二次寫,第一次寫的慘不忍睹,這次希望有點進步