【轉載】Caffe學習:運行caffe自帶的兩個簡單例子

原文:http://www.cnblogs.com/denny402/p/5075490.htmlhtml

爲了程序的簡潔,在caffe中是不帶練習數據的,所以須要本身去下載。但在caffe根目錄下的data文件夾裏,做者已經爲咱們編寫好了下載數據的腳本文件,咱們只須要聯網,運行這些腳本文件就好了。post

注意:在caffe中運行全部程序,都必須在根目錄下進行,不然會出錯學習

一、mnist實例測試

mnist是一個手寫數字庫,由DL大牛Yan LeCun進行維護。mnist最初用於支票上的手寫數字識別, 如今成了DL的入門練習庫。徵對mnist識別的專門模型是Lenet,算是最先的cnn模型了。ui

mnist數據訓練樣本爲60000張,測試樣本爲10000張,每一個樣本爲28*28大小的黑白圖片,手寫數字爲0-9,所以分爲10類。spa

首先下載mnist數據,假設當前路徑爲caffe根目錄code

# sudo sh data/mnist/get_mnist.sh

運行成功後,在 data/mnist/目錄下有四個文件:htm

train-images-idx3-ubyte:  訓練集樣本 (9912422 bytes) 
train-labels-idx1-ubyte:  訓練集對應標註 (28881 bytes) 
t10k-images-idx3-ubyte:   測試集圖片 (1648877 bytes) 
t10k-labels-idx1-ubyte:   測試集對應標註 (4542 bytes)blog

這些數據不能在caffe中直接使用,須要轉換成LMDB數據圖片

# sudo sh examples/mnist/create_mnist.sh

若是想運行leveldb數據,請運行 examples/siamese/ 文件夾下面的程序。 examples/mnist/ 文件夾是運行lmdb數據

轉換成功後,會在 examples/mnist/目錄下,生成兩個文件夾,分別是mnist_train_lmdb和mnist_test_lmdb,裏面存放的data.mdb和lock.mdb,就是咱們須要的運行數據。

接下來是修改配置文件,若是你有GPU且已經徹底安裝好,這一步能夠省略,若是沒有,則須要修改solver配置文件。

須要的配置文件有兩個,一個是lenet_solver.prototxt,另外一個是train_lenet.prototxt.

首先打開lenet_solver_prototxt

# sudo vi examples/mnist/lenet_solver.prototxt

根據須要,在max_iter處設置最大迭代次數,以及決定最後一行solver_mode,是否要改爲CPU

保存退出後,就能夠運行這個例子了

# sudo time sh examples/mnist/train_lenet.sh

CPU運行時候大約13分鐘,GPU運行時間大約4分鐘,GPU+cudnn運行時候大約40秒,精度都爲99%左右

二、cifar10實例

cifar10數據訓練樣本50000張,測試樣本10000張,每張爲32*32的彩色三通道圖片,共分爲10類。

下載數據:

# sudo sh data/cifar10/get_cifar10.sh

運行成功後,會在 data/cifar10/文件夾下生成一堆bin文件

轉換數據格式爲lmdb:

# sudo sh examples/cifar10/create_cifar10.sh

轉換成功後,會在 examples/cifar10/文件夾下生成兩個文件夾,cifar10_train_lmdb和cifar10_test_lmdb, 裏面的文件就是咱們須要的文件。

爲了節省時間,咱們進行快速訓練(train_quick),訓練分爲兩個階段,第一個階段(迭代4000次)調用配置文件cifar10_quick_solver.prototxt, 學習率(base_lr)爲0.001

第二階段(迭代1000次)調用配置文件cifar10_quick_solver_lr1.prototxt, 學習率(base_lr)爲0.0001

先後兩個配置文件就是學習率(base_lr)和最大迭代次數(max_iter)不同,其它都是同樣。若是你對配置文件比較熟悉之後,其實是能夠將兩個配置文件合二爲一的,設置lr_policy爲multistep就能夠了。

複製代碼
base_lr: 0.001
momentum: 0.9
weight_decay: 0.004
lr_policy: "multistep"
gamma: 0.1
stepvalue: 4000
stepvalue: 5000
複製代碼

運行例子:

# sudo time sh examples/cifar10/train_quick.sh

GPU+cudnn大約45秒左右,精度75%左右。

相關文章
相關標籤/搜索