主要参考blog:
http://blog.csdn.net/ccemmawatson/article/details/42004105本blog主要包含两个部分,一部分是NVIDIA显卡下的cuda 6.5的安装,第二部分是caffe的安装,环境是Ubuntu 14.04
Part 1 CUDA 6.5 安装
2、mkdir ~/Downloads/nvidia_installers 创建新的文件夹路径
cd ~/Downloads 进入Downloads
./cuda_6.5.14_linux_64.run -extract=/home/username/Downloads/nvidia_installers 注意的是extract:path must be absolute
最后一句开始不能运行是因为.run 文件右键属性/权限 里将 允许作为程序执行文件 选上,就可以执行了
4、sudo apt-get --purge remove nvidia-* 先卸载之前的相关的,反正卸载相关NVIDIA的
5、cd ~/Downloads/nvidia_installers; 安装
ctr+Alt+F1进入tty1-6中再运行lightdm stop ,关闭图形界面,否则容易卡住
sudo service lightdm stop 关闭图形界面,才能配置显卡,图形界面没有,执行下面的问题
sudo killall Xorg
sudo ./NVIDIA-Linux-x86_64-340.29.run
6、三条指令
sudo modprobe nvidia
sudo modprobe nvidia
sudo ./cuda-linux64-rel-6.0.37-18176142.run
sudo ./cuda-samples-linux-6.0.37-18176142.run
7、cd /usr/local/cuda/samples
cd 1_Utilities/deviceQuery make 显示没有g++,需要安装,sudo apt-get install g++ ./deviceQuery
8、可以了,然后回到图形界面sudo service lightdm start,配置环境变量
gedit ~/.bashrc
打开一个文本文件,最后加上export PATH=/usr/local/cuda-6.0/bin:$PATH
Save the file and then source your .bashrc by typing
source .bashrc
when in your home folder.
常见错误:
打不开文字界面:::正常都是打不开图形界面,我居然打不开文字界面,下面方法可以,是一个文件没安装好吧。
- Open the terminal with Ctrl+Alt+T
-
Paste the below, and enter your password when asked:
sudo sed -i -e 's/#GRUB_TERMINAL/GRUB_TERMINAL/g' /etc/default/grub
-
Then type sudo update-grub
- Reboot and the virtual terminals should now work.
分辨率问题,可能是Linux自带的NVIDIA显卡驱动不符合,禁用后重试。
sudo apt-get --purge remove nvidia-* 删除驱动分别率就可以
============================================================================================
Part 2 caffe的安装
1、
cuda 装好了,cuDNN不需要装,比较难改结构,速度提高不大。显卡驱动,这个再说
2、几个矩阵运算的库吧,ATLAS,Intel MKL,OpenBLAS ,执行
Ubuntu:
sudo apt-get install libatlas-base-dev 安装ATLAS。
3、Python 设置
”
sudo apt-get install
the
python-dev“ 建议安装anaconda包,官网:
https://store.continuum.io/cshop/anaconda/
下载Linux版本的,然后运行.sh文件
bash Anaconda-2.1.0-Linux-x86.sh
后面在运行Caffe时,可能会报一些找不到libxxx.so的错误:
为了不让系统在启动时就将anaconda/lib加入系统库目录,可以在用户自己的~/.bashrc 中添加library path, 比如我就在最后添加了两行# add library path LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
下载caffe-master,添加路径
sudo gedit ~./bashrc
PYTHONPATH=/home/zht/caffe-master/python:$PYTHONPATH
PYTHONPATH
export
4、其他的库 for Ubuntu 14.04 the rest of the dependencies can be installed with
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
5、sudo
apt-get install cmake 安装cmake
6、安装opencv 本来这也是一个非常痛苦的过程,因为也是会出现各种问题,但已经有大神写好了脚本,所以一下子变得简单了,首先先下载大神脚本https://github.com/jayrambhia/Install-OpenCV,继续放在HOME中。
这中间可能需要修改权限什么的,具体就是
进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限
chmod +x *.sh
默认已经改了,进入Ubuntu文件夹,然后执行附加项安装
sudo ./dependencies.sh 挺长时间的
然后
sudo ./opencv2_4_9.sh
安装的 2.4.9因为2.6的链接已经不存在了,.sh要改成可执行,习惯用终端。 ll 查询其可执行性,chmod改变可执行性。
注意,中途可能会报错
opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization
解决方法在此:http://code.opencv.org/issues/3814 下载 NCVPixelOperations.hpp 替换掉opencv2.4.9内的文件, 重新build,也就是重新sudo ./opencv2_4_9.sh
7、安装caffe 打开压缩文件 所有教程都写着Makefile.config ,为什么压缩文件里是Makefile,复制Makefile.config.example 为Makefile,config,运行老是警告,之前的requirements没安装好。第二次就可以了
可以在图形界面下修改Makefile.config的相关指令:
【1】需要编译python则注意添加正确的python路径
【2】需要编译matlab函数库同样
【3】需要修改BLAS := open(官网的说明),就是去掉"#"
8.编译caffe,首先进入caffe的root,然后依次执行
make all -j4 make test make runtest (这几步会出现很多问题,具体参考下面)
9、试验mnist ,
运行mnist, cd $CAFFE_ROOT
sh ./data/mnist/get_mnist.sh #有时候网速什么问题,下的中间有问题,会导致create_mnist.sh有问题
sh ./examples/mnist/create_mnist.sh
sh ./examples/mnist/train_lenet.sh #开始运行了,可以运行,现在问题是需要运行自己的数据
存在问题:
1、、下了最新的caffe 运行make all make test make runtest
报错(1):
/usr/local/lib/libopencv_highgui.so:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libvorbis.so.0:对‘__acosf_finite@GLIBC_2.15’未定义的引用
//usr/lib/x86_64-linux-gnu/libx264.so.142:对‘__pow_finite@GLIBC_2.15’未定义的引用
//usr/lib/x86_64-linux-gnu/libx264.so.142:对‘__log2_finite@GLIBC_2.15’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
/usr/local/lib/libopencv_highgui.so:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libvorbis.so.0:对‘__acosf_finite@GLIBC_2.15’未定义的引用
//usr/lib/x86_64-linux-gnu/libx264.so.142:对‘__pow_finite@GLIBC_2.15’未定义的引用
//usr/lib/x86_64-linux-gnu/libx264.so.142:对‘__log2_finite@GLIBC_2.15’未定义的引用
因为装了anaconda包的话,删除anaconda/lib/下面的 libm
sudo rm -rf libm*
sudo rm -rf libm*
报错(2):
libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6
cd /heme/your anaconda path/lib
mkdir temp
mv libreadline* temp/
ldconfig
2、ImportError: libcudart.so.6.5: cannot open shared object file: No such file or directory
不是权限问题
|
sudo yum install gflags-devel glog-devellmdb-devel 执行不了