Intro.
本篇blog紀錄在macOS10.12上,部署Caffe
build with Anaconda python2.7 , opencv3 and Matlab 2016b .
Install Dependency
至官網安裝anaconda
使用Homebrew 安裝library
可以使用anaconda的 hdf5,不用brew install hdf5
更新:使用brew install hdf5 比較不會有link不到的問題
「坑」opencv3 是keg only,記得要link
|
「坑」建議安裝1.59版本的boost,才能正常編譯
Caffe中把某些依賴庫所在的文件夾名字限定為boost,可以將/usr/local/opt/boost@1.59,改名為/usr/local/opt/boost。
Install Caffe
|
修改Makefile.config
此步驟很重要,要很細心地去依照自己安裝的依賴,去更改內容!
注意這邊要修改的是Makefile.config
,不是Makefile.config.example
打開 Makefile.config
客製化編譯環境
由於macbook沒有GPU,只用CPU跑,故要去掉cpu only的註解
|
「坑」註解掉USE LEVELDB := 0 才不會在最後編譯matlab接口的時候出錯
|
使用opencv3,故要註解掉此行
|
有些教學會推薦使用openblas,或是用intel的MKL,但我這邊就用預設的,若有改變記得將BLAS:=改為自己使用的BLAS
|
去掉matlab註解,並修改matlab路徑,我是2016b
|
因為要使用anaconda的python,所以這邊要去掉anaconda註解,並修改anaconda的正確安裝位置,並把原本的PYTHON INCLUDE註解掉,避免路徑衝突。
|
使用 anaconda python 的library
|
如果要編譯Matlab的接口,要在LIBRARY DIR這邊加入maci64的路徑,
尤其各個路徑排列順序要對,如下所示。
由於編譯會有找不到opencv的問題,故在INCLUDE DIR & LIBRARY DIR 後面加上opencv3的路徑
|
編譯caffe
修改完成後
FAQ
由於caffe 的dependency很多,建議找一個月內的教程來安裝,避免某一個dependency版本與caffe編譯衝突,小編依照半年前自己紀錄的教程來安裝,發現一堆坑,後來將boost版本改為1.59,用opencv2,才順利解決。
以下就稍微紀錄一些我遇到的問題。
編譯期間會有很多問題,只能慢慢google,並解決。
Runtest 可能會報錯:
原因是Library not loaded,需要手動加入,如下(需改為自己的路徑)
繼續出錯:
一樣的問題,再度手動加入
出錯:
把Makefile.conig
中的leveldb=0註解掉即可mattest成功
最後再次make runtest
make matcaffe
make mattest
就成功了。