Dell-1080Ti 深度学习Win 10 + Ubuntu 16.04.02 双系统安装+anaconda2+tensorflow+opencv3.2+caffe

来源:互联网 发布:linux 虚拟机 双系统 编辑:程序博客网 时间:2024/06/06 06:23

电脑基本参数: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中,但是由于该文件的属性不允许修改。所以需要先修改文件属性。

查看属性
$sudo ls -lh /etc/modprobe.d/blacklist.conf

修改属性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf

用gedit打开
$sudo gedit /etc/modprobe.d/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,但是执行

$ nvidia-settings
** Message: PRIME: No offloading required. Abort
** Message: PRIME: is it supported? no

怀疑是因为不支持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 sh cuda_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 rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5

sudo ln -s libcudnn.so.5 libcudnn.so

#----------------------------------------------------------------------------------------


六、安装Theano

conda install theano

sudo gedit ~/.theanorc

在里面写入

[global]
floatX=float32
device=gpu


[cuda]
root=/usr/local/cuda-8.0


[nvcc]
fastmath = True
optimizer_including=cudnn //cudnn 加速

参数设置参考点击打开链接


七、安装Tensorflow

1. 首先新建一个conda环境,命名为tensorflow

conda create -n tensorflow python=2.7 

安装新的包?-->y

然后激活该环境并在该环境下安装tensorflow

source activate tensorflow

pip install tensorflow-gpu

source deactivate


八、安装Open CV3.2

1. 下载 opencv 3.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 ..

更具体的配置,如使用CUDA,请参考点击打开链接)
5. 然后执行

make -j8 

sudo make install -j8

其中 -j8是8线程并行运算

6、测试是否安装成功

1 root@VB:# python2 >>>import cv2  3 >>>cv2.__version__4 '3.2.0'

  显示出版本号,则表示opencv安装成功。

 

《注意》:如果打开python后,import cv2时,提示:

1 >>> import cv22 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 cv22 >>> 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未定义的引用,或者This file was generated by an older version of protoc which is...主要可能是系统安装protobuf和Ubuntu安装的冲突或者他们是用不同版本的g++编译的,我的解决办法是卸载了anaconda中和系统中所有protobuf以及libproto*,手动安装protobuf,并对caffe重新编译,链接可以参考点击打开链接 或者点击打开链接

阅读全文
1 0
原创粉丝点击