ubuntu18.04tensorflow机器学习环境搭建

1. 主机配置说明

在前几天,得知公司新采购了几台主机,所以我们组领导就向公司申请了一台回来,做数据分析。

专注于为中小企业提供网站建设、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业湘阴免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

服务器买的是惠普的主机,型号是:HP EliteDesk 800 G3。不算强劲,但用来做GPU的数据分析测试,也可以了。
具体参数:
CPU:i7-7700
内存: 32G
显卡: GTX 1070
硬盘: 256 ssd + 1T
自带 windows 10 64位 专业版系统
搭建环境版本选择: ubuntu18.04+CUDA9.0+cuDNN7.1.4+tensorflow1.9

2. 更换系统

由于主机自带的是windows系统,但是我们想用 ubuntu 的系统,因此,只能先重装一下系统了。
具体的更换系统的过程就不写了,大家有需要的,可以参考一下这篇文章。

要注意的是,不要关闭主板的 UEFI 引导,并且,你的 Ubuntu 系统引导盘,也就是U盘,需要用USB3.0的接口。因为,我测试的时候,用过普通 USB2.0 接口的,一直识别不了。同时,系统盘要制作成纯系统盘,里面出来系统软件之外,不要有其他文件。

3. 安装显卡驱动

新安装 ubuntu 18.04 的系统之后,先更新一下系统自带的源,我在自己使用的 CentOS 或者 Ubuntu 等linux 系列系统的时候,都习惯更换成阿里云的源,感觉速度和稳定都维护得比较好。

3.1 关闭系统默认的显卡驱动

如果你安装的是 ubuntu 带桌面图形界面的版本,那么它默认的显卡可能是nouveau,我们首先需要关闭它。具体方法:
打开禁用列表:

sudo vim  /etc/modprobe.d/blacklist.conf

在后面添加:

blacklist nouveau
options nouveau modeset=0

保存退出后,更新,重启系统:

sudo  update-initramfs -u

sudo reboot

重启后,你可能会发现屏幕没有了输出,甚至连登录界面也没有了。
先别慌,如果你使用 xshell 这类终端登录工具的话,这时你仍然能远程连接到系统的,前提是你已经在系统开启了 openssh-server,不过ubuntu 18 默认是没有开启openssh-server 的。
如果你没有用xshell 来连接,那么你可以按一下 ctrl + alt + F3 组合键,这时候,屏幕上又会切换到字符登录界面,熟悉的输入用户名,密码界面再次呈现。
这些都是因为,我们在上一步禁止了 nouveau 驱动,但是主机的独立显卡驱动还没有安装好。

3.2 安装nvidia 显卡驱动

在安装显卡驱动前,还需要再确认一下你系统自带的驱动有哪些:

kkt@kkt-HP:~$ sudo ubuntu-drivers devices
[sudo] password for kkt: 
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001B81sv0000103Csd00006899bc03sc00i00
vendor   : NVIDIA Corporation
model    : GP104 [GeForce GTX 1070]
driver   : nvidia-driver-396 - third-party free
driver   : nvidia-driver-390 - third-party free
driver   : nvidia-driver-410 - third-party free
driver   : nvidia-driver-415 - third-party free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

可以,看出nvidia 支持的驱动版本有396,390,410,415 几个类型。不过这是我在添加显卡 ppa 源之后,才显示这么多个的,本来只有390,396两个版本。
怎么添加显卡 ppa 源:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

在添加 ppa 源的时候,可能会因为网络的原因,更新失败。我们需要留意提示信息,以为添加失败之后,会导致某些版本根本不能安装。
选择你希望安装的 nvidia 版本,我推荐安装 nvidia-driver-396 的版本,不求它最新,因为最新的版本,兼容性反而可能会差,甚至用不了。
安装nvidia 驱动:
重点: 先删除旧的 nvidia 驱动

sudo apt-get purge nvidia-*

sudo apt   install nvidia-driver-396

安装完成之后,重启主机 : sudo reboot
检查 nvidia 显卡状况:

sudo nvidia-smi

ubuntu18.04 tensorflow 机器学习环境搭建

如果你没有检测到nvidia显卡的状态,可能需要先挂载:

sudo  nvidia  modprobe nvidia

正常来说,如果你的主机有独立显卡,在安装完nvidia显卡驱动,重启就能在屏幕输出你熟悉的图形登录界面。

4. 安装 CUDA 9.0

首先,cuda 9.0 编译安装只支持gcc、g++ 6.0 及以下的版本,所以,如果系统已经默认安装了gcc 7.0 以上版本的,就需要将级了。

sudo apt-get install gcc-4.8

sudo apt-get install g++-4.8

切换到 /usr/bin 目录,对gcc7.0 进行降级,其实就是重新创建软连接:

ls  -l   gcc*  
sudo mv  gcc   gcc.bak
sudo ln -s  gcc-4.8  gcc

ls -l   g++*
sudo  mv  g++ g++.bak
sudo ln  -s  g++-4.8  g++

重新查看g++、gcc 的版本:

g++  -v
gcc   -v

确认gcc、g++ 的版本为4.8 就可以了。

下载CUDA 9.0

说明,现在先不要使用 cuda 9.1 或者 cuda 10,因为后面 tensorflow 对这些版本还没有支持。我一开始安装的也是cuda 9.1 以为版本越新越好。
cuda 各个版本的归档目录在这里,选择9.0 的版本:
ubuntu18.04 tensorflow 机器学习环境搭建

ubuntu18.04 tensorflow 机器学习环境搭建

注意,这里选择 ubuntu 16.04 的系统版本,对18.04 也适用。
cuda 9.0 共5个文件,包括4个patch都需要下载。下载完成之后,上传到服务器,进行安装,cuda安装的过程中,会提示要安装nvidia driver的,不要安装,因为我们之前已经安装过了。其他的选项可以随意。
安装过程如下:

sudo sh cuda_9.0.176_384.81_linux-run
sudo sh cuda_9.0.176.1_linux-run
sudo sh cuda_9.0.176.2_linux-run
sudo sh cuda_9.0.176.3_linux-run
sudo sh cuda_9.0.176.4_linux-run

同样,下载 cuDNN 进行安装。cuDNN 的版本选择 7.1.4,选择7.0的大多数情况会没有问题,但是当使用 tensorflow 进行卷积运算的时候,会提示初始化失败,原因是 tensorflow 1.9 里编译的支持的版本是 7.1.4 及以上。
下载 cuDNN 请在这里 ,注意,下载需要提供注册账号,自己搞一个邮箱注册一下。
ubuntu18.04 tensorflow 机器学习环境搭建

下载完成之后,上传到服务器,开始安装:

其实是先解压,然后将文件复制到cuda-9.0 的目录里。
sudo  tar  xvzf  cudnn-9.0-linux-x64-v7.1.tgz
解压之后,默认的目录名也叫 cuda.
然后,复制cuDNN的内容:
sudo   cp cuda/include/cudnn.h    /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn*    /usr/local/cuda/lib64
最后,修改权限:
sudo chmod a+r /usr/local/cuda/include/cudnn.h   /usr/local/cuda/lib64/libcudnn*

至此,cuda 和 cudnn已经安装完毕。
但是,还需要修改一下环境变量:

修改 sudo  vim  ~/.bashrc,添加以下内容:

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export  PATH=${CUDA_HOME}/bin:${PATH}

修改 sudo  vim  /etc/profile ,添加以下内容:
export PATH=/usr/local/cuda/bin:$PATH

继续修改:

sudo vim   /etc/ld.so.conf.d/cuda.conf

/usr/local/cuda/lib64

修改后,加载配置,但可能会提示:(/usr/local/cuda/lib64/libcudnn.so.7 不是符号链接?)

sudo   ldconfig
sudo  ln -sf /usr/local/cuda/lib64/libcudnn.so.7.1.4    /usr/local/cuda/lib64/libcudnn.so.7
sudo ldconfig

最后,可以安装tensorflow 了

5. 安装 tensorflow

利用pip 的方式来安装:

sudo  pip3  install  tensorflow-gpu==1.9.0

没有pip3 的,自己安装一下:

sudo apt install  python3-pip

如果 pip3 的安装速度太慢,导致超时报错,可以尝试一下,使用国内源,具体方法:

修改 ~/.pip/pip.conf (没有就创建一个):

 如果不存在此文件夹,则创建之
mkdir ~/.pip
vi ~/.pip/pip.conf

增加内容如下:

[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
6. 总结

tensorflow 的版本兼容比较严格,这一点值得注意。


标题名称:ubuntu18.04tensorflow机器学习环境搭建
网页网址:http://azwzsj.com/article/pgoeih.html