最近为了研究深度学习所以需要安装一个深度学习的环境,弄了一个星期,重装了10次电脑总算是弄好了,虽然还有很多不明白的地方,不过整个流程基本上是熟悉了。安装过程中看了很多网上的教程,没有一个是可以正常安装好的。其实我第一次安装就成功了,测试程序也跑起来了,GPU运算速度很快,但是一重启就懵逼了。。。。。。因为我使用的电脑是双显卡intel核显以及Nvidia GEFORCE GTX960M显卡(双显卡的电脑应该还是很多的),所以很容易出现各种驱动问题,一般问题会导致三种情况:
1.启动后电脑黑屏,不能进行任何操作(可能还有救)。
在grub界面选择要登录的系统按“e”,进入编辑界面,在倒数第二行末尾加入acpi_osi=linux nomodeset,具体操作可以上网查。
2.启动后电脑黑屏但是可以通过CTRL+ALT+F1(我的电脑是CTRL+ALT+F4)进入命令行模式(可能还有救)。
删除所有nvidia,sudo apt-get remove nvidia*,然后重启。
3.进入登录界面,然后不断地让你登录,一直登录不进去,进入命令行也一直闪烁(可能没救了)。
我用的是DELL电脑,GPU是GEFORCE GTX960M,大家的GPU比我的新或者差不多应该就没问题。
下面为了能让新手“比较顺利”的安装,尽量把一些可能出现的问题也尽量写出来,好了,现在开始。
1.首先安装CUDA
(a)首先安装好Ubuntu16.04,然后先安装一些依赖
sudo apt-get update
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
(b)安装好之后需要禁用nouveau,创建/etc/modprobe.d/blacklist-nouveau.conf,写入:
blacklist nouveau
option nouveau modeset=0
然后sudo update-initramfs -u
(c)配置一些基本的环境变量
vim ~/.bashrc
加入:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
到这里之后有些教程会让我们上NVIDIA官网上看我们的GPU型号应该用什么版本的驱动,其实不需要
另外有些教程会让我们把gcc和g++版本降低,比如降低为gcc-4.9和g++-4.9,我建议最好不要,后面会出错
(d)然后我们需要下载CUDA(https://developer.nvidia.com/cuda-downloads),这个网址
(e)安装cuda有点讲究
下载完成后重启电脑,在出现登录界面时,登录tty1,按Ctrl + Alt + F1,在文本模式中登录
关闭桌面服务sudo service lightdm stop。这步对于安装Nvidia驱动至关重要
进入下载cuda文件的目录执行:
sudo sh cuda-8.0.44_linux.run --no-opengl-libs
如果不加--no-opengl-libs应该是会出现循环登录问题
安装过程中完全按照它的指引就可以了,大概是
Accept EULA conditions
Say YES to installing the NVIDIA driver
Say YES to installing CUDA Toolkit + Driver
Say YES to installing CUDA Samples
然后重启,这个时候应该没有循环登录问题,可以正常进入桌面了
(f)修改环境配置
vim ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda8.0b64:$LD_LIBRARY_PATH
source .bashrc
(g)测试CUDA的sammples:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
如果看到一些GPU的信息说明安装成功
2.配置cuDNN
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
3.安装opencv3.1
在你的opencv目录下
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D BUILD_TIFF=ON -D WITH_OPENGL=ON ..
make -j4
make的时间比较久,耐心等待。。。
sudo make install
sudo vim /etc/ld.so.conf
加上/usr/local/lib
然后sudo ldconfig
4.安装Anaconda
5.安装caffe
修改成:
USE_CUDNN := 1
修改为:
OPENCV_VERSION := 3
# /usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
PYTHON_LIB := $(ANACONDA_HOME)/lib
修改为
WITH_PYTHON_LAYER := 1
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui
改为
//#error-- unsupported GNU version! gcc versions later than 5 are not supported!