caffe+cuda7.0+opencv3.0.0+mkl ubuntu14.04配置
2016-03-23 18:07
337 查看
实验室亲测好用:
caffe+cuda7.0+opencv3.0.0+mkl ubuntu14.04配置,有需要的朋友可以参考下。
今天终于配置成功了caffe,花了我整整三天啊,fuck!不过我看一些blog,有的说花了半个月,我也就平衡了。废话少说,切入正题。
其实网上大部分教程是cuda6.5+opencv2.4.10,但近期如果下载cuda的话,只有cuda7.0,如果用openc2.10的话,编译opencv的时候就会报错,所以只能现在opencv3.0.用cuda7.0+opencv3.0配置完,编译caffe的时候又会出错,因为opencv3.0有些变动,需要改一下caffe里的makefile文件(具体见下文)。详细过程如下:
我用的linux版本是ubuntu14.04.02,这次安装caffe也是在安装系统后直接安装的,可以说是在纯净版的ubuntu上装的(安装的时候我没有选择联网,也没有安装第三方软件,安装完后也没有升级,推荐安装英文版,中文版没试过,估计会有各种问题),安装过程大家可以自行搜索,推荐留出100G以上空间。
本文主要包含4个部分,包括:
第一部分 nVidia驱动和CUDA Toolkit的安装和调试
第二部分 opencv3.0.0安装和调试
第三部分 mkl安装和调试
第四部分Python、Matlab安装和调试
第五部分 Caffe的安装和测试
第一部分:nVidia驱动和CUDA Toolkit的安装和调试
一、Verify You Have a CUDA-Capable GPU
执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于https://developer.nvidia.com/cuda-gpus,就没问题了
$ lspci | grep -i nvidia
二、Verify You Have a Supported Version of Linux
$ uname -m && cat /etc/*release
重点是“x86_64”这一项,保证是x86架构,64bit系统
三、Verify the System Has gcc Installed
$ gcc --version
没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,不过Ubuntu 14.04是默认有的
四、Download the NVIDIA CUDA Toolkit
下载地址:https://developer.nvidia.com/cuda-toolkit 下载.run 文件
验证地址:https://developer.nvidia.com/rdp/cuda-rc-checksums
$ md5sum filename
例如:md5sum cuda_7.0.23_linux_64.run ,这个文件的正确 md5 = (具体数值我记不得了,只要出现值了,一般没问题)
五、Handle Conflicting Installation Methods
根据官网介绍,之前安装的版本都会有冲突的嫌疑
所以,之前安装的Toolkit和Drievers就得卸载,屏蔽,等等
六、Graphical Interface Shutdown
退出GUI,也就是X-Win界面,操作方法是:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。
关闭桌面服务:
$ sudo stop lightdm
七、Interaction with Nouveau
Nouveau是一个开源的显卡驱动,Ubuntu 14.04 默认安装了,但是它会影响nVidia驱动的安装,所以只有请他回老家了,sorry!
$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf
写入:
blacklist nouveau
options nouveau modeset=0
保存并退出:
wq!
$ sudo update-initramfs -u
检查:$ cat
/etc/modprobe.d/blacklist-nouveau.conf
八、Installation CUDA 6.5
切换到cuda_7.0.23_linux_64.run 所在的目录,然后执行安装命令:
$ sudo sh cuda_6.5.11_rc_linux_64.run
这里会一路问你各种问题,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter, 其实就是让你接受协议,然后安装的默认位置确认等等,recruit就别自定义安装位置了,默认才是天堂。
九、Extra Libraries
安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
十、驱动装完了,可以回到GUI界面了,也可以继续留这里玩文本。。。
$ sudo start lightdm
十一、POST-INSTALLATION ACTIONS
1. Environment Setup
$ export PATH=/usr/local/cuda-7.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH
PS:如果出现安装失败,重启系统,重新安装一遍基本都可以解决,实在不行就卸载原来的驱动再安装一遍。
a. 卸载现有驱动
$ sudo nvidia-installer --uninstall
b. 重装CUDA Toolkit
$ sudo sh cuda_7.0.23_linux_64.run
十二. cuda环境配置:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
. 完成lib文件的链接操作,执行:
$ sudo ldconfig -v
第二部分:opencv3.0.0的安装和调试
网上大部分教程是下载编译好的安装包,我安装后问题很多,不如自己下载编译,自己亲自动手实践后才能记得住,很简单。下载官网原版OpenCV:http://opencv.org/
Enter the created temporary directory (<cmake_binary_dir>) and proceed with:
第三部分:mkl的安装和调试
首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings, 请下载Student版,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。下载完之后,解压文件
一、接下来是安装过程,先授权,然后安装:
$ cd (压缩包所在路径)
$ tar zxvf (压缩包名) (如果你是直接拷贝压缩文件过来的)
$ chmod a+x (压缩包名) -R
$ sudo ./install_GUI.sh
下面的步骤就是一步步点next了(我的在prerequsition中会警告说缺少lib32库,忽略即可)
二、MKL与CUDA的环境设置
1. 新建intel_mkl.conf, 并编辑之:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
2. 完成lib文件的链接操作,执行:
$ sudo ldconfig -v
第四部分 Python。matlb安装和调试
1. 安装python IDE运行环境
选择一个适合你的IDE运行环境,我是用的是Spyder,因为它内置了 iPython 环境,Caffe有不少的程序是基于 iPython 环境完成的。安装方法很简单,直接在Ubuntu软件中心搜索“spyder”即可安装。
2、maltb安装过程,(请参考其他教程,破解和window下一样)
第五部分 Caffe的安装和测试
官网下载caffe包https://github.com/BVLC/caffe/
一、安装其他依赖项
1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install
如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。
2. 其他依赖项,确保都成功
$ 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
二、安装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 protobuf-c-compiler protobuf-compiler
2. 切换到Caffe的下载文件夹,然后执行:
$ cp Makefile.config.example Makefile.config
修改新生成的Makefile.config文件,修改“BLAS := mkl”,这个非常重要。
3.修改Makefile文件(不是Makefile.config)
在位置((LIBRARIES += glog gflags protobuf leveldb snappy \
lmdb boost_system hdf5_hl hdf5 m \
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs))处
添加opencv_imgcodecs
这一步非常重要,否则编译后会出现错误如下:
CXX/LD
-o .build_release/tools/convert_imageset.bin
.build_release/lib/libcaffe.so: undefined reference to
const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'
原因就是opencv3.0.0把imread相关函数放到imgcodecs.lib中了,而非原来的imgproc.lib
4. 编译caffe-master!!!"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all
$ make test
$ make runtest
四、使用MNIST数据集进行测试
Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1. 数据预处理
$ sh data/mnist/get_mnist.sh
2. 重建lmdb/leveldb文件。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
这时你会在终端窗口中看到caffe的训练过程
至此配置caffe的工作已经完成了
补充:
1、我还没有配置cuDNN,后续会补上
2、安装过程中如果出现问题,请google,百度之,一般都会有人遇到类似问题,实在解决不了,不要浪费时间,重装系统虽然麻烦,但是上上策,重装个一两遍,根本不是事啊。
caffe+cuda7.0+opencv3.0.0+mkl ubuntu14.04配置,有需要的朋友可以参考下。
今天终于配置成功了caffe,花了我整整三天啊,fuck!不过我看一些blog,有的说花了半个月,我也就平衡了。废话少说,切入正题。
其实网上大部分教程是cuda6.5+opencv2.4.10,但近期如果下载cuda的话,只有cuda7.0,如果用openc2.10的话,编译opencv的时候就会报错,所以只能现在opencv3.0.用cuda7.0+opencv3.0配置完,编译caffe的时候又会出错,因为opencv3.0有些变动,需要改一下caffe里的makefile文件(具体见下文)。详细过程如下:
我用的linux版本是ubuntu14.04.02,这次安装caffe也是在安装系统后直接安装的,可以说是在纯净版的ubuntu上装的(安装的时候我没有选择联网,也没有安装第三方软件,安装完后也没有升级,推荐安装英文版,中文版没试过,估计会有各种问题),安装过程大家可以自行搜索,推荐留出100G以上空间。
本文主要包含4个部分,包括:
第一部分 nVidia驱动和CUDA Toolkit的安装和调试
第二部分 opencv3.0.0安装和调试
第三部分 mkl安装和调试
第四部分Python、Matlab安装和调试
第五部分 Caffe的安装和测试
第一部分:nVidia驱动和CUDA Toolkit的安装和调试
一、Verify You Have a CUDA-Capable GPU
执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于https://developer.nvidia.com/cuda-gpus,就没问题了
$ lspci | grep -i nvidia
二、Verify You Have a Supported Version of Linux
$ uname -m && cat /etc/*release
重点是“x86_64”这一项,保证是x86架构,64bit系统
三、Verify the System Has gcc Installed
$ gcc --version
没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,不过Ubuntu 14.04是默认有的
四、Download the NVIDIA CUDA Toolkit
下载地址:https://developer.nvidia.com/cuda-toolkit 下载.run 文件
验证地址:https://developer.nvidia.com/rdp/cuda-rc-checksums
$ md5sum filename
例如:md5sum cuda_7.0.23_linux_64.run ,这个文件的正确 md5 = (具体数值我记不得了,只要出现值了,一般没问题)
五、Handle Conflicting Installation Methods
根据官网介绍,之前安装的版本都会有冲突的嫌疑
所以,之前安装的Toolkit和Drievers就得卸载,屏蔽,等等
六、Graphical Interface Shutdown
退出GUI,也就是X-Win界面,操作方法是:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。
关闭桌面服务:
$ sudo stop lightdm
七、Interaction with Nouveau
Nouveau是一个开源的显卡驱动,Ubuntu 14.04 默认安装了,但是它会影响nVidia驱动的安装,所以只有请他回老家了,sorry!
$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf
写入:
blacklist nouveau
options nouveau modeset=0
保存并退出:
wq!
$ sudo update-initramfs -u
检查:$ cat
/etc/modprobe.d/blacklist-nouveau.conf
八、Installation CUDA 6.5
切换到cuda_7.0.23_linux_64.run 所在的目录,然后执行安装命令:
$ sudo sh cuda_6.5.11_rc_linux_64.run
这里会一路问你各种问题,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter, 其实就是让你接受协议,然后安装的默认位置确认等等,recruit就别自定义安装位置了,默认才是天堂。
九、Extra Libraries
安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
十、驱动装完了,可以回到GUI界面了,也可以继续留这里玩文本。。。
$ sudo start lightdm
十一、POST-INSTALLATION ACTIONS
1. Environment Setup
$ export PATH=/usr/local/cuda-7.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH
PS:如果出现安装失败,重启系统,重新安装一遍基本都可以解决,实在不行就卸载原来的驱动再安装一遍。
a. 卸载现有驱动
$ sudo nvidia-installer --uninstall
b. 重装CUDA Toolkit
$ sudo sh cuda_7.0.23_linux_64.run
十二. cuda环境配置:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
. 完成lib文件的链接操作,执行:
$ sudo ldconfig -v
第二部分:opencv3.0.0的安装和调试
网上大部分教程是下载编译好的安装包,我安装后问题很多,不如自己下载编译,自己亲自动手实践后才能记得住,很简单。下载官网原版OpenCV:http://opencv.org/
cd ~/opencv mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. (注意后面有两个点)
Enter the created temporary directory (<cmake_binary_dir>) and proceed with:
make sudo make install
配置openCV参数设置
sudo gedit/etc/ld.so.conf.d/opencv.conf 使用下面这条命令: sudo ldconfig sudo gedit/etc /bash.bashrc 加入: PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH 至此,OpenCV安装配置完毕
第三部分:mkl的安装和调试
首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings, 请下载Student版,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。下载完之后,解压文件
一、接下来是安装过程,先授权,然后安装:
$ cd (压缩包所在路径)
$ tar zxvf (压缩包名) (如果你是直接拷贝压缩文件过来的)
$ chmod a+x (压缩包名) -R
$ sudo ./install_GUI.sh
下面的步骤就是一步步点next了(我的在prerequsition中会警告说缺少lib32库,忽略即可)
二、MKL与CUDA的环境设置
1. 新建intel_mkl.conf, 并编辑之:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
2. 完成lib文件的链接操作,执行:
$ sudo ldconfig -v
第四部分 Python。matlb安装和调试
1. 安装python IDE运行环境
选择一个适合你的IDE运行环境,我是用的是Spyder,因为它内置了 iPython 环境,Caffe有不少的程序是基于 iPython 环境完成的。安装方法很简单,直接在Ubuntu软件中心搜索“spyder”即可安装。
2、maltb安装过程,(请参考其他教程,破解和window下一样)
第五部分 Caffe的安装和测试
官网下载caffe包https://github.com/BVLC/caffe/
一、安装其他依赖项
1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install
如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。
2. 其他依赖项,确保都成功
$ 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
二、安装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 protobuf-c-compiler protobuf-compiler
2. 切换到Caffe的下载文件夹,然后执行:
$ cp Makefile.config.example Makefile.config
修改新生成的Makefile.config文件,修改“BLAS := mkl”,这个非常重要。
3.修改Makefile文件(不是Makefile.config)
在位置((LIBRARIES += glog gflags protobuf leveldb snappy \
lmdb boost_system hdf5_hl hdf5 m \
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs))处
添加opencv_imgcodecs
这一步非常重要,否则编译后会出现错误如下:
CXX/LD
-o .build_release/tools/convert_imageset.bin
.build_release/lib/libcaffe.so: undefined reference to
cv::imread(cv::String const&, int)'.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String
const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'
原因就是opencv3.0.0把imread相关函数放到imgcodecs.lib中了,而非原来的imgproc.lib
4. 编译caffe-master!!!"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all
$ make test
$ make runtest
四、使用MNIST数据集进行测试
Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1. 数据预处理
$ sh data/mnist/get_mnist.sh
2. 重建lmdb/leveldb文件。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
这时你会在终端窗口中看到caffe的训练过程
至此配置caffe的工作已经完成了
补充:
1、我还没有配置cuDNN,后续会补上
2、安装过程中如果出现问题,请google,百度之,一般都会有人遇到类似问题,实在解决不了,不要浪费时间,重装系统虽然麻烦,但是上上策,重装个一两遍,根本不是事啊。
相关文章推荐
- Css3之高级-6 Css过渡(概述、过度子属性)
- html5中meta属性使用总结
- 通过ajax获得json数据后格式的转换
- javascript Array 的增 删 找 的简单例子
- Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:xml-maven-plugin:1.0:tran
- jsp中引用的jstl 和fmt标签
- 能够用手指滑动的焦点轮播图——swipe.js
- React.js深入学习详细解析
- HTML学习01
- js去掉字符串第一位与最后一位
- html5 canvas画布居中
- JavaScript的三种弹出框
- InspirARTion - Sketch & Draw!(InspirARTion—素描和画画!)
- hammerJs-v2.0.4详解
- 12、jQuery知识总结-2
- Json转换利器-Gson
- 批量修改文件名后缀,例html修改成HTML
- Visual Studio 2015 开发大量 JavaScript 代码项目程序崩溃的解决方案
- cppreference.com学习笔记——ASCII表
- jquery获得option的值和对option进行操作 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-13 我要评论