linux(ubuntu14.04)+cuda7.5+caffe+openCV2.4.9+matlab+cudnn7.0新手配置
ubuntu14.04的安装
******************************************************************************************************
1.先下载一个ultraios,无需激活,然后制作u盘启动工具,具体教程请看百度经验教程
http://jingyan.baidu.com/article/d169e186800f02436711d87b.html
2.制作好u盘启动工具之后。然后就是安装ubuntu14.04,在这之前要先下载好ubuntu14.04,然后找到first boot,然后启动u盘就可以安装系统了
,安装分区问题见Swimbird博 客:http://blog.sina.com.cn/s/blog_5f0a505101017ruf.html
******************************************************************************************************
cuda7.5安装
******************************************************************************************************
去官网下载自己系统所需要的cuda7.5,https://developer.nvidia.com/cuda-downloads
我下的是Linux;x86-64;Ubuntu;14.04;runfile(local) 链接:http://pan.baidu.com/s/1i5lTAh3 密码:qrq8
进行配置,首先刚装的系统需要
sudo apt-get update
然后
sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
因为我的系统是14.04,所以按照官网上的要求继续进行第二步操作
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
安装开发所需要的一些基本包:
sudo apt-get install build-essential
1.首先在BIOS设置里选择用Intel显卡来显示或作为主要显示设备(开机进入bios设置,找到advanced中的VGA configuration设置,将intel显卡设为primary)。(我电脑没找到这个设置,跳过了)
2.将nouveau添加到黑名单,防止它启动
cd /etc/modprobe.d
sudo gedit nvidia-graphics-drivers.conf
写入:
blacklist nouveau
保存并退出: wq!
检查:
cat nvidia-graphics-drivers.conf
对于:/etc/default/grub,添加到末尾。
sudo gedit /etc/default/grub
末尾写入:
rdblacklist=nouveau nouveau.modeset=0
保存并退出: wq!
检查:
cat /etc/default/grub
3. 进入Ubuntu, 按 ctrl+alt+F1 进入tty1, 登录tty1后输入如下命令
sudo service lightdm stop
运行.run文件,不要覆盖opengl,
sudo ./cuda_7.5.18_linux.run --no-opengl-libs
不要覆盖opengl;不要覆盖opengl;不要覆盖opengl;否则装完驱动只有桌面图标
在安装过程中,
Accept EULA conditions
Say YES to installing the NVIDIA driver
SAY YES to installing CUDA Toolkit + Driver
Say YES to installing CUDA Samples
安装完成, check device nodes : Check if /dev/nvidia* files exist。如果没有的话sudo modprobe nvidia
重启桌面服务sudo service lightdm start。此时能够登录,没有login-loop问题。
安装完成后需要在/etc/profile中
①添加环境变量,
sudo gedit /etc/profile
加入
export PATH=/usr/local/cuda-7.5/bin:$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-7.5/lib64
执行下列命令使之立刻生效
sudo ldconfig
继续,安装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 /usr/local/cuda-7.5/samples
sudo make
编译完成后, 进入 samples/bin/x86_64/linux/release
sudo ./deviceQuery
如果出现显卡信息,则驱动及cuda安装成功:
******************************************************************************************************
OpenCV2.4.9安装
******************************************************************************************************
然后是安装OpenCV:
Github上的脚本:https://github.com/jayrambhia/Install-OpenCV
下载该脚本,进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限
chmod +x *.sh
然后安装最新版本:$ sudo ./opencv2_4_9.sh
接着前面的工作,就是安装MATLAB:
(一)下载MATLAB Linux安装包,并解压
链接:http://pan.baidu.com/s/1hsuJdGw 密码:t596
(二)可执行权限: sudo chmod +x mount_matlab2016a
./mount_matlab2016a
(三)挂在镜像,cd进入,执行安装: sudo ./install
(四)然后安装步骤和Windows下相同
(五)完成激活后验证是否安装成功: sudo /usr/local/MATLAB/R2016a/bin/matlab
(六)添加应用和图标到启动菜单中: sudo gedit /usr/share/applications/Matlab.desktop, 把下载目录中Matlab.desktop
内容如下:
[Desktop Entry]
Name=Matlab
GenericName=Matlab R2016a
Comment=Matlab R2016a: The Language of the Techinical Computing
Exec=../matLab/bin/matlab -desktop //-desktop前面有空格
Icon=../matLab/icons/Matlab.png
StartupNotify=true
Terminal=false
Type=Application
Categories=Development;
文件中的内容拷贝进去即可修改桌面启动菜单权限,显示home文件夹下的隐藏文件: Ctrl + h,然后修改MATLAB在桌面快捷键权限:
$ sudo chmod 777 -R ./.matlab
在面板Development 中找到matlab 图标,然后添加到桌面,最后运行
unmount_matlab2016a将镜像ISO卸载掉。
现在安装和用mnist测试一下caffe,
1. 安装pycaffe必须的一些依赖项:
sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-opencv python-nose python-pandas python-gflags Cython ipython
sudo apt-get install -y protobuf-c-compiler protobuf-compiler
cp Makefile.config.example Makefile.config
4. 配置Makefile.config文件(仅列出修改部分)
a. 启用GPU,添加注释"#"
# CPU_ONLY := 1
b. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
c. 如果使用MKL的时候改为:
BLAS := mkl
d. 配置路径,实现caffe对Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2016a
最新版的caffe报错:building caffe: failed to see hdf5.h
解决:
sudo apt-get install libhdf5-dev
然后配置文件中修改一下,
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
5. 配置Makefile文件(实现对OpenCV 2.x的支持)
查找“Derive include and lib directories”一节,修改“LIBRARIES +=”的最后一行,增加opencv_imgcodecs
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
(1). change the Makefile :
add "opencv_imagecodecs" to the last of LIBRARIES += opencv_core opencv_highgui opencv_imgproc;
(2). remove the files in build :
rm -rf ./build/*
(3). make all -j8
6. 编译caffe
(-j8)是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
make all -j8
make test -j8
make runtest -j8
编译Python和Matlab用到的caffe文件
make pycaffe -j8
make matcaffe -j8
1. 降级安装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++
2. 暴力引用新版本GLIBCXX_3.4.20
sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2016a/sys/os/glnxa64/libstdc++.so.6.0.20
sudo mv libstdc++.so.6 libstdc++.so.6.backup (仅仅是备份,可以不操作)。
sudo ln -s libstdc++.so.6.0.20 libstdc++.so.6
sudo ldconfig -v
通过命令“strings /usr/local/MATLAB/R2016a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了GLIBCXX_3.4.20,如果已经存在,基本上就成功了。
接下来就是测试。
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
cd
sudo tar xvf cudnn-7.0-linux-x64-v4.0-rc.tgz
cd cuda/include
sudo cp *.h /usr/local/include/
cd ../lib64
sudo cp lib* /usr/local/lib/
cd /usr/local/lib
sudo chmod +r libcudnn.so.4.0.4
sudo ln -sf libcudnn.so.4.0.4 libcudnn.so.4
sudo ln -sf libcudnn.so.4 libcudnn.so
sudo ldconfig
将caffek根目录下 Makefile.config中 USE_CUDNN 行的注释去除,然后重新进行编译。
cd ~/caffe
sudo vi Makefile.config
将USE_CUDNN 行的注释符号#去除,即 USE_CUDNN := 1
然后重新编译
sudo make clean
sudo make all
到此,全部安装完成。
如果没有gpu,则不能用cudnn。
参考链接
1:http://blog.csdn.net/u010678153/article/details/46891571
2:http://www.bubuko.com/infodetail-1270886.html
3:http://www.th7.cn/system/lin/201602/154122.shtml
4:http://www.cnblogs.com/denny402/p/5067265.html