mnist是一個手寫數字庫,現在成了DL的入門練習庫。徵對mnist識別的專門模型是Lenet,算是最早的cnn模型了。
mnist數據訓練樣本爲60000張,測試樣本爲10000張,每個樣本爲28*28大小的黑白圖片,手寫數字爲0-9,因此分爲10類。(ps:在caffe中運行所有程序,都必須在根目錄下進行,否則會出錯)
首先下載mnist數據,假設當前路徑爲caffe根目錄
./data/mnist/get_mnist.sh
包含兩個訓練集和兩個測試集,分別是圖片和標籤
./examples/mnist/create_mnist.sh
下載到的原始數據集是二進制文件,需要轉換爲levelDB或LMDB纔可以被Caffe使用。這是因爲數據類型太多樣化,用一套代碼處理所有類型的輸入數據比較繁瑣,轉換格式後可以簡化數據讀取,另外一方面是用levelDB或LMDB可以提高磁盤IO利用率
衆所周知,深度神經網絡中比較難的一點就是調參,這個需要一點的工作量和經驗,所以這裏用默認參數。看一下參數設置
./examples/mnist/train_lenet.sh
開始訓練,Caffe目前貌似支持單機多卡,我的機器上裝有4張K80(一張卡上有兩個芯片),但是隻用了一個芯片
訓練用時4分鐘。
./build/tools/caffe.bin test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -iterations 100
對訓練好的模型進行測試,很快結束,準確率99%,用時30秒左右。