測試Caffe,Training LeNet on MNIST with Caffe
標籤(空格分隔): vision
安裝Caffe以後,測試一下。當然最好是用一個大家都在用的例子測試一下。
本文參考Caffe自己的說明。
準備數據集Prepare Datasets
Caffe自帶一些腳本從網上下載一些標準的庫,如mnist。假設CAFFE_ROOT是安裝CAFFE的根目錄(對我來說就是解壓caffe_master.zip後的caffe_master目錄)。執行如下腳本,下載數據集,並轉換成Caffe所用的數據格式。
cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
執行成功,應該能找到這個文件夾mnist_train_lmdb:
find . -name mnist_train_lmdb
文件夾在./examples/mnist/mnist_train_lmdb,裏面有兩個貌似是數據文件。
定義深度學習網絡 LeNet
其實LeNet歷史比較悠久了,現在纔得到大家的重視。
Caffe使用了Google Protobuf來定義深度學習網絡結構。我也沒有具體看這個是什麼,因爲根本就看不了。不過只要你瞭解深層神經網絡,結合Caffe給出的例子可以比較容易理解。Caffe使用的定義可以參見這個文件$CAFFE_ROOT/src/caffe/proto/caffe.proto。
Caffe自己的說明裏詳細描述瞭如何構造一個網絡,這裏就不詳述了。
寫完這個學習網絡的定義以後,形成的文件就是學習網絡結構例子文件:$CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt。
定義問題解決器 ( 優化問題解決器)Define the MNIST Solver
例子文件:$CAFFE_ROOT/examples/mnist/lenet_solver.prototxt。
現在還沒有GPU,只有CPU,所以把文件改一下,把GPU改成CPU。
vi examples/mnist/lenet_solver.prototxt
開始運行
./examples/mnist/train_lenet.sh | tee res.out
結果:我的AMD機器用了24分鐘。
I0522 19:10 開始運行
I0522 19:34:17.809156] Test net output #0: accuracy = 0.9912
I0522 19:34:17.809249] Test net output #1: loss = 0.027
I0522 19:34:17.809268 32395 solver.cpp:257] Optimization Done.