微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ubuntu14.04+cuda8.0+caffe+MATLABR2014a+python+opencv

Ubuntu14.04+cuda8.0+caffe+MATLABR2014a+python+opencv:

从一开始到现在,因为各种原因,装过不少次系统,虚拟机,装过不少次Caffe,按过好多次驱动........安装过程很多坑,因为自己也是个新手,为节省其他新手的时间,我总结总结整个安装流程。关于Ubuntu版本的选择,建议用14.04这个比较稳定的版本。因个人电脑不同,可能会有差异,后面是我在安装过程中遇到的各种坑并附有解决方案)注意:虚拟机里的ubuntu,并不能支持真实的GPU,(除了特定版本的VMWare和特定的GPU)

第一:Ubuntu 14.04 上安装 cuda7.5/8.0

1.Ubuntu 14.04 上安装 cuda7.5/8.0
CUDA7.5和CUDA8.0的安装过程是一毛一样的。所以如果安装CUDA8.0直接将下文中的所有7.5替换为8.0即可。
我的安装建议是:
1) 一定要下一份CUDA官方的安装文档,按照它的步骤一步步慢慢来,不可偷懒。(是一份英文的建议先仔细阅读,里面没有一句废话。)
2) 在安装之前一定要详细检查自己的系统环境、软件是否符合CUDA的安装要求。不要存有侥幸心理,跳过检查步骤。
3) 每进行一项操作,都检查一下该项操作是否成功。
下面分享一下我的安装步骤。基本跟CUDA的官方安装文档的操作是一致的,不同的地方都有特别注明。
安装CUDA主要分三大环节
一、安装前的环境准备和检查
二、安装CUDA
三、安装完的校验。
一 .检查自己的电脑环境是否具备安装CUDA的条件
1.检查自己的GPU是否是CUDA-capable
在终端中输入: $ lspci | grep -i nvidia ,会显示自己的NVIDIA GPU版本信息
去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中(在官方文档中有链接)
2.检查自己的Linux版本是否支持 CUDA(Ubuntu 14.04没问题)
3.检查自己的系统中是否装了gcc
在终端中输入: $gcc –version 可以查看自己的gcc版本信息
4.检查是否安装了kernel header和 package development
在终端中输入: $uname –r 可以查看自己的kernel版本信息
在终端中输入:$ sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development
以上检查我的电脑系统都满足要求,如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。
二、安装CUDA
a.选择安装方式
CUDA提供两种安装方式:package manager安装和runfile安装
我本来选的是 package manager 安装,这种方法相对简单,但尝试了几次都失败。后来是转换到runfile安装才成功的。因此此处只介绍runfile安装方式。
下载cuda安装包:cuda官网下载,根据系统信息选择对应的版本,runfile安装的话最后一项要选择 runfile文件
CUDA 8.0下载链接
b.禁用 nouveau
终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。
Ubuntu的nouveau禁用方法
在/etc/modprobe.d中创建文件blacklist-nouveau.conf,在文件中输入一下内容
blacklist nouveau options nouveau modeset=0
打开终端,运行
$ sudo update-initramfs –u
设置完毕可以再次运行 $ lsmod | grep nouveau 检查是否禁用成功,如果运行后没有任何输出,则代表禁用成功。
c) 重启电脑,到达登录界面时,alt+ctrl+f1,进入text mode,登录账户
d) 输入 $ sudo service lightdm stop 关闭图形化界面
e) 切换到cuda安装文件的路径,运行$ sudo sh cuda_8.0_linux.run
按照提示一步步操作
遇到提示是否安装openGL ,选择no
其他都选择yes或者
安装成功后,会显示installed,否则会显示Failed
f)输入 $ sudo service lightdm start 重新启动图形化界面。返回到图形化登录界面,输入密码登录
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。
g) 重启电脑。检查Device Node Verification。
检查路径/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files)
如果没有的话,可以参考官方文档里的指导步骤,进行添加
h) 设置环境变量。
终端中输入 $ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行。
$ export PATH=/usr/local/cuda-7.5/bin:$PATH$ export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64
保存文件
这里有点与官方安装文档稍有不同,需要说明:
官方文档里说只需在终端中运行上述两条export语句即可,但如果不将它们不写入/etc/profile文件的话,这样的环境变量在你退出终端后就消失了,不起作用了,所以写入才是永久的做法。
i) 重启电脑,检查上述的环境变量是否设置成功。
终端中输入 : $ env
输出的环境变量中检查有无上述 g) 中设置的变量,如果有则代表设置成功。
到此为止,CUDA的安装算是告一段落了。为了保险起见,建议进行下述的检查工作,确保真正的安装成功。
三、安装完的校验。
a) 检查 NVIDIA Driver是否安装成功
终端输入 :$ cat /proc/driver/nvidia/version 会输出NVIDIA Driver的版本号
b) 检查 CUDA Toolkit是否安装成功
终端输入 : $ nvcc –V 会输出CUDA的版本信息
c) 尝试编译cuda提供的例子
切换到例子存放的路径,认路径是 ~/NVIDIA_CUDA-8.0_Samples
然后终端输入:$ make
如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。
整个编译的时间持续比较长,耐心等待,大概十几分钟是需要的。
d) 运行编译生成的二进制文件
编译后的二进制文件 认存放在~/NVIDIA_CUDA-7.5_Samples/bin中。
切换路径 : cd ~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release
终端输入 :$ ./deviceQuery

再检查一下系统和CUDA-Capable device的连接情况
终端输入 : $ ./sandwidthTest
我的没出来结果,但是我的运行:abc@abc-Lenovo-ideapad-300S-14ISK:~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release$./bandwidthTest
时,出现:

[CUDA Bandwidth Test] - Starting...
Running on...

Device 0: GeForce 920M
Quick Mode

Host to Device Bandwidth,1 Device(s)
PINNED Memory Transfers
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 1526.6

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

成功了!

遇到的错误

在编译cuda的例子时;

/usr/bin/ld:cannot find -lglut 错误:
解决:
sudo apt-get install freeglut3 freeglut3-dev

注意:

1.一定要按照官方文献去做,可以一次性安装好了,如果卸载,切勿要卸载干净。

2.在安装过程中,一定要注意禁用 nouveau否则会报错,之前就因为随便搜了一博客写的,没有这一步,自己找了好久。

3.注意不要选择安装openGL,可能会导致进入Ubuntu的登录界面循环进不去(可能是这个地方)


第二:安装caffe


1. 安装一一般依赖项
sudo apt-get install libleveldb-dev libsnappy-dev libopencv-devlibhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install xorg-dev build-essential libglu1-mesa-dev libc6-dev
sudo apt-get install g++ libboost-dev cmake make git doxygen vim
注:官方方教程中还安装了libprotobuf-dev,我不需要就没有安装,因为后续pycaffe安装需要的是protobuf-3.x,libprotobuf-dev安装的是protobuf-3.x. 后面面两个框内的安装内容非非官方方所给,只是一一些基础安装的项目目。
2. 安装BLAS
1. sudo apt-get install libatlas-base-dev
3. 安装Python
1. sudo apt-get install python-dev
4. 其他依赖
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
5. 安装protobuf-3.0.0 (从提供的代码中下载)
1. 解压protobuf-cpp-3.0.0.tar.gz: tar zxvf protobuf-cpp-3.0.0.tar.gz
2. cd protobuf-3.0.0
3. ./configure
4. make
5. make check
6. sudo make install
6. 使用用Anaconda安装pycaffe需要的环境(从提供代码中下载Anaconda2-2.4.2-Linux- x86_64.sh)
1. 提供的版本是Linux 64bit的版本,如果是其他版本需要到官方方重新下载。
2. 执行行bash Anaconda2-2.3.2-Linux-x86_64.sh
3. 下载caffe-master并解压(从提供代码中下载即可),假设解压在主文文件夹~/
4. cd ~/caffe-master/python
5. 找到文文件requirements.txt,执行
for req in $(cat requirements.txt); do conda install $req; done
不断的按y.
遇到问题:与解决:

路径切换到Anaconda的路径下,执行行bash Anaconda2-2.3.2-Linux-x86_64.sh,一路都按 yes,安装完毕后,执行python --version只有Python 2.7.6 ,注(我虚拟机Ubuntu14.04,想在它上面安装Anaconda,但又有所顾虑。我先想到的是,先卸载Ubuntu自带的Python,这是大多数人的想法。许多人由于卸载了自带的Python而造成了Ubuntu的系统崩溃,浪费自己的大量时间不说,更是给自己带来了不好的心情。)

执行 conda –version 时,出现错误:conda:未找到命令。

添加这句echo 'export PATH="计算机/home/abc/anaconda2/bin:$PATH"' >> ~/.bashrc 后,

在执行 source ~/.bashrc

后再执行 conda --version

结果为conda 4.2.9 ,而且在执行python --version
后结果为:Python 2.7.12 :: Anaconda 4.2.0 (64-bit)
即说明:重新启动Terminal, 我们会发现Python版本已经是anaconda的版本了,并且原有的python没有受到任何影响,二者并行不备,各自独立地存在。(注意:路径是自己的)

7. 编译安装caffe
(基于我现在的了)都在caffe根目录下操作:
a,) 进入caffe-master目录,复制一份Makefile.config.examples
cp makefile.config.example makefile.config
b.)

make all
make test
make runtest
make pycaffe
(要是cpu还要更改makefile.configcpu和各种路径的添加)
遇到问题:
在执行 make pycaffe时

即编译 pycaffe时报错:Fatal error: numpy/arrayobject.h没有那个文件或目录
解决方法
sudo apt-get install python-numpy
然后
sudo make pycaffe
pycaffe就编译成功了
8. 测试是否安装成功
1. 测试caffe
1. 进入入~/caffe-master
2. 运行行./build/tools/caffe
3. 出现了例如-gpu,-weights的参数提示示标识,即为安装成功
2. 测试pycaffe
1. 运行行 python 进入入python
2. 运行行import caffe
3. 无无任何报错出现下一一个“>>”标识,即为安装成功

注意:caffe中运行所有的程序,都必须在根目录下进行,否则会出错.

运行历程时:
"libcudart.so.8.0 cannot open shared object file: No such file or directory"

解决:


sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

配置是cpu时:
caffe编译的问题解决:“cublas_v2.h: No such file or directory”
主要问题还是没有把cuda的头文件、库的路径放置到caffe的Makefile.config
具体来说:
CUDA中的include、lib路径是安装目录下/usr/local/cuda/targets/x86_64-Linux/下面的include和lib
将其分别添加到caffe根目录下Makefile.config中的"INCLUDE_Dirs"、“LIBRARY_Dirs”后面就可以了。(注意:cuda的版本就自己的而言)

第三.安装opencv2.4.10

1.下载路径:http://opencv.org/downloads.html
安装步骤
2. 解压到任意目录
unzip opencv-2.4.10.zip
3.进入源码目录
cd opencv-2.4.10
4. 事先安装一些软件
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config Python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
5. 进入cmake
cd cmake
6. cmake编译生成Makefile,
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
安装所有的lib文件都会被安装到/usr/local目录
7. 编译,并安装
sudo make install

还有配置环境变量和测试。

(我之前时基于python2.7的如果配置好了在执行这句就可以支持python3的)

For python3:还要安装:

  • pip3 install opencv-python
第七步出现如下错误

解决

cmake -D CMAKE_BUILD_TYPE=bulid -D CMAKE_INSTALL_PREFIX=/usr/local -DCUDA_GENERATION=Kepler ..

错误
chmod: 无法访问"sh": 没有那个文件或目录
解决
在当前文件下执行可执行文件要加./chmod 777 *.sh

错误
Fatal error: opencv2/nonfree/nonfree.hpp: 没有那个文件或目录 #include "opencv2/nonfree/nonfree.hpp"
解决
sudo apt-get update
sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
sudo apt-get update
sudo apt-get install libopencv-nonfree-dev

另外:

第四.安装MATLAB与caffe的接口

首先需要安装MATLAB,我装的是MATLAB2014a。

下载matlab安装包

  • 网盘上下载安装包以及Crack
  • Crack中包含license和破解文件

解压得到iso镜像,并挂载到linux

  • $sudo mkdir /路径/temp_matlab (此文件夹用于临时存放挂载后的iso文件)
  • $sudo mount -o loop /解压的路径/MATHWORKS_R2014A.iso /路径/temp_matlab (path为我们存放iso的路径)

安装

$cd /路径/temp_matlab

$sudo ./install

选择不联网安装

安装过程中使用序列号

  • 12345-67890-12345-67890

激活

  • 安装完成之后选择Crack下的license_405329_R2014a.lic文件进行激活

破解

  • 由于/usr/local/MATLAB只有只读的权限,所以先要将其权限修改为”可写”
  • $sudo chmod -R a+w /usr/local/MATLAB
  • 将Crack/Linux下的libmwservices.so 复制到 /usr/local/MATLAB/R2014A/bin/glnxa64

将先前挂载的iso卸载

  • sudo umount /download/temp_matlab

启动matlab

  • sudo matlab

配置caffe与MATLAB的接口:

配置MATLAB前,我已经配置好了caffe GPU的版本,编译matcaffe之前需要修改Makefile.config,我MATLAB的路径是/usr/local/MATLAB/R2014a
所以Makefile.config修改如下,记得去掉#号

MATLAB_DIR := /usr/local/MATLAB/R2014a

然后就可以编译了,进到caffe的根目录,我是~/caffe

 
 
  • 1
  • 2
  • 3
make clean make matcaffe

编译的时候,我有出现警告说我的gcc版本太高了,不过也编译成功了,然后编译下mattest,测试下编译好的matcaffe是否能用

make mattest

这个转载地址:http://blog.csdn.net/u012746763/article/details/50419153有降级的。

编译成功后会是这个结果:


遇到的错误

Invalid MEX-file '/home/abc/caffe-master/matlab/+caffe/private/caffe_.mexa64': libhdf5_hl.so.10: cannot
open shared object file: No such file or directory

解决方法

export LD_LIBRARY_PATH=/path/to/your/anaconda2/lib:$LD_LIBRARY_PATH
我的是
export LD_LIBRARY_PATH=/home/abc/anaconda2/lib:$LD_LIBRARY_PATH

第五:Linux一些常用命令记录及解释:

1.程序安装

  本地安装 命令格式  

  sudo dpkg -i softname.deb

  其中dpkg为Debian Package的缩写,dpkg常用命令有: -i 安装 ;-r 卸载

  dpkg命令是一个底层的安装工具,apt是dpkg上层工具,用于从远程获取软件包以及处理复杂的软件包之间的关系。

  apt常用的用法,apt-get后面接install 或remove对软件进行安装和卸载

  apt-get install <package>

2.设置系统root密码

  如果使用光盘安装Ubuntu,按照安装向导来进行帐号、分区等设置,而在这个安装向导程序中没有提示进行root密码的设置,所以在 Ubuntu安装好后需要手动设置root密码。而如果是跳过安装向导,点击桌面上的Install图标来进行安装的话,在安装过程中则会提示设置 root密码。当然,如果需要修改root密码也可以使用以下方法:打开终端,在终端中输入命令:

sudo passwd root

接下来,按照提示一步步设置系统的root密码。 输入新的 UNIX 口令: 重新输入新的 UNIX 口令: passwd:已成功更新密码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐