GTX1080+Ubuntu16.04+Cuda8.0+Anaconda2+Opencv3+Matlab2014a+caffe

来源:互联网 发布:中铁采购网络交易平台 编辑:程序博客网 时间:2024/05/16 07:10

今天做的还算蒜粒,几个小时就把matlab搞定了...(我知道大神肯定会觉得我智商简直了...没错,谁让我把2015b那个翻来覆去弄好多遍呢。对了,说着忽然想起一个小tips,也是我今天学来的。)


如何删掉安装的matlab。

cd /usr/local/MATLAB
sudo rm MATLAB


linux下都是文件,不存在卸载一说,就是把所有相关文件都删了。我之前七搞八搞改了一些依赖还是什么的我自己都不记得了,结果就删不全了。这次吃了个教训,没安装好坚决不走下一步。


好了,说正事。配caffe(ref: http://www.voidcn.com/blog/u011272513/article/p-6147583.html)

首先我是解决了一下之前配置过来还没做好的一些坑。


在我sudo apt-get install 一些必要的环境也会报错,或者是在装东西也会出现这种,虽然还是不回影响安装的进程,但是总感觉不太对。报错内容:

/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link

/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link

搜了一下,解决方式(ref: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-375/+bug/1662860):

$ sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
$ sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
$ sudo ln -s /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.375.39
$ sudo ln -s /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.375.39

第一个ref中是cuda7.5,我之前所有的安装,cuda啊什么的,要改什么加什么我都没有管。他文章中有这样一个步骤,我想提一下,下图这个地方:

我们在caffe官方的配置说明中可以看到这样的东西(ref: http://caffe.berkeleyvision.org/installation.html)


这也就是说可以有三种选择的。默认的是ATLAS,如果你不选另外两个,那么什么都不需要做。然后不好的地方大概就是加速不太好吧... 剩下的OpenBLAS我装过,挺简单的,到上面官网的网址点OpenBLAS进去按照步骤走很快就很装好,具体我不记得了,那次装的被我一起格掉了。需要注意的是,如果你装了,而且想用他,你需要在Makefile.config里面把BLAS :=open。这个也很容易,你看到MAkefile.config里面这样东西你就会了。至于中间那个Intel MKL部分,也就是我提到参考文献里面说的一部分内容。我是不太清楚它的好处有多大,但是我尝试着去下了软件,按照步骤走,感觉真的好麻烦,想着本来可以不用做这件事,于是懒筋一犯我就里面跳过了。如果你想尝试,可以按照ref里面的步骤走。我是直接从他caffe的安装于配置开始的。

照例先是一堆的安装项。但比较特别的是,我是从下往上拷进终端命令的,也就是说我最后才sudo apt-get update sudo apt-get upgrade(没错,就是这个顺序,因为我拷到这里才意识到我自己拷反了。不知道会不会有影响,在此备注一下)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y build-essential cmake git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y libatlas-base-dev
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install -y python-pip
sudo apt-get install -y python-dev
sudo apt-get install -y python-numpy python-scipy
sudo apt-get install -y libopencv-dev


上面那个不算什么,最坑的是给我显示这个鬼东西:


报错内容: PackageNotFoundError: Package not found: Conda could not find '

循着这条线索,我找到了ref:https://github.com/conda/conda/issues/4860. 当我看到底下这句话的时候,我内心是崩溃的


难道是这个anaconda本身出了什么问题..毕竟人家十三天前才说正在解决,然后又没有然后... 心塞。翻了自己之前写的安anaconda的那篇文章,想重新装一下试试看,顺手歇了一句

conda update conda

它就开始升级了,然后再写conda的命令就好了... 当然,刚刚那个网页里面我后来也发现有人写了这句话,但是他没成功。

难道是版本问题?我也不懂... 反正就是可以了,然后接着就是在https://github.com/BVLC/caffe 下载caffe。下完之后是一个caffe_master.zip 解压,重命名为caffe. 

cd ~/Downloads/caffe
cp Makefile.config.example Makefile.config
sudo gedit Makefile.config

配置问题:

OPENCV_VERSION := 3    #取消注释符号#,应用opencv3#注释第66行自带的pythonANACONDA_HOME := /home/jason/anaconda2  PYTHON_INCLUDE := $(ANACONDA_HOME)/include \  $(ANACONDA_HOME)/include/python2.7 \  $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \   #PYTHON_INCLUDE之前的注释#去掉,以及之后两行前的#也去掉PYTHON_LIB := $(ANACONDA_HOME)/libINCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
MATLAB_DIR := /usr/local/MATLAB/R2014a

然后再
sudo gedit Makefile
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

然后再
sudo gedit ~/.bashrc
打开的文件最后输入export LD_LIBRARY_PATH="/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH”
sudo ldconfig #编译立即生效
然后再
make all
出问题了...
PROTOC src/caffe/proto/caffe.proto
protoc: /home/aem/anaconda2/lib/libstdc++.5a.6:version 'GLIBCXX_3.4.21' not found (required by protoc)
...
Makefile:638: recipe for target '.build_release/src/caffe/proto/caffe/pb.cc' failed
make: *** [.build_release/src/caffe/proto/caffe.pb.cc] Error 1
还包括
usage: conda [-h] [-V] command ...
conda: error: argument command: invalid choice: '/home/aem/anaconda2/bin/conda' (choose from u 'info', u'help', u'list',u'search')
解决方法:conda install libgcc.具体如下图:
然后就是
make allmake runtestmake pycaffemake matcaffe
到这里又出问题了...
报错内容:
MEX matlab/+caffe/private/caffe_.cpp
Building with 'g++'
Warning: You are using gcc version '5.4.0'. The version of gcc is not supported. The version currently supported with MEX is '4.7.x'. For a 
这个千万不要以为是什么gcc的问题,然后重装系统什么的...(ref:https://github.com/ShaoqingRen/faster_rcnn/issues/20)
先打开Makefile.config,加入:
MATLAB_INCLUDE := ./MATLAB/R2014a/toolbox/distcomp/gpu/extern/include
INCLUDE_DIRS := $(PYTHON_INCLUDE) $(MATLAB_INCLUDE) /usr/local/include
还是会报错:Matlab_DIR must be specified in Makefile.config to build matcaffe. 解决方法:
MATLAB_DIR := /usr/local/MATLAB/R2014b前面的#要去掉。
去掉之后还是会报错,报错内容如下:
Makefile:517: recipe for target 'matlab/+caffe/private/caffe_.mexa64' failed
make: *** [matlab/+caffe/private/caffe_.mexa64] Error 255
解决方法:打开Makefile文件,在CXXFLAGS += -MMD -MP底下加一句(ref:http://blog.5ibc.net/p/109283.html) 
CXXFLAGS += -std=c++11
然后再重新来一次就好了。但是要记得,再每次之前都要make cleanmake cleanmake allmake runtestmake pycaffemake matcaffe
Supplementary:I did those work above yesterday, and I find some problems this morning. When I run cd ~/Downloads/caffemake mattestI got an Error shows below:Next I found that I got this warning after make matcaffeWarning: You are using gcc version '5.4.0'. The version of gcc is not supported. The version currently supported 

I figure the problem on this way(ref: https://github.com/vlfeat/matconvnet/issues/770)
cd /usr/local/MATLAB/R2016b/sys/os/glnxa64  #where I installed my matlab
sudo mv libstdc++.so.6.0.20 bak-libstdc++.so.6.0.20
sudo mv libstdc++.so.6 bak-libstdc++.so.6
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 ./
sudo ln -sf ./libstdc++.so.6.0.21 ./libstdc++.so.6
IMPORTANT:You should go to the (if you build R2014a, you should change R2016b to R2014a in below line)
/usr/local/MATLAB/R2016b/sys/os/glnxa64 
and ensure the name of document. In my case, I did not get 
so.6.0.20 
I just get 
so.6.0.17 
Thus, these are something different.

                                             
0 0
原创粉丝点击