ubuntu16.04下安裝anaconda3+caffe+cuda8.0+cudnnv5.1+matlab R2015b以及出現的錯誤

一、安裝順序

我是先安裝anaconda3(python3.6.6),然後安裝cuda9.0+cudnnv7,最後從官網下載caffe(linux版)進行caffe編譯的,最後安裝matlabR2015b

ubuntu16.04截圖快捷鍵:對整個屏幕 Pr Scrn ,對某一個窗口alt+Pr Scrn,對一個區域(自定義的區域)shift+Pr Scrn

二、anaconda3的安裝

這部分以及cuda9.0的安裝網上有很多博客都說的很明白,一般沒有什麼太大問題,安裝完畢記得添加環境變量

1、anaconda3添加環境變量:

終端輸入:sudo gedit ~/.bashrc

export PATH="/home/zyn/anaconda3/bin:$PATH"\

2、卸載之前的cuda9.0

sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl

sudo rm -rf /usr/local/cuda-9.0

3、在網上找教程安裝cuda8.0(ubuntu下64位的且是deb版本的,runfile版本的比較難安裝)

三、編譯caffe

首先安裝caffe依賴包,此時不在caffe目錄下,而是在比如zyn@zyn-xps-8700:~$下

1、sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhadf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommends libboost-all-dev

sudo apt-get install libatlas-base-dev

sudo apt-get install cmake

sudo apt-get libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install build_essential

一定要確保上述依賴包全部安裝成功,如若不成功,可先嚐試終端輸入sudo apt-get update以後再次安裝

2、如果需要使用caffe的python接口,則需要安裝/home/zyn/caffe/python下面的requirements.txt裏面要求的所有包

可以安裝依賴sudo apt-get install python-dev python-numpy

                       sudo apt-get gfortran(這句主要是爲了成功安裝scipy的,否則可能scipy安裝不成功)

                       sudo apt-get python-scipy

注:上述python依賴我是安裝了的,因爲我們之前已經安裝了anaconda,所以這一步也許可以省略掉,我不是很確定,開始我是沒有安裝這些依賴,後來安裝了下,可以試試先不安裝

在caffe目錄下輸入cd ./python

                               for req in $(cat requirements.txt); do pip install $req; done

然後就可以看到這個txt裏面列出的包是否已經全部成功安裝。

3、關於opencv的安裝

其實不用專門安裝opencv的,後面需要的caffe接口matlab裏面自帶的有opencv,python裏面也可以通過pip install python-opencv來安裝。在我將要運行的代碼裏面沒有使用opencv

4、配置Makefile.config

在caffe根目錄下輸入:cp Makefile.config.examples Makefile.config

然後修改Makefile.config,caffe根目錄下繼續輸入sudo gedit Makefile.config

在文件中可以通過ctrl+f來查找某一行

去掉USE_CUDNN := 1的註釋,去掉USE_OPENCV:=1的註釋,由於我沒有使用opencv,所以網上說的opencv_version:=3的註釋我沒有去掉。

使用cuda8.0,去掉-gencode arch=compute_20,code=sm_20 \
        -gencode arch=compute_20,code=sm_21 \

#MATLAB_DIR := /usr/local改爲你自己的路徑,並去掉註釋:MATLAB_DIR := /home/zyn/MATLAB/R2015b

我在這個編譯裏沒有使用anaconda的python,使用系統自帶的,所以

PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/lib/python2.7/dist-packages/numpy/core/include

【注:如果你們使用anaconda的python,可以將上述註釋掉,然後修改下列代碼就行了(去掉註釋,改成自己的版本)

#ANACONDA_HOME := $(HOME)/anaconda3
 #PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
         #$(ANACONDA_HOME)/include/python3.6m \
         #$(ANACONDA_HOME)/lib/python3.6m/site-packages/numpy/core/include

# PYTHON_LIBRARIES := boost_python3 python3.6m】

取消WITH_PYTHON_LAYER := 1的註釋

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

改爲:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

5、配置Makefile文件,這個文件在caffe的目錄下,注意不是Makefile.config文件

在181行將LIBRARIES += glog gflags protobuf boost_system boost_filesystem m 修改爲

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

第大概425行將NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

修改爲NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

以上就配置完畢,下面開始編譯

四、caffe編譯

在caffe目錄下進入終端輸入:sudo make all -j8

                                                    sudo make test

                                                     sudo make runtest -j8

編譯matlab接口:sudo make matcaffe這裏可能會提示你gcc版本不超過×××,不用理會,也不用對gcc進行降級啥的,

然後sudo make mattest -j8

這裏一般會出現錯誤,說什麼無效的mex文件啥的,最後出來個caffe.set_mode_gpu()或者caffe.set_mode_cpu()錯誤啥的,忘記了怎麼修改的,但好像是與.bashrc文件有關

我的bashrc文件如圖所示,當在python下面輸入import caffe不成功的時候在.banshrc文件中輸入

export PYTHONPATH=/home/zyn/caffe/python:$PYTHONPATH(下圖中第124行)

    五、在matlab裏面運行caffe程序

可以在命令窗口中輸入 cd path

    然後進入.m程序所在的文件夾,執行程序

六、出現的錯誤之一(只截圖這一個)

       就在終端中輸入locate libtiff.so.5(這個文件名是可以改變的,就看你哪個出現沒有版本信息了)

然後輸入 cp /usr/lib/x86_64-linux-gnu /home/zyn/anaconda3/bin/libtiff.so.5即可,然後問題就會解決了

七、忘記是哪一步出現錯誤了,問題是這麼解決的(錯誤描述大概是找不到libstdc++.so.6,然後把這個文件移除並用/usr/lib/x86_64-linux-gnu/libstdc++.so.6替換它,之後又出現新的問題,說是什麼invalidate:大寫字母),就用下面的解決辦法,在caffe目錄下執行,注意換成你的matlab路徑

sudo rm -rf /home/zyn/MATLAB/R2015b/sys/os/glnxa64/libstdc++.so.6
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/zyn/MATLAB/R2015b/sys/os/glnxa64/libstdc++.so.6
sudo rm -rf /home/zyn/MATLAB/R2015b/bin/glnxa64/libopencv_core.so.2.4
sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.9  /home/zyn/MATLAB/R2015b/bin/glnxa64/libopencv_core.so.2.4
sudo rm -rf /home/zyn/MATLAB/R2015b/bin/glnxa64/libopencv_imgproc.so.2.4
sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.9  /home/zyn/MATLAB/R2015b/bin/glnxa64/libopencv_imgproc.so.2.4
sudo rm -rf /home/zyn/MATLAB/R2015b/bin/glnxa64/libopencv_highgui.so.2.4
sudo ln -s /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9  /home/zyn/MATLAB/R2015b/bin/glnxa64/libopencv_highgui.so.2.4
sudo rm -rf /home/zyn/MATLAB/R2015b/bin/glnxa64/libfreetype.so.6
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so.6  /home/zyn/MATLAB/R2015b/bin/glnxa64/libfreetype.so.6

八、啓動matlab時出現一堆類似於警告的東西比如

uname: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
sed: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
getconf: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
awk: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
awk: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
/home/zyn/MATLAB/R2015b/bin/glnxa64/MATLAB: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
sh: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
ps: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
/bin/sh: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
grep: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
grep: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
grep: /home/zyn/MATLAB/R2015b/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4)
解決方式:在/home/zyn/MATLAB/R2015b下啓動終端輸入sudo ./matlab就可以無警告的打開matlab了。

 

 

 

 

 

 

 

 

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