随着深度学习的流行,Ubuntu系统的安装量也逐年上升。网上关于Ubuntu+深度学习框架的安装介绍博客层出不穷,有些确实能帮我们避坑,但有些由于信息表述不全可能让某些需要江湖救急的同学遇到新坑。
前几天,装有双系统的电脑突然出现了Ubuntu16.04的循环登录问题。上网查找解决方案未果,只得重装。考虑到下次还可能遇到重装的“机会”,特将本次测试通过的“Ubuntu16.04+TensorFlow1.6”安装过程记录如下,作为避坑宝典。
###一. Ubuntu16.04
关于Ubuntu系统的安装,网上有很多指导的安装方法。我装Ubuntu的目的在于使用深度学习框架,以下给出Win10+Ubuntu16.04双系统的安装方法。
#####1. 安装显卡驱动
装有NVIDIA显卡的电脑,装完Ubuntu16.04之后图形界面使用的是默认的集成显卡,因此还需要安装显卡驱动。
【说明】接下来的CUDA安装可能会自动安装NVIDIA Driver,因此可以尝试跳过显卡驱动安装步骤。Anyway,我是先单独装了显卡驱动后,再进行的后续步骤。如果求安全,那就遵循我的流程来。
$sudo apt-get remove --purge nvidia*
$sudo apt-get update
$sudo apt-get install dkms build-essential linux-headers-generic
$sudo nano /etc/modprobe.d/blacklist-nouveau.conf
在新建文件 blacklist-nouveau.conf 中加入如下内容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
$echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
$sudo update-initramfs -u
$sudo service lightdm stop
$sudo chmod u+x NVIDIA-Linux-x86_64-361.45.11.run
$sudo ./NVIDIA-Linux-x86_64-361.45.11.run
$sudo service lightdm start
$reboot
#####2. 安装CUDA9.0
写这篇博客的最重要的原因是:TensorFlow官网安装界面的最新版本CUDA9.1和TensorFlow1.6 根本是个坑!!! 我最开始按着官网指导流程走到了最后,测试TensorFlow时出现了"Error: can not find cublas9.0.so"。上网查了一些方法觉得不靠谱,因此才决定重来一遍。只是将CUDA9.1换成了CUDA9.0, 结果成功了!由此判断TensorFlow1.6并不支持CUDA9.1或者说支持得不好。所以,“不要安装最新版本“”是个亘古不变的真理!实践证明CUDA9.0+TensorFlow1.6是可以的。 【下载CUDA9.0】
$sudo apt-get --purge remove # cuda* and nvidia* respectively
$nvidia-smi
$nvcc -V
如果cmd界面有信息输出,则表明文件安装正常。输入第二条命令时,可能会提示未安装cuda-toolkits,按提示的命令(仅一行命令,无坑)安装后,即可正常调用”nvcc -V”查看cuda版本。
继续按照官网指导界面的验证步骤:7.1 Mandatory Actions 以及 7.2 Recommended Actions,直到测试通过。
#####3. 安装cuDNN
cuDNN的安装主要是下载文件,并复制到指定目录,相对简单。这里选择下载压缩包的方式操作。首先选择与已安装的CUDA9.0相符合的版本,这里不推荐选最新版本,测试通过的机器选择的是:cuDNN v7.0.5
下载”cuDNN v7.0.5 Library for Linux”之后,按以下官网指示的步骤进行操作。安装完成后,验证还需要额外下载以上列表中的Code Samples and User Guide for Ubuntu16.04(Deb)提供测试样例代码。
最后根据TensorFlow官网安装流程,还要运行以下命令安装libcupti-dev。值得说明的是,直接按官网提示输入:$sudo apt-get install cuda-command-line-tools
, 将提示找不到这个库。实际上,在最后加个版本号之后:$sudo apt-get install cuda-command-line-tools-9.0
,将显示该库已安装妥当,继续后面的TensorFlow安装即可。
###三. TensorFlow1.6
安装好NVIDIA Driver和CUDA, cuDNN之后,只要保证了各个模块版本兼容,TensorFlow的安装十分简单。这里选择虚拟环境Anaconda的安装方式:
【注意】最后一步中那个URL即决定了TensorFlow的版本,2018.03.17提供的是1.6(与cuda9.1不兼容,与cuda9.0兼容)。
最后,在cmd终端输入以下测试程序,不报错则说明安装成功了。
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
###其他说明:
$sudo apt-get install -f
$sudo apt-get update
时,就可能出现卡住的现象。当然有时候是其他原因导致的软件源列表更新卡顿。这时候你可以尝试手动更改系统的软件源服务器选择。Notice: 本人对Linux系统不太熟悉(仅半年经验),这篇博客仅是记录一套经实践检验切实可行的安装方案。其间如果有表述不准确或者错误的地方,欢迎留言指正!