ubuntu16.04+GTX1080ti+Tensorflow 深度学习环境搭建

来源:互联网 发布:软件开发培训中心 编辑:程序博客网 时间:2024/05/01 05:56

ubuntu16.04+GTX1080ti+Tensorflow 深度学习环境搭建

花了三天时间将一堆硬件搭建好初步的深度学习工作环境,肩胀颈酸,Mark一下主要过程,以防自己今后重复踩坑。

0、配置简介
硬件环境配置:
显卡:微型仿英伟达1080ti公版显卡1张:GTX1080ti
主板:华硕PRIME Ax999-A
CPU: intel i7-820x,8核16线程处理器
内存:金士顿16G单条
硬盘:intel 512G固态硬盘
系统配置:win10 + ubuntu16.04

一、安装Anaconda
由于原生python依赖太多,为偷懒,安装Anaconda好了,可以到清华镜像去下载Anaconda3-5.0.0-Linux-x86_64.sh,速度会比较快:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
安装之后,运行python命令,会出现类似如下结果,说明安装通过。
这里写图片描述
二、安装cuda以及cudnn
注意由于cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb中已经包含了显卡驱动,如果重复安装会导致失败,因此直接安装cuda就好,不要在多此一举安装英伟达官网显卡驱动
1 安装cuda8.0

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb   # 自己的.deb包名  sudo apt-get update    sudo apt-get install cuda  

(2)编译cuda例子:

cd /usr/local/cuda-8.0/samplessudo make -j8

(3)测试cuda例子:

cd /usr/local/cuda-8.0/samples/bin/x86_64/linux/release/./deviceQuery

(4)结果如下:
这里写图片描述

(5)添加环境变量

vi /etc/profile

在底部插入以下两句

export PATH=/usr/local/cuda-8.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

执行source使得环境变量设置生效

source /etc/profile

2、安装cudnn:
(1)解压cudnn得到文件夹cuda,下

tar  -zxvf  cudnn-8.0-linux-x64-v6.0.tgz  

(2)拷贝头文件及库到cuda8.0的系统目录

cd cuda    sudo cp lib64/lib* /usr/local/cuda/lib64/    sudo cp include/cudnn.h /usr/local/cuda/include/

三、安装tensorflow和keras
(1)使用tensorflow的gpu版本:tensorflow_gpu-1.3.0rc2-cp36-cp36m-linux_x86_64.whl
安装keras

sudo pip install   keras 

(2)测试tensorflow和keras,在python命令行中输入:

>>> import tensorflow as tf>>> import keras as ks

结果如下:
这里写图片描述

四、安装caffe
1、下载:git clone https://github.com/BVLC/caffe.git
2、首先将Makefile.config.example的内容复制到Makefile.config

cd caffesudo cp Makefile.config.example Makefile.config

3、打开并修改配置文件:
sudo gedit Makefile.config #打开Makefile.config文件
1)由于使用了CUDNN,将

#USE_CUDNN := 1

修改成:

USE_CUDNN := 1

2)由于使用pythonlayer,将# Uncomment to support layers written in Python (will link against Python libs)下面的

#WITH_PYTHON_LAYER := 1

修改成:

WITH_PYTHON_LAYER := 1

3)由于ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.
将# Whatever else you find you need goes here.下面的

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/includeLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

修改为:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

4)由于使用Anaconda3.5中的python3.6替代系统自带的python2.7,因此将# We need to be able to find Python.h and numpy/arrayobject.h.下面的

PYTHON_INCLUDE := /usr/include/python2.7 \        /usr/lib/python2.7/dist-packages/numpy/core/include

修改为:

#PYTHON_INCLUDE := /usr/include/python2.7 \        #/usr/lib/python2.7/dist-packages/numpy/core/include

5)指定Anaconda相关include及lib路径,将# Anaconda Python distribution is quite popular. Include path:下面的

# ANACONDA_HOME := $(HOME)/anaconda# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \        # $(ANACONDA_HOME)/include/python2.7 \        # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

修改为:

ANACONDA_HOME := /home/lcd/anaconda3PYTHON_INCLUDE := $(ANACONDA_HOME)/include \         $(ANACONDA_HOME)/include/python3.6m \         $(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include

6)将# Uncomment to use Python 3 (default is Python 2)下面的

# PYTHON_LIBRARIES := boost_python3 python3.5m

修改为:

PYTHON_LIBRARIES := boost_python3 python3.6m

7)修改makefile文件
打开makefile文件,做如下修改:
将:

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

8)关于网上广为流传的修改GCC编译器支持版本的问题,由于最新版本的caffe已经支持到GCC 5了,二本系统是GCC 5.4 因此不用注释掉
/usr/local/cuda/include/host_config.h中的#error– unsupported GNU version! 这一项
9)安装依赖包
安装以依赖环境,经实测,如果想通过测试代码的话,以下都是必须安装的:

sudo apt-get install -y libhdf5-serial-devsudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libgflags-devsudo apt-get install libgoogle-glog-devsudo apt-get install liblmdb-dev sudo apt-get install  protobuf-compilersudo apt-get install libprotobuf-devsudo apt-get install libatlas-base-devsudo apt-get install -y python-opencv libopencv*sudo apt-get install libleveldb-devsudo apt-get install libsnappy-devsudo apt-get install libboost-system-dev

10)安装caffe:

make all -j8 sudo make pycaffe  -j8sudo make test -j8sudo make runtest -j8 #这个不通过也没关系

安装结果:
这里写图片描述

测试结果:
这里写图片描述

11)测试caffe
MNIST数据集测试
配置caffe完成后,可以利用MNIST数据集对caffe进行测试,过程如下:
a.将终端定位到Caffe根目录

cd ~/caffe

b.下载MNIST数据库并解压缩

./data/mnist/get_mnist.sh

c.将其转换成Lmdb数据库格式

./examples/mnist/create_mnist.sh

c.训练网络

./examples/mnist/train_lenet.sh

训练的时候可以看到损失与精度数值,如下图:
这里写图片描述

网上不少例子只是测试到上述训练集通过就结束了,但是发现python下引用caffe会出现问题,主要可能是pycaffe未安装或者python非原生版本所致,特别需要注意上述caffe上述修改配置文件中的步骤4)、步骤5)、步骤6).经上述过程安装caffe,在python下可以引用:
python引用caffe测试
这里写图片描述

总结下容易碰到的主要问题:
(1)由于cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb中已经包含了显卡驱动,如果重复安装会导致失败,因此直接安装cuda就好,不要在多此一举安装英伟达官网显卡驱动,若安装了官网驱动,可以采用如下步骤卸载:
1)关闭X,否则会卸载显卡驱动失败,按住ctrl+alt+F1计入tty模式,输入执行如下命令:

init 3

2)然后,执行如下两种方法之一卸载nvidia显卡驱动

sudo apt-get purge nvidia-* #通用做法sudo sh nvidia.run --uninstall #卸载官网版本sudo reboot

由于该命令会卸载所有英伟达驱动,所以在下载之后再安装cuda即可
查看显卡驱动信息命令

nvidia-smi

结果如下
这里写图片描述
以及如下查看驱动版本命令

cat /proc/driver/nvidia/version

结果如下:
这里写图片描述

(2)安装完ubuntu16.04系统,初次开机黑屏,进入不了登录页面,解决办法:
(a)临时策略:
开机,进入grub画面。选择第一项”ubuntu”,按”e”,进入编辑模式。同样找到”’quite splash”’ 并在后面加上对应的字”nomodeset”。
按 ”F10”启动系统。
(a)永久策略:
进去系统之后编辑”’/etc/default/grub”’ 这个档案(要管理者权限sudo)。
Ubuntu>打开终端机,输入sudo vi /etc/default/grub
找到这一行:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

修改为:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash nomodeset”

存档,更新GRUB:

 sudo update-grub

重新开机,即可见到期待的登录页面啦~

感谢各位提供参考资料的帮助
[1]http://blog.csdn.net/xuzhongxiong/article/details/52717285
[2]http://m.blog.csdn.net/tomheaven/article/details/77540128
[3]http://blog.csdn.net/lkj345/article/details/51280369
[4]http://blog.csdn.net/baidu_17806763/article/details/53689816
[5]http://blog.csdn.net/leijiezhang/article/details/53688157

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