雖然在這篇博客裏面裝了caffehttps://blog.csdn.net/kellyroslyn/article/details/96835290, 但是後來發現沒有去掉WITH_PYTHON_LAYER :=1
和USE_CUDNN:=1
的註釋,就編譯安裝了。發現問題回去修改,再編譯的時候總是出錯,顯示找不到lopencv_imgcodecs
文件,即使修改了Makefile在裏面添加lopencv_imgcodecs
也無濟於事。所以現在重新下載重新編譯。
環境:Ubuntu16.04
Anaconda3 虛擬環境:caffe3
一、安裝Opencv
已經
source activate caffe3
pip install opencv-python==3.2.0.8
pip install opencv-contrib-python
二、下載caffe
現在在caffe3環境的基礎上,重新克隆caffe安裝包到home/drl/workspace/目錄下,然後重新修改Makefile.config和Makefile
(疑問:把caffe安裝包放在anaconda3/envs/caffe3/目錄下的一直編譯不出來,不知道是不是因爲路徑的問題;放在home/drl/workspace/目錄下就一次性編譯成功。有可能是因爲在anaconda3/envs/caffe3/路徑下的時候我是直接copy caffe35編譯成功的Makefile.config和Makefile所導致的)
在這裏我是用cp Makefile.config.example Makefile.config
命令得到Makefile.config之後再修改
三、Makefile.config修改內容如下:
1、USE_CUDNN: =1 去掉註釋
2、USE_OPENCV :=1去掉註釋,並將0值改爲1
3、CUDA_ARCH 去掉20和21兩行
4、註釋 PYTHON_INCLUDE := /usr/include/python2.7
/usr/lib/python2.7/dist-packages/numpy/core/include (大概在69行的位置)
5、去掉 ANACONDA_HOME和PYTHON_INCLUDE的註釋,並改寫python的路徑和版本
6、註釋掉 PYTHON_LIB := /usr/lib,然後去掉PYTHON_LIB := $(ANACONDA_HOME)/lib的註釋
7、去掉 WITH_PYTHON_LAYER := 1的註釋
8、在INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include 後面添加 /usr/include/hdf5/serial/
四、Makefile文件的修改:
主要修改Derive include and lib directories部分的內容
1、P198行,LIBRARIES += hdf5_hl_serial
改爲LIBRARIES += hdf5_serial_hl hdf5_serial
2、201行,
LIBRARIES += opencv_core opencv_highgui opencv_imgproc
改爲
LIBRARIES += opencv_imgcodecs opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
(因爲opencv2沒有imgcodecs這個模塊,如果不在LIBRARIES裏面添加愛,會提示找不到lopencv_imgcodecs)
3、208行,PYTHON_LIBRARIES ?= boost_python python2.7
改爲
PYTHON_LIBRARIES ?= boost_python3 python3.5m
五、編譯caffe
我只用了make
編譯,沒使用cmake,在caffe目錄下執行make all -j8
,編譯完之後執行make pycaffe -j8
六、拷貝編譯後的libcaffe.so至caffe的虛擬環境
首先,切換到caffe/python目錄,然後執行cp -rf caffe/ ~/anaconda3/envs/caffe35/lib/python3.5/
命令,這一步命令將python包拷貝至虛擬環境目錄;cp -rf ../.build_release/lib/ ~/anaconda3/envs/caffe35/lib/
命令,這一步將相關庫拷貝至虛擬環境目錄。
cd python/
cp -rf caffe/ ~/anaconda3/envs/caffe35/lib/python3.5/
cp -rf ../.build_release/lib/ ~/anaconda3/envs/caffe35/lib/
七、在上述所有的步驟執行完以後,在虛擬環境下,需要安裝一些caffe依賴的python庫,如下所示:
pip install scikit-image protobuf
八、caffe訓練MNIST數據集
首先將之前下載好的mnist數據集放到workspace/caffe/data/mnist/目錄下,然後解壓,具體步驟如下所示:
詳細流程看:https://blog.csdn.net/kellyroslyn/article/details/96183663的第八部分。