原文連接 https://jinkey.ai/post/tech/m...
本文做者 Jinkey(微信公衆號 jinkey-love,官網 https://jinkey.ai)
感謝 yubang 老司機指導填坑,大神的博客 http://blog.yubangweb.com/
文章容許非篡改署名轉載,刪除或修改本段版權信息轉載的,視爲侵犯知識產權,咱們保留追求您法律責任的權利,特此聲明!
因爲歷史緣由:
個人電腦有五六個直接安裝在系統的Python的環境,加上一堆 Python 虛擬環境。python
包括 Mac 系統的緣由:
自帶的系統環境沒法安裝 pip 及其餘第三方庫,必須經過 homebrew來自行安裝一個python 而這個python路徑和系統的並不同。
包括 Anaconda 的緣由:
以前爲了安裝某些科學計算庫方便使用了Anaconda,而且須要同時使用python2和3,因此由多了兩個環境。git
在如此混亂的開發環境下,配置 Caffe 實在艱難,特此教程。github
由於 Pycharm Community Edition 2017.1 不支持遠程調試,其餘開發環境很差用。你要用 docker 的話能夠不忽略該教程了。web
由於隨着各類庫更新,不必定有空更新教程致使該教程某些步驟不可用,特此說明一下寫這個文章的時候各個庫的版本。
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.0docker
終端運行shell
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install python
下載(get-pip.py)[https://bootstrap.pypa.io/get...],切換到 get-pip.py所在目錄,終端輸入命令bootstrap
python get-pip.py
完成後安裝虛擬環境(也不是必須的,後面配置路徑的時候會說到,這裏順便介紹虛擬環境,避免多個項目形成開發環境很混亂)ruby
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
,參考下圖
建立好以後,在控制檯(點Terminal 那個Tab)依賴 caffe 所須要的 Python庫
運行如下命令微信
pip install numpy scikit-image protobuf
從(https://github.com/BVLC/caffe...[https://github.com/BVLC/caffe/releases]下載最新版本的代碼,解壓,從終端進入項目目錄cd caffe-1.0
。該教程使用的是 caffe-1.0。app
cp Makefile.config.example Makefile.config
用 Xcode 打開 Makefile.config(不要用 word 或者文本編輯打開)
若是你的 Mac 的顯卡是Intel 的GPU,那麼是無法使用 cuda 加速的,找到並把# CPU_ONLY := 1
的註釋去掉,即CPU_ONLY := 1
,這樣讓 Caffe 僅在 CPU 下運行。
找到如下片斷
# 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)
,保存並關閉。
用 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
編譯且測試成功。
將 Caffe-1.0/python 路徑下的 caffe 文件夾拷貝到虛擬環境下
/Users/Yourname/CaffeLearn/lib/python2.7/site-packages/
在項目中 import caffe 便可。
原文連接 https://jinkey.ai/post/tech/m...
本文做者 Jinkey(微信公衆號 jinkey-love,官網 https://jinkey.ai)
感謝 yubang 老司機指導填坑,大神的博客 http://blog.yubangweb.com/ 文章容許非篡改署名轉載,刪除或修改本段版權信息轉載的,視爲侵犯知識產權,咱們保留追求您法律責任的權利,特此聲明!!