? ? 學習caffe完全是出于興趣,覺著人工智能的時代到來了,笨鳥先飛吧。
PS:caffe源碼是用c++寫的,所以如果想用python或者matlab調用caffe的需要額外配置和安裝python和matlab環境,如果你是用c++來編寫自己的深度學習代碼,則直接安裝caffe編譯完成就可以使用了。
一、安裝編譯環境
1、 ? ?Visual studio2013
? ? ? ?這個比較簡單,不寫步驟了。
2、python 2.7.6
? ? ? ?為了能使用python調用Caffe,首先需要安裝python,這個也簡單,問度娘很多。注意兩點:
①安裝的時候記得勾選pip,這個工具很nice,可以為你省很多不必要的麻煩;
②安裝完后設置好環境變量。可以再cmd命令中輸入python檢查,如果不報錯,則恭喜。
? ? ? ?接下來利用pip工具安裝這幾個包:numpy、scipy、matplotlib、scikit-image、protobuf
在cmd命令行內輸入:pip install numpy即可,其他幾個類似。
3、matalb
? ? ? ? 這個安裝過程比較慢,也沒什么需要注意的,這里直接略去。
二、安裝caffe
1、caffe源碼包
下載地址:https://github.com/Microsoft/caffe
2、編譯配置
? ? ? 將下載的caffe-windows.zip進行解壓,并進入其根目錄下的windows目錄,把這個CommonSettings.props.example文件復制到源目錄一份,然后重命名為CommonSettings.props。打開并修改其中的配置項。有幾個需要注意的地方:
①是否只是用cpu。如果你的電腦顯卡支持GPU編程(是否支持可以去英偉達官網查詢),那么可以配置為false。否則CpuOnlyBuild = true
②是否使用cudnn加速?
③是否使用python和matalb,根據需要配置
④如果配置了python和matlab,這里需要把修改軟件目錄為自己電腦上的實際安裝目錄
⑤如果有cuda,則把CudaVersion修改為自己電腦的cuda版本
3、項目編譯
? ? ? ? 用Visual studio2013打開caffe-master\windows下的Caffe.sln文件,進去后如下圖(共16個項目):
(1)先生成【libcaffe】,右鍵生成;這里由于別的模塊用到了libcaffe,所以,首先生成libcaffe
(2)再選擇【解決方案Caffe】進行生成,這里時間比較久,因為Nuget會提示下載一些東西,包括boost,opencv2.4.10,gflags,glog,hdf5,lmdb,LevelDB,OpenBLAS,protobuf等預編譯的依賴包。過程有點慢,多等會就ok。下載完成后會在caffe 的同級目錄生成NugetPackages的文件。
? ? 如果中途編譯失敗,出現錯誤,不用緊張,雙擊出現如下對話框,確定然后保存,重新編譯即可。
4、運行
? ? ? ? 右鍵解決方案->屬性->通用屬性->啟動項目->當前選定內容,然后保存。
? ? ? ? 點擊caffe->caffe.cpp,按F5運行,生成如下界面,證明安裝成功。
同時在Build\x64\下生成了很多exe和dll文件。這些工具在后面訓練網絡、測試時候很有用。
三、體驗深度學習
? ? ?終于到這了,我們通過一個caffe自帶的簡單例子來體驗一下caffe的網絡訓練和預測。 ?
? ? ?deep-learning屬于有監督學習的一種,一般步驟分為:準備數據、訓練模型和測試模型。我們下邊也通過這三步來測試一個基于LeNet網絡的學習模型。
1、準備訓練數據
mnist數據集下載地址:http://yann.lecun.com/exdb/mnist/
下載后解壓到caffe-master目錄中的\data\mnist內。分別在cmd下輸入以下命令
.\Build\x64\Release\convert_mnist_data.exe?.\data\mnist\mnist_train_lmdb\train-images.idx3-ubyte?.\data\mnist\mnist_train_lmdb\train-labels.idx1-ubyte?.\examples\mnist\mnist_train_lmdb
.\Build\x64\Release\convert_mnist_data.exe?.\data\mnist\mnist_test_lmdb\t10k-images.idx3-ubyte???.\data\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte?.\examples\mnist\mnist_test_lmdb
將數據轉化為caffe需要的輸入格式。
2、訓練模型
①修改模型參數
修改examples\mnist\lenet_solver.prototxt,將最后一行改為solver_mode:CPU,
修改examples\mnist\lenet_train_test.prototxt,如下所示,左面為原始的,右面為修改后的。
②訓練模型,訓練完畢后會得到相應的準確率和損失率。
.\Build\x64\Release\caffe.exe?train?--solver=.\examples\mnist\lenet_solver.prototxt
3、測試模型
? ? ? 最終訓練的模型全職文件保存在example\minst\lenet_iter_10000.caffemodel文件中,訓練狀態保存在example\minst\lenet_iter_10000.solverstate中。這兩個文件都是PrototxtBuffer二進制格式。
? ? ? 利用訓練好的模型權值文件可以測試數據集。運行如下命令:
.\Build\x64\Release\caffe.exe test -model examples\mnist\lenet_train_test.prototxt -weights examples\mnist\lenet_iter_10000.caffemodel -iterations 100
到這,整個caffe在windows上就安裝完成了。下一節寫Ubuntu下caffe的配置。
謝謝!