1. 程式人生 > >mac 上 caffe編譯

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