MacOS Mojave10.14.6 搭建Caffe

Caffe深度學習框架是比較老的,要不是要做一些特殊硬件相關的工作,我也不會想去配置Caffe,所以大家能用TF和MXNet儘量用吧,或者caffe2

安裝Caffe最大的坑就是它和很多新版本的依賴兼容相性差,所以大家在裝的時候儘量從安裝較老版本的依賴,我在下面會給大家一些推薦。


本地環境

系統:macOS Mojave 10.14.6 64bit 
目標:CPU only Caffe


安裝homebrew和anaconda

根據官網的建議,我們需要用homebrew來安裝管理軟件和包,使用anaconda來管理Python。

在terminal中依次輸入下述命令即可安裝homebrew:

  • xcode-select --install        //如果已經事先安裝Xcode命令行工具,可忽略這一命令
  • /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

可以通過brew命令瞭解是否安裝成功。

接下來安裝anaconda:

直接去官網下載安裝包,建議使用anaconda3,然後通過以下命令來創建修改Python版本環境

  • //格式:conda create --name env_name package_names
  • conda create --name py27 python=2.7

然後用以下命令在base環境和你創建的環境中切換

  • source activate py27 //進入名爲py27的環境 env_name=py27
  • conda deactivate //退出當前環境,回到默認環境

需要注意的是不同環境直接的某些包和依賴不能共用,要個安裝各的


開始安裝各類依賴

Openblas和我也沒去了解的東西(這些東西不太考慮版本,所以先安裝好):

  • brew install -vd snappy leveldb gflags glog szip lmdb doxygen
  • brew install openblas
  • brew install hdf5

然後是OpenCV和boost-Python,別忘了和brew關聯在一起:

如果沒有上述命令出現問題,可能是你link了其他版本到brew上,你可以用unlink和brew解除並重新關聯,或者直接卸載其他版本,我是強烈建議卸載其他版本的,這樣可以避免很多問題,你可以通過brew info 命令或brew search命令查看自己安裝的東西的版本。

接下來是protobuf,由於brew沒有提供合適的版本,我們直接下載3.5.1版本原碼編譯,注意請你先把其他版本的protobuf卸載,這樣可以減少一些麻煩。先cd到合適的文件夾。

  • brew install wget  //若有可忽略
  • wget https://github.com/protocolbuffers/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.tar.gz //獲取源代碼
  • tar xzvf protobuf-all-3.5.1.tar.gz //解壓
  • cd protobuf-3.5.1 //cd進去
  • ./autogen.sh
  • ./configure //有些教程沒有這一步,我加了以後纔可以找到Makefile
  • make //有makefile纔可以用
  • make check
  • sudo make install
     

安裝完成後,輸入protoc --version可以看到相應版本號。


重頭戲caffe

獲取caffe代碼,cd到合適文件夾

  • git clone https://github.com/BVLC/caffe.git 

開始編譯

  • cd caffe
  • mkdir build
  • cd build/
  • cmake ..     //一般這一步會有一大堆問題出現,不要想着用make命令,因爲make已經不支持C++11了,除非你能改出問題的頭文件代碼

我在cmake過程中出現的問題我都放在後面了,可以自己去看。如果成功,可以看到:

  • – Configuring done
  • – Generating done
  • – Build files have been written to: /Users/admin/caffe/build

上述表格中Python的interpreter、libraries、numpy的位置應該保持一致,“ /Users/admin/anaconda2/envs/py27”說明都是py27所指的python。

修改配置文件

CMakeCache.txt

  • set(Caffe_CPU_ONLY OFF) 替換成 set(Caffe_CPU_ONLY ON)

CaffeConfig.cmake

  • CMAKE_CXX_FLAGS:STRING=    替換成    CMAKE_CXX_FLAGS:STRING=-std=c++11
  • CPU_ONLY:BOOL=OFF    替換成    CPU_ONLY:BOOL=ON
  • USE_LEVELDB:BOOL=ON   //如果leveldb報錯,可以試着改成OFF

修改完成後,繼續編譯caffe

  • make all

下面是成功標誌:

  • [100%] Linking CXX shared library …/lib/_caffe.dylib
  • Creating symlink /Users/admin/caffe/python/caffe/_caffe.so -> /Users/admin/caffe/build/lib/_caffe.so
  • [100%] Built target pycaffe
     

繼續,一般這兩步不會出現問題:

  • make install
  • make runtest
  • make pycaffe

最後改驗證caffe是否安裝成功了:

  • source activate py27
  • python -c "import caffe"   //這一步很容易出問題,一般是模塊缺失,我在下面列舉了一下,百度一般也能解決。

如果提示 ImportError: No module named caffe,那還需要進一步將caffe中的python導入到解釋器中,將環境變量放到配置文件裏即可。

  • vim ~/.bash_profile
  • //在文件中加入配置信息 export PYTHONPATH=~/caffe/python:$PYTHONPATH
  • //關閉文件,輸入下述命令,讓環境變量生效 ,或者重啓
  • source ~/.bash_profile

再次輸入python -c "import caffe"若沒出現任何錯誤提示,說明成功了,恭喜你!


使用anaconda的jupyter

打開anaconda-navigater,找到你之前配置的環境名字。

然後安裝jupyter

之後就可以從這裏進入了

或者你可以在py27環境裏用sudo pip install jupyter-notebook安裝,使用jupyter notebook命令進入

進去之後新建個Python文件,用import caffe試試,若不報錯,恭喜,萬里長征第一步結束了!繁重的caffe學習開始了!


一些錯誤彙總

error1:你可能會找不到vecLib.framewor,我幫你找好了

  • //vecLib include directory
  • vecLib_INCLUDE_DIR:PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers

errer2:

  • The dependency target "pycaffe" of target "pytest" does not exist ! 

網上各種病因千奇百怪,解決方法也很多,我的原因是boost安裝了兩個版本,刪除一個就好了。

error3:

  • ImportError: No module named skimage.io

找不到模塊,安裝嘍

  • sudo pip install 'networkx==2.2'     //注意此時我用的Python2.7,如果你版本不一樣或許可以跳過這一步
  • sudo pip install -U scikit-image

error4:

  • ImportError: No module named google.protobuf.internal

解決方法

  • sudo pip install google

  • sudo pip install protobuf

其他注意事項:

使用Cmake命令注意實在build文件夾下,Make命令是在build上級目錄。若使用Cmake,最後一步需要make all,也是在build下。(因爲有兩個makefile文件,所以提醒一下)

 


本文參考了以下文章:

Mac安裝CPU-only Caffe :https://blog.csdn.net/qq_38712865/article/details/89267439

深度學習框架Caffe在Mac上的安裝和測試 :https://www.linuxidc.com/Linux/2016-06/132548.htm

caffe官網 :http://caffe.berkeleyvision.org/install_osx.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章