电脑基本参数:Dell 台式机,cpui7,GPU 1080Ti,系统win10,SSD 512G HDD: 2T
目的:双系统,Win10 安装在固态硬盘;Ubuntu安装在机械硬盘;并在Ubuntu安装深度学习算法库
一、 安装Ubuntu 16.04.02
1. 这里注意很多Dell电脑的硬盘模式为RAID需要修改为ACHI模式,才能安装Ubuntu系统,否则进入Ubuntu系统安装时会发现无法找到任何磁盘,所以首先解决问题是:
如何在不重装Win10的条件下,将SATA模式由RAID改为ACHI模式:
(首先确定你的电脑硬盘是否是RAID模式。如果是则需要进行以下操作点击打开链接,否则略过下面步骤)
2. 安装Ubuntu时会遇到黑屏问题,此时应重启在GRUB界面,首先将鼠标移动到try ubuntu或者install Ubuntu,然后点击e,找到quiet splash 在后面加入nomodeset,变成quiet splash nomodeset 这样可以解决黑屏问题,进入具体的Ubuntu安装步骤。
(很多台式机、笔记本有不同的问题,主要是显卡问题,例如我的上一个笔记本进行上面的修改就不好使,显示屏会一直闪,具体可以参考上一篇文章点击打开链接)
安装好Ubuntu后,重启进入GRUB,修改quiet splash为quiet splash nomodeset,更新grub文件。
二、安装好系统后,禁用系统默认的集成驱动,Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动。
将驱动添加到黑名单blacklist.conf中,但是由于该文件的属性不允许修改。所以需要先修改文件属性。
blacklist vga16fb
blacklist nouveau
blacklist rivatv
blacklist rivafb
blacklist nvidiafb
三、安装nvidia显卡驱动
$sudo add-apt-repository ppa:graphics-drivers/ppa
$sudo apt-get update && sudo apt-get install nvidia-381
安装NVIDIA-381.22后电脑仍然时默认的375.66,重启后变为NVIDIA-381.22,但是执行
怀疑是因为不支持prime,prime是软件选择独显还是集显,猜测不影响使用;但是我有强迫症,换了几个版本的显卡驱动仍然不好使,后来参考某些网友回答,做了以下几步:
(参考他人:手动安装, 涉及到nvidia显卡的步骤不要用重启,用关机);
1. 先卸载已经安装的nvidia驱动:sudo apt-get purge nvidia-*
2. 关机
3. ctrl+alt+F1 进入tty1控制台,关闭当前图形环境:sudo service lightdm stop
4. sudo sh nvidia版本号,我安装的试驱动最新版本384.47,里面选的都是yes
5. sudo dervice lightdm start
6. ctrl+alt+F7退出tty1控制台
7. 关机,开机后,输入nvidia-settings 没有错误了,但是如果需要prime功能,则要安装sudo apt install nvidia-prime(不需要不用装)
(P.S. 中间出现tty1中文乱码问题,安装了fbterm,并且建了video账户,但是执行sudo fbterm 出现错误stdin isn't a interactive tty!,按照一些人的说法下载了aptitude,然后执行 sudo aptitide install fbterm,并没有解决问题,后来发现可以先进入tty1中,关闭图形环境,再用fbterm就好使了,注意每次顺序是先进入控制台tty1--关闭图形环境--进入fbterm--退出fbterm--打开图形环境--退出tty1,现在发现貌似aptitude和fbterm暂时用不到,也不会用)
(最近我又换成381.22了,具体经历请参考点击打开链接,所以直接执行该部分前两句命令即可)
四、安装CUDA8.0
1. 去cuda官网下载cuda8.0 runfile文件
2. 在下载目录下执行sudo shcuda_8.0.61_375.26_linux.run
3. 接下来一定注意不选择安装cuda自带的显卡驱动,具体过程可以参考点击打开链接
4. 安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
五:安装Cudnn5.1
1. 下载Cudnn5.1
2. 进入下载目录
tar -zxf cudnn-8.0-linux-x64-v5.1.solitairetheme8
sudo cp ./cuda/include/cudnn.h /usr/local/cuda/include
sudo cp ./cuda/lib64/lib* /usr/local/cuda/lib64
#-------------下面这三步可以不做,每个人文件不同-----------------------------
sudo ln -s libcudnn.so.5 libcudnn.so
#----------------------------------------------------------------------------------------
六、安装Theano
conda install theano
sudo gedit ~/.theanorc
在里面写入
参数设置参考点击打开链接
七、安装Tensorflow
1. 首先新建一个conda环境,命名为tensorflow
conda create -n tensorflow python=2.7
然后激活该环境并在该环境下安装tensorflow
source activate tensorflow
pip install tensorflow-gpu
source deactivate
八、安装Open CV3.2
1. 下载opencv3.2: https://sourceforge.net/projects/opencvlibrary/?source=typ_redirect
2. unzip opencv-3.2.0.zip
如果没安装unzip的话,可以通过如下命令安装:
sudo apt-get install unzip
3.
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
4. 在你的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 ..
5. 然后执行
make -j8
sudo make install -j8
其中 -j8是8线程并行运算
6、测试是否安装成功
1 root@VB:# python 2 >>>import cv2 3 >>>cv2.__version__ 4 '3.2.0'
显示出版本号,则表示opencv安装成功。
《注意》:如果打开python后,import cv2时,提示:
1 >>> import cv2 2 Traceback (most recent call last): 3 File "<stdin>",line 1,in <module> 4 ImportError: No module named cv2
则需要安装python-opencv模块,在命令窗口中键入:pip install opencv-python
安装成功后,即可导入cv2,此时能够正确导入cv2,且正确显示版本号:
1 >>> import cv2 2 >>> cv2.__version__ 3 '3.2.0'
九、安装caffe
1. 安装caffe依赖项:
sudo apt-get install libprotobuf-dev protobuf-compiler libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev
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
2. 配置环境变量
sudo gedit ~/.bashrc 在最后加入:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
3.从github上获取caffe:
git clone https://github.com/BVLC/caffe.git
4. 进入caffe目录,并复制出所需的Makefile.config文件
sudo cp Makefile.config.example Makefile.config
5. 修改Makefile.config文件
sudo gedit Makefile.config
#USE_CUDNN := 1 修改成: USE_CUDNN := 1
#OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3
因为使用了 Anaconda2 所以注释掉原来的PYTHON_INCLUDE,使用ANACONDA的配置
# PYTHON_INCLUDE := /usr/include/python2.7 \
# /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/XXX/anaconda2(这里是anaconda路径,XXX是你的用户名)
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
#PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
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
6. 然后修改makefile文件
415行
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
然后再大概181行的地方做修改
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
替换为
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui
7. 编辑/usr/local/cuda/include/host_config.h (119行)
#error-- unsupported GNU version! gcc versions later than 5 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 5 are not supported!
更改完文件,保存。
8. 编译caffe
mkdir build
cd build
cmake ..
sudo make all -j8
sudo make test -j8
sudo make runtest -j8
出现错误:
/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
解决办法:
conda install libgcc
出现错误:
No module named google.protobuf.internal
解决办法:
conda install protobuf
通过上述步骤应该就会成功了,caffe我在一个笔记本一个台式机安装,遇到的问题不同,具体问题具体可以解决就好。
如果编译caffe或者运行runtest出现很多错误,如XXX未定义的引用,或者Thisfilewasgeneratedbyanolderversionofprotocwhichis...主要可能是系统安装protobuf和Ubuntu安装的冲突或者他们是用不同版本的g++编译的,我的解决办法是卸载了anaconda中和系统中所有protobuf以及libproto*,手动安装protobuf,并对caffe重新编译,链接可以参考点击打开链接或者点击打开链接