caffe學習(1):多平台下安裝配置caffe
知乎小透明申請專欄成功,很是開心啊!準備在這個專欄和大家分享一下自己學習深度學習的一些收穫,也起到共同學習的作用!加油!
提到deep learning, caffe的大名自然是如雷貫耳,當然,除了caffe之外,還有很多其他的框架,如torch,mxnet...但是,就我自己這一個月的實驗以及師兄的結論都是,caffe得出的實驗performance要高於別的框架,可能是C++的威力吧~笑
OK,接下來準備在這個系列分享我使用和學習caffe的一些經驗,首先自然是框架的配置了。這裡我們分享一下在windows10和ubuntu14.04虛擬機下的Caffe配置(:
一.Windows10 CUDA7.5 VS2013環境
1.軟體準備
1.我使用的是系統是win10,首先要確保下載安裝好visual stdio 2013,community版本下載鏈接在這,2014-Nov 12 Release Notes,這裡建議大家最好將VS安裝在默認C盤位置,不然之後編譯可能會出現各種莫名其妙的問題
2.GitHub - BVLC/caffe at windows 這是微軟修改的caffe windows版本,集成了caffe編譯需要的第三方庫,使用起來非常方便!下載好之後解壓到任意位置,我這裡是放在D盤下,接下來,到windows目錄下,copy一份CommonSettings.props.example到CommonSettings.propsn
然後用vs打開CommonSettings.props,
我這裡是默認使用GPU,CUDA版本為7.5,支持python的配置,大家可以根據自己需要進行調整,GPU對應CUDA版本和CudaArchitecture大致如下圖
注意如果需要使用python介面的話,推薦安裝Miniconda 2.7 64-bit Windows installer(from Miniconda website)或者是Anaconda 2.7 64-bit Windows installer(Download Anaconda Now!)
然後對應修改CommonSettings.props,我這裡安裝的是Anaconda2
3.接下來就是一些軟體的安裝了,首先下載CUDA,可以根據自己的GPU版本下載對應版本的CUDA,我這裡下載的是CUDA7.5:https://developer.nvidia.com/cuda-downloads
下載完成之後就可以安裝了,這裡也是建議安裝在默認位置,等待解壓完成選擇默認設置,等待安裝完成即可.然後是CUDNN,https://developer.nvidia.com/cudnn ,貌似需要註冊之後才能下載,應該不是很費事,下載cudnn v4
下載完成後,把解壓後的文件夾中的bin,lib/x64,include中的內容分別放至 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5中的bin,lib/x64,include三個子目錄下,這是%CUDA_PATH%路徑,如果不太確定可以去系統環境變數下查看,最後就是Anaconda2了,下載完成之後打開cmd,輸入以下命令安裝一些python庫
conda install --yes numpy scipy matplotlib scikit-image pipnpip install protobufn
至此,所有準備工作都已經完成了!
2.Caffe編譯
打開D:caffe-windows下的caffe.sln,將編譯選項切換成Release
我這裡刪除了一些以後一般不會用到的工程,其實最主要的是caffe,libcaffe,pycaffe這三個,加快編譯速度.然後我們先編譯libcaffe,一般這個不出問題整個安裝就沒什麼問題了。
最開始VS可能會比較卡,這是在安裝一些第三方庫(opencv,boost之類的,microsoft用Nuget集成在了這一步),安裝完成之後在D:NugetPackages下的這些都是caffe編譯所需的第三方庫
然後默默等待編譯完成即可,大約需要十分鐘
看到這裡之後,這次安裝基本上已經成功了.接下來編譯剩下的即可
大功告成!
3.配置和使用
編譯完成後,接下來做一些簡單的配置:
1.首先,編譯完成後的所有文件都在D:caffe-windowsBuildx64Release目錄下,
裡面包含最重要的就是caffe.exe以及pycaffe,如果需要在別的機器上使用的話,只需要將Release文件夾拷貝過去即可,不需要再重新編譯一遍
2.接下來我們做一些簡單設置,首先打開環境變數設置,
在user variables下新建PATH和PYTHONPATH,填寫對應的文件路徑,這樣就可以便捷使用caffe和caffe python介面了,配置好之後我們打開cmd,先輸入caffe,在python中import caffe,如果都不報錯——證明你可以愉快的進入deep learning的殿堂了^_^
3.安裝git for windows,對於習慣Linux系統的人使用這個會更加方便,當然你只用命令行也可以,這個是可選項n
4.測試
下面我們在mnist數據集上做測試,MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burge在這裡下載這四個文件,解壓到D:caffe-windowsdatamnist中
右鍵打開git bash here,輸入:
../../Build/x64/Release/convert_mnist_data train-images.idx3-ubyte train-labels.idx1-ubyte mnist_train_lmdbn../../Build/x64/Release/convert_mnist_data t10k-images.idx3-ubyte t10k-labels.idx1-ubyte mnist_test_lmdbn
這樣,訓練集和測試集就創建好了,將其拷貝至D:caffe-windowsexamplesmnist目錄下
進入該目錄,打開lenet_train_test.prototxt,修改如下
然後打開lenet_solver.prototxt,修改第二行即可,
這裡暫時不對這些配置文件做解釋,只是安裝完之後進行的測試,ok下面打開bash:
caffe train -solver=lenet_solver.prototxt -gpu 0n
接著就可以看到一大串log出現,好像很厲害的樣子!
最後在測試集上的結果是99.13%!深度學習,很強勢!
好了,windows下的安裝配置就到這裡告一段落了,訓練大多數模型都已經沒問題了
二.VM Ubuntu14.04下安裝CPU版本的Caffe
大多數情況下,windows環境下的caffe能夠完美完成Linux下caffe的功能了,但畢竟Linux是標準平台,網上的很多開源代碼都是基於Linux下的caffe的,比如神經網路可視化工具deepvis,以及RGB大神的RCNN系列,而且大部分情況下只需要應用到Caffe在CPU下的版本,所以這裡給出虛擬機下ubuntu14.04下安裝caffe的過程
1.創建虛擬機
這裡我使用虛擬機軟體是VirtualBox.首先創建一個linux/ubuntu14.04/64位/4GB內存的名為caffe的虛擬機,這裡內存官網建議是8GB,但是筆記本總內存才8GB,大家有條件的建議分8GB
接下來一路下一步,
創建後點擊啟動,選擇鏡像,點擊啟動,
下面就是創建虛擬機的一些常見操作了,貼幾張關鍵的圖吧
點擊continue後,漫長的等待。。。
重啟之後,我們先安裝一下VBox Additions:
選擇設備下的安裝增強功能,在終端中輸入
cd /media/<USER>/VBOXADDITIONS_4.3.16_95972 (where <USER> is your user name)nsudo ./VBoxLinuxAdditions.runn
在Virtual Box Manager, 點擊Settings, 然後選擇常規 | 高級 | 共享剪切板 | 雙向,然後選擇重啟,這樣虛擬機就可以充滿全屏了,不再是一小塊
2.準備工作
首先安裝必要的環境:
sudo apt-get update #更新軟體列表 nsudo apt-get upgrade #更新軟體 nsudo apt-get install build-essential #安裝build essentials nsudo apt-get install linux-headers-`uname -r` #安裝最新版本的kernel headersn
注意:官網缺少前兩步,會導致CUDA安裝失敗
這也是個漫長的步驟,默默等待。。。
然後下載cuda7.5:
sudo apt-get install curlncd Downloads/ncurl -O "http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run"n
這又是個漫長的過程。。。如果嫌這種方式太慢,可以去官網直接下載,然後複製進虛擬機,不過這種方式有時會出現一點問題
chmod +x cuda_7.5.18_linux.run #使其可運行nsudo ./cuda_7.5.18_linux.run #運行n
說明:安裝的過程中會顯示最終用戶許可協議(EULA),很長,可以按『q』退出閱讀,然後安裝的時候不要安裝顯卡驅動,因為虛擬機是沒法使用GPU的,具體如下:
- Accept the EULA
- Do NOT install the graphics card drivers (since we are in a virtual machine)
- Install the toolkit (leave path at default)
- Install symbolic link
- Install samples (leave path at default)
安裝必要的依賴庫:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yamlnsudo easy_install pillown
下載Caffe並安裝Python依賴庫
cd ~ngit clone https://github.com/BVLC/caffe.gitncd caffencat python/requirements.txt | xargs -L 1 sudo pip installn
漫長的等待。。。
增加符號鏈接
sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7 nsudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy n
然後修改Makefile.config
cp Makefile.config.example Makefile.config n
用gedit打開Makefile.config(或者直接用vim在終端中打開修改也可以)
1)去掉 # CPU_ONLY: = 1 的注釋
2)在PYTHON_INCLUDE下, 把/usr/lib/python2.7/dist-packages/numpy/core/include替換成/usr/local/lib/python2.7/dist-packages/numpy/core/include
3.編譯Caffe
終於可以編譯caffe了,這三句即可,如果前面配置一切正常,這裡應該不會出錯
make pycaffe nmake all nmake test n
依然是等待。。。
4.測試
這裡我們測試一下CPU下的caffe能否正常運行即可:
首先為方便使用,我們將PYTHONPATH寫入.bashrc中:n
echo export PYTHONPATH=/home/<USER>/caffe/python >> ~/.bashrc nsource ~/.bashrcn
然後在終端中輸入:python和import caffe
一切正常
下面測試一下mnist數據集:
cd ~/caffe n./data/mnist/get_mnist.sh n./examples/mnist/create_mnist.sh n
然後編輯examples/mnist文件夾下的lenet_solver.prototxt文件,將solver_mode模式從GPU改為CPUn
./examples/mnist/train_lenet.sh n
由於是使用CPU進行訓練,所以速度會比較慢,大概三十分鐘才能整個訓練完
配置過程主要參考官方文檔:Ubuntu 14.04 VirtualBox VM · BVLC/caffe Wiki · GitHub
後面如果需要的話,還會繼續添加在Ubuntu14.04中的caffe配置,但目前這兩種已經夠用了
推薦閱讀:
※batch normalization的multi-GPU版本該怎麼實現?
※深度學習系統相比較傳統的機器學習系統,針對常見的分類問題,精度究竟能有多大提升?
※RNN神經網路訓練過程中weight幾乎不更新,只有bias更新?
※卷積神經網路為什麼要加一層降採樣層呢?
※深度學習在量化投資方面都有哪些可以借鑒應用的地方?如何結合一些策略方法?
TAG:Caffe深度学习框架 | 深度学习DeepLearning | 机器学习 |