本方法是传统方法,安装起来比较麻烦,但最保险。之后还会共享新的方法,没有100%能成功的方法,具体使用哪种方法,请根据寄几的GPU来决定。
A.安装前的准备工作
$ sudo apt-get update //这步是更新源。
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev //这步是安装各种依赖包。
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler //官网上指导的需要安装的一些工具包。
$ sudo apt-get install build-essential //必备包,几乎任何教程上都有。
B.禁独显 //禁独显是为了安装显卡驱动时万无一失
1.在BIOS设置里选择用Intel显卡来显示或作为主要显示设备(开机进入bios设置,找到advanced中的VGA configuration设置,将intel显卡设为primary)。 //不同的bios肯定不同,反正要用集显禁独显。抱歉,这个步骤我没办法用文字详细描述,请自行百度一下哦。
2.将nouveau添加到黑名单,防止它启动
$ cd /etc/modprobe.d
$ sudo gedit nvidia-graphics-drivers.conf
写入:blacklist nouveau
保存并退出: wq! //这里的wq! 是针对图形界面的保存退出。
检查:
$ cat nvidia-graphics-drivers.conf //出现blacklist nouveau
接下来对于:/etc/default/grub,添加这行黑名单到末尾。
$ sudo gedit /etc/default/grub
末尾写入:rdblacklist=nouveau nouveau.modeset=0
保存并退出: wq!
检查:
$ cat /etc/default/grub //出现rdblacklist nouveau nouveau.modeset=0
3.进入Ubuntu字符界面(tty1), 按 ctrl+alt+F1 进入tty1, 登录tty1后输入如下命令
$ sudo service lightdm stop //结束桌面显示管理器,回桌面时按ctrl+alt+f7
C.装显卡驱动,先从官网下好驱动放在home里
$ cd /home/yourname //cd到文件目录
$ sudo sh linux367.run //安装驱动
$ sudo service lightdm start //重新启用桌面
$ cat /proc/driver/nvidia/version //检查一下驱动版本和gcc版本
D.装老朋友cuda
$ sudo chmod +x ./ cuda_8.0_linux_64.run //获取权限,要先cd到cuda的文件夹
1.将CUDA8.0解压成三个文件
$ sudo sh cuda*.run --noexec --target . //(.前面有空格)
分别为:
CUDA安装包: cuda-linux64-8.0.run //解压出来名称可能有不同
NVIDIA驱动: NVIDIA-Linux-x86_64-361.run
SAMPLE包: cuda-samples-linux-8.0.run
(这里一定不能安装NVIDIA驱动)!!!建议直接把它删掉,因为之前已经安装过driver了
2.开始安装CUDA,
$ sudo ./cuda-linux64-8.0.run //文件名自己要改哦
安装完成后需要在/etc/profile中
①添加环境变量
$ PATH=/usr/local/cuda-8.0/bin:$PATH$ export PATH
保存后, 执行下列命令, 使环境变量立即生效
$ source /etc/profile
②添加lib路径,
下面这段代码的意思是:在/etc/ld.so.conf.d/新建文件cuda.conf,并编辑。
$ cd /etc/ld.so.conf.d
$ sudo touch cuda.conf
$ sudo gedit cuda.conf
/usr/local/cuda-8.0/lib64 //这行复制到新建的conf中
执行下列命令使之立刻生效
$ sudo ldconfig
3.安装CUDA SAMPLE,安装下列依赖包
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev //这里若有小部分报错,暂时忽略,无所谓的,经常敲代码,哪有不报错。哈哈哈
然后用下述命令安装sample文件
$ cd 路径 //打开到sample的路径,路径尼要自己写哦
$ sudo ./cuda-samples-linux-8.0.run //这里的sample文件名要改成尼解压出来那个名字
完成后编译Sample文件,更若干分钟后
$ cd /usr/local/cuda-6.5/samples
$ sudo make
编译完成后,检查一下
$ cd /usr/local/cuda-8.0/samples/bin/x86_64/linux/release
$ sudo ./deviceQuery
如果出现显卡信息比如有显卡型号,功率等,则驱动及cuda安装成功。
E.安装matlab2014a //matlab版本不同安装及破解方式是不同的
下载好iso格式的,还有crack
先解压(右击提取到此处)
$ cd //cd到该目录
$ sudo chmod +x matlab2014a //给权限
挂载iso文件:右击打开方式-磁盘映像挂载器
cd到挂载的路径
$ sudo ./install //顺便说一句,这里的.表示当前文件夹
安装过程和windows及其相似,使用文件密钥安装,接受许可,选已有安装秘钥,去crack里找到秘钥输进去,安装路径默认,默认工具包全部安装,安装完毕,激活,不使用internet激活,浏览到lic证书,复制crack里的libmwservice.so文件到默认路径/user/local/MATLAB/R2014A/bin/glnxa64,覆盖掉。
$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/libmwservices.so //我只会用代码来实现
打开matlab,
$ sudo /usr/local/MATLAB/R2014a/bin/matlab
添加应用和图标到启动菜单中:
$ sudo gedit /usr/share/applications/Matlab.desktop //用gedit打开Matlab.desktop
内容如下:
[Desktop Entry]
Name=Matlab
GenericName=Matlab R2014a
Comment=Matlab R2014a: The Language of the Techinical Computing
Exec=/usr/local/MATLAB/R2014a/bin/matlab -desktop //-desktop前面有空格
Icon=/media/matlab/matlab.png //这里可能有问题
StartupNotify=true
Terminal=false
Type=Application
Categories=Application;Development;matlab;
文件中的内容拷贝进去即可修改桌面启动菜单权限,显示home文件夹下的隐藏文件: Ctrl + h,然后修改MATLAB在桌面快捷键权限:
$ sudo chmod 777 -R ./.matlab //777表示最高权限
在面板搜索 中找到matlab 图标,然后添加到桌面,最后运行
F.安装openblas //可以把它理解为是一个矩阵运算库
先下载git,然后安装OpenBLAS
没安装git要先装:
$ sudo apt-get install git
$ mkdir ~/git
$ cd ~/git
$ git clone https://github.com/xianyi/OpenBLAS.git
$ cd OpenBLAS
$ sudo apt-get install gfortran
$ make FC=gfortran -j $(($(nproc) + 1)) //这一步反应很剧烈,冷静一点,不要害怕!
$ sudo make PREFIX=/usr/local install //install成功
添加lib库的变量路径
$ echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
G.下面装老朋友caffe
1. 安装pycaffe必须的一些依赖项:
$ sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
$ sudo apt-get install -y protobuf-c-compiler protobuf-compiler
克隆caffe//也可以去官网下载,但我只用过克隆法
$ cd ~/git
$ git clone https://github.com/BVLC/caffe.git
修改配置文件
$ cd caffe
$ cp Makefile.config.example Makefile.config
如果安装了cuDNN然后把Makefile文件的USE_CUDNN := 1注释去掉
$ sed -i 's/# USE_CUDNN := 1/USE_CUDNN := 1/' Makefile.config //就是把#去掉
如果安装了OpenBLAS,修改BLAS参数
$ sed -i 's/BLAS := atlas/BLAS := open/' Makefile.config //就是把atlas改成open
配置路径,实现caffe对Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a //这里我就改了matlab的路径,并且去掉了前面的#
编译caffe
(-j8)是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all -j8 //-j8是线程,只要你喜欢,j8,j18都是可以的,全部调用的命令是make runtest -j $(($(nproc) +1))
$ make test -j8
$ make runtest -j8
编译Python和Matlab用到的caffe文件
$ make pycaffe -j8
$ make matcaffe -j8
然后在编译matlab是会遇到错误,由于matlab版本不同而支持的编译器版本不同,所以会出现问题。
Matlab 2014a(2015a)的版本是支持版本4.7.x所以在使用matlab调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下降级的解决方案。
降级安装gcc/g++版本为4.7.x
(1). 下载gcc/g++ 4.7.x
$ sudo apt-get install -y gcc-4.7
$ sudo apt-get install -y g++-4.7
(2). 链接gcc/g++实现降级
$ cd /usr/bin
$ sudo rm gcc
$ sudo ln -s gcc-4.7 gcc
$ sudo rm g++
$ sudo ln -s g++-4.7 g++
重新编译matcaffe //重新编译的时候一定要clean
$ cd ~/git/caffe //先cd到~/git/caffe
$ sudo make clean //重新编译caffe必清零
$ make all
$ make test //到这一步结束
$ make runtest
$ make pycaffe
$ make matcaffe //成功编译
至此,cuda+openBLAS+matlab+caffe 配置结束。
H.跑个例程mnist
1. 数据预处理
$ sh data/mnist/get_mnist.sh
2.重建lmdb文件。Caffe支持三种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,根据自己需要选择不同输入吧。
$ sh examples/mnist/create_mnist.sh
生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集
3. 训练mnist
$ sh examples/mnist/train_lenet.sh
看到你训练出来的caffemodel了吧,恭喜你,配置成功了,拜拜,我要回去睡觉了。