原文連接 jinkey.ai/post/tech/m…
本文做者 Jinkey(微信公衆號 jinkey-love,官網 jinkey.ai )
感謝 yubang 老司機指導填坑,大神的博客blog.yubangweb.com/
文章容許非篡改署名轉載,刪除或修改本段版權信息轉載的,視爲侵犯知識產權,咱們保留追求您法律責任的權利,特此聲明!python
因爲歷史緣由:
個人電腦有五六個直接安裝在系統的Python的環境,加上一堆 Python 虛擬環境。git
包括 Mac 系統的緣由:
自帶的系統環境沒法安裝 pip 及其餘第三方庫,必須經過 homebrew來自行安裝一個python 而這個python路徑和系統的並不同。
包括 Anaconda 的緣由:
以前爲了安裝某些科學計算庫方便使用了Anaconda,而且須要同時使用python2和3,因此由多了兩個環境。github
在如此混亂的開發環境下,配置 Caffe 實在艱難,特此教程。web
由於 Pycharm Community Edition 2017.1 不支持遠程調試,其餘開發環境很差用。你要用 docker 的話能夠不忽略該教程了。docker
由於隨着各類庫更新,不必定有空更新教程致使該教程某些步驟不可用,特此說明一下寫這個文章的時候各個庫的版本。
MacOS 10.12.6
Python 2.7.13
pip 9.0.1
Pycharm Community Edition 2017.1
Homebrew 1.3.1
cmake version 3.8.2
caffe 1.0shell
終端運行bootstrap
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"複製代碼
brew install python複製代碼
下載(get-pip.py)[bootstrap.pypa.io/get-pip.py]… get-pip.py所在目錄,終端輸入命令ruby
python get-pip.py複製代碼
完成後安裝虛擬環境(也不是必須的,後面配置路徑的時候會說到,這裏順便介紹虛擬環境,避免多個項目形成開發環境很混亂)bash
sudo pip install virtualenv複製代碼
brew install cmake複製代碼
brew install -vd snappy leveldb gflags glog szip lmdb
brew tap homebrew/science
brew install hdf5 opencv
brew install --build-from-source --with-python -vd protobuf
brew install --build-from-source -vd boost boost-python
brew install protobuf boost複製代碼
這裏我使用的是 Pycharm 新建虛擬環境,新建在 /Users/Yourname/CaffeLearn
(創建在哪裏均可以,你本身記住就好)
選擇基礎環境的時候記得選擇經過 Homebrew 安轉的那個,應該是在/usr/local/Cellar/python/2.7.13
,參考下圖
微信
pip install numpy scikit-image protobuf複製代碼
從(github.com/BVLC/caffe/… caffe-1.0`。該教程使用的是 caffe-1.0。
cp Makefile.config.example Makefile.config複製代碼
用 Xcode 打開 Makefile.config(不要用 word 或者文本編輯打開)
若是你的 Mac 的顯卡是Intel 的GPU,那麼是無法使用 cuda 加速的,找到並把# CPU_ONLY := 1
的註釋去掉,即CPU_ONLY := 1
,這樣讓 Caffe 僅在 CPU 下運行。
(微信公衆號 jinkey-love)
找到如下片斷
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include複製代碼
PYTHON_INCLUDE修改爲( 步驟2.5叫大家記住的虛擬環境路徑!!! 如今就有用了,必定得分別能找到Python.h
和 numpy/arrayobject.h
兩個文件),後面接着是python2.7仍是python2.7.13仍是python2.7.12取決於大家安裝的版本,教程後面提到的部分也請注意這點。
PYTHON_INCLUDE := /Users/Yourname/CaffeLearn/include/python2.7 \
/Users/Yourname/CaffeLearn/lib/python2.7/site-packages/numpy/core/include複製代碼
保存,(caffe-1.0目錄)終端運行
cmake .複製代碼
cmake完成後,用 Xcode 打開項目目錄下的 CaffeConfig.cmake(不要用 word 或者文本編輯打開),把倒數第三行的set(Caffe_CPU_ONLY OFF)
改爲set(Caffe_CPU_ONLY ON)
,保存並關閉。
(微信公衆號 jinkey-love)
用 Xcode 打開項目目錄下的 CMakeCache.txt(不要用 word 或者文本編輯打開)
CPU_ONLY:BOOL=OFF複製代碼
改成
CPU_ONLY:BOOL=ON複製代碼
此外,找到而後修改PYTHON_EXECUTABLE:FILEPATH
、PYTHON_INCLUDE_DIR:PATH
、PYTHON_LIBRARY:FILEPATH
,修改以下
//Path to a program.
PYTHON_EXECUTABLE:FILEPATH=/Users/Yourname/CaffeLearn/bin/python2.7
//Path to a file.
PYTHON_INCLUDE_DIR:PATH=Users/Yourname/CaffeLearn/include/python2.7
//Path to a library.( 經過 Homebrew 安裝的 Python 環境)
PYTHON_LIBRARY:FILEPATH=/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib複製代碼
保存並關閉。
不然在接下來 make 的過程可能會出現錯誤:
'pyconfig.h' cannot be found
在終端運行如下命令創建鏈接
export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:/usr/include/python2.7/"複製代碼
在終端依次執行
make all
make install
make runtest複製代碼
(微信公衆號 jinkey-love)
編譯且測試成功。
將 Caffe-1.0/python 路徑下的 caffe 文件夾拷貝到虛擬環境下
/Users/Yourname/CaffeLearn/lib/python2.7/site-packages/
在項目中 import caffe 便可。
原文連接 jinkey.ai/post/tech/m…
本文做者 Jinkey(微信公衆號 jinkey-love,官網 jinkey.ai)
感謝 yubang 老司機指導填坑,大神的博客blog.yubangweb.com/文章容許非篡改署名轉載,刪除或修改本段版權信息轉載的,視爲侵犯知識產權,咱們保留追求您法律責任的權利,特此聲明!!