執行caffe自帶的mnist例項詳細教

2021-08-13 22:15:02 字數 1908 閱讀 2440

mnist介紹:mnist是乙個手寫數字庫,由dl大牛yanlecun進行維護。mnist最初用於支票上的手寫數字識別,現在成了dl的入門練習庫。徵對mnist識別的專門模型是lenet,算是最早的cnn模型了。mnist資料訓練樣本為60000張,測試樣本為10000張,每個樣本為28*28大小的黑白,手寫數字為0-9,因此分為10類。

注意:在

caffe

中執行所有程式,都必須在根目錄下進行,否則會出錯

[objc]

view plain

copy

cd ~/caffe/caffe-master  

[objc]

view plain

copy

sudo sh data/mnist/get_mnist

.sh

執行成功後,在caffe-master/data/mnist/目錄下有四個檔案:

train-images-idx3-ubyte:訓練集樣本 (9912422 bytes) 

train-labels-idx1-ubyte: 訓練集對應標註 (28881 bytes) 

t10k-images-idx3-ubyte: 測試集 (1648877 bytes)

t10k-labels-idx1-ubyte: 測試集對應標註 (4542 bytes)

這些資料不能在caffe中直接使用,需要轉換成lmdb資料

[objc]

view plain

copy

sudo sh examples/mnist/create_mnist

.sh

我剛開始在執行這條指令的時候出現問題,大概錯誤意思就是,某某檔案不存在不能發現。

後來解決辦法是:將caffe-master目錄下build資料夾剪下到桌面,通過指令開啟根目錄:cd ~/caffe/caffe-master,在它目錄下,重建乙個build資料夾:mkdirbuild,然後再進入build資料夾下,注意:是這個資料夾裡面。執行指令cmake..待執行完,再make以下,等它編譯完成並成功。

然後在caffe根目錄下面,重新執行第三步。這一次就通過了,轉換成功的標誌就是:會在caffe/caffe-master/examples/mnist/目錄下,生成兩個資料夾,分別是mnist_train_lmdb和mnist_test_lmdb,裡面存放的data.mdb和lock.mdb,就是我們需要的執行資料。

路徑問題,build=examples/mnist

然而bin檔案不再這個目錄下,此目錄為cpp原始檔,

convert_mnist_data.bin檔案在caffe/build/examples/mnist下

但是build檔案是乙個符號鏈結鏈結位址為.build_release

所以更改路徑為

build=.build_release/examples/mnist

多說兩句:

create_mnist.sh是利用caffe-master/build/examples/mnist/的convert_mnist_data.bin工具,將mnistdate轉化為可用的lmdb格式的檔案。並將新生成的2個檔案mnist-train-lmdb 和 mnist-test-lmdb放於create_mnist.sh同目錄下。

caffe根目錄下執行:   

[objc]

view plain

copy

sudo time sh examples/mnist/train_lenet

.sh

成功執行,在泰坦顯示卡的機子上執行時間大概是3分鐘,因為機子有英偉達的顯示卡,gpu-cuda也裝好,所以就沒有修改配置檔案這一步。

精度為99.03%。

caffe執行自帶的mnist

sh data mnist get mnist.sh但是這些檔案是不能夠直接使用的,因此 sh examples mnist create mnist.sh轉換為lmdb檔案,轉換之後會在examples mnist下面還是生成 mnist train lmdb mnist test lmdb 裡面...

執行caffe自帶的mnist例項教程

本文結合幾篇博文總結下來的,附上其中一篇原博文鏈結以供參考 1 先進入caffe檔案目錄,指令 cd caffe 再用data mnist下的get mnist.sh下載mnist資料集,如下 2 轉換格式,如下 examples mnist create mnist.sh 若出錯 examples...

caffe之MNIST基礎詳解

cd caffe root data mnist get mnist.sh examples mnist create mnist.sh 開啟lenet train test.prototxt檢視詳細資訊 資料層定義如下圖,需要注意的是source和backend,batch size也可以根據需要...