mac 上 caffe編譯
一、安裝Caffe依賴環境
1.安裝cmake
安裝http://www.cmake.org/ 我安裝的是3.9
2.安裝HomeBrew
curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1
3.安裝opencv
https://www.opencv.org/ 我安裝的3.4.0
mac上下載 3.4.0 的zip
>cd (opencv dir path) >mkdir release >cd release >cmake -D WITH_IPP=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. >make >sudo make install
3.安裝其他依賴
brew install -vd snappy leveldb gflags glog szip lmdb brew install hdf5 brew install protobuf boost
二、編譯Caffe
>git clone https://github.com/BVLC/caffe >cd (cafe path) >cp Makefile.config.example Makefile.config //mac上只能使用cpu 所以要將 makefile 裡面CPU_ONLY := 1 前面註釋去掉 另外OPENCV_VERSION := 3 註釋也要開啟 >mkdir build >cd build >cmake .. >make >make runtest
出現下面
安裝成功..通過了測試
二、caffe-ssd 編譯
ssd 是 基於caffe的一個目標檢測框架>git clone https://github.com/weiliu89/caffe.git
>git checkout ssd
關於mac 上編譯與上述caffe 過程類似
make過程中如果出現 cbais.h 檔案找不到的 安裝一下 openblas
brew install --fresh -vd openblas
make過程中出現了 vecLib.framework not found的錯誤
在cmake/Modules/FindvecLib.cmake
Line 19, replace/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Accelerate.framework/Versions/Current/Frameworks/vecLib.framework/Headers/
by/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Accelerate.framework/Versions/Current/Frameworks/vecLib.framework/Headers/
10.13(這個是你本機版本)
改完以後 最好重新cmake一下
三、make pycaffe遇到的坑
1. veclib.framework 找不到
將 makefile 中 vecLib 引用的位置 全部替換成 openblas 的 INCLUDE 和 LIB 都替換 如下
BLAS_INCLUDE := /usr/local/Cellar/openblas/0.3.0/include
LDFLAGS +=/usr/local/Cellar/openblas/0.3.0/lib/libopenblas.a
2.No receipt for ‘com.apple.pkg.CLTools_Executables’ found at ‘/’.
終端輸入xcode-select –install 安裝完成即可
3.boost_python not found
找到mac上 boost_python的路徑 執行如下命令
sudo ln -s libboost_python2.7.a libboost_python.a
4. Python.h 檔案找不到
搜尋電腦上的python.h檔案位置路徑,然後修改makefile裡面
PYTHON_INCLUDE 以及PYTHON_LIB 的路徑
5.Fatal Python error: PyThreadState_Get: no current thread
python 存在多個版本導致的 主要是brew 安裝的Python 和 系統自帶的Python 衝突了
建議將makefile中引用python的路徑都設定到brew安裝的python,或者保留一個python版本
https://www.e-learn.cn/content/wangluowenzhang/52106 可以參考下
6. File "caffe/io.py", line 2, in <module>
import skimage.io
sudo pip install scikit-image