N卡双显卡电脑装ubuntu15.04并配置Anaconda+Tensorflow+cuda+cuDNN的深度学习环境

1.序

这篇文章的目的是Tensorflow环境配置的经验和流程总结,涉及3个部分:

1)装ubuntu并配置显卡驱动;

2)装CUDA+cuDNN库并解决cuda与显卡驱动冲突问题

3)以常用的科学计算python包Anaconda为基础,Tensorflow放于其子环境中,并配置好编程界面jupyter或spyder


2. Tensorflow简介和我的笔记本硬件配置

目前对电子和计算机行业的学生来说深度学习可以说是必备技能了,Google的Tensorflow又是企业化的、比较有前途的深度学习库之一。

Tensorflow的不支持windows,必须在Linux下开发。

其他相对出名的库有微软的CNTK,学术性质较浓的Theano及其变种sklearn-theano,以及Caffe,Torch,mxnet等。

另外Keras是一个高层模块库,底层是Tensorflow或者Theano,并且还有中文文档,也是个不错的选择。

我这篇介绍里下的是GPU Enabled的Tensorflow包,所以装CUDA。如果你选的是CPU only的就不用,但是运算起来那几个测试程序就多大概一倍时间。

所以可以的话还是尽量珍惜生命,选用GPU Enabled的Tensorflow。毕竟并行计算也挺火的,挺适合神经网络训练。

我的笔记本硬件配置:

微星GE60-2OD 

intel i7-4700HQ(HD4600集成显卡) + NVIDIA GTX765m

256G SSD + 756G的希捷SSD-HDD混合硬盘(含8GSSD),全都是GPT分区

8G 内存



3.下面开始介绍经过3天试错得到的正确的流程

注:在此之前建议大家先看下Tensorflow官网的“Get Started”,内有详细流程,只不过不会详说CUDA和显卡驱动冲突等琐碎问题。

链接为: https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html


1)装ubuntu15.04。

装之前我的256G的SSD上windows10的C盘占了80G。win10也是EFI启动引导。为了ubuntu在SSD上又分出来了40G

因为目前CUDA目前只支持15.04 和 14.04,而14.04在我装完NVIDIA显卡驱动后直接黑屏,只能用NVIDIA-prime选intel进入。要是直接装完CUDA再重启竟然连命令行界面都打不开了,所以果断抛弃。

15.04的ISO下载地址为:http://old-releases.ubuntu.com/releases/15.04/

我是64位系统,所以直接选的第一个64-bit PC (AMD64) desktop image,注意这里不是说要AMD的芯片,只不过intel的x86-64也是参考AMD64架构的,所以无论intel还是AMD的芯片都能用,但我的机器是intel的。

注意分区的时候不要让自动装,手动分区就行。

官方的分区参考链接:https://help.ubuntu.com/community/DiskSpace

我测试过后觉得最好的方案是3~4个分区:A)EXT4的/boot,250M以上即可,用于选中作为EFI引导。实际会用掉190多M,所以不建议和windows的EFI引导区windows boot manager放一起因为空间不够。也不建议想有些帖子中误导的默认硬盘不用改什么的(这种情况下ubuntu会检测你选中的硬盘自动设置EFI分区,也可以用,但是不建议因为其过程不透明) B)直接从下拉菜单里选swap分区,中文的话好像是“”交换分区“”什么的,其实就是虚拟内存。大小我没怎么在意,网上不少帖子说是你内存的1~2倍,所以我就分了8个G(8192M)C)root硬盘,仍然选EXT4分区,盘符选只有一个“/”的就是root分区,也就是系统分区,相当于windows中的C盘。D)另外你如果想的话也可以加个/home分区,放些杂文件什么的,相当于windows中的D、E、F等那些盘。

如果你黑屏了,或者在windows里面把ubuntu盘格式化了(系统启动后会进grub界面),这时候u盘里又没有镜像,启动后尝试按F11或F12。一般现在笔记本这个键可以选择从哪儿启动,选windows进去,再下个镜像就行。不用再开一台电脑。所以我觉得整个过程还是比较保险的。


2)装NVIDIA 352 驱动。

我装的时候最新的是367.27,不过鉴于后来要装的 CUDA Toolkit 7.5 是和352 配套的,于是决定选择352。

ubuntu装好后默认驱动是某开源驱动。如果你电脑配置跟我类似的话,不建议从Software & Update中的 Additional Drivers中换驱动。(当然可以试试,能用更好,反正我是重启黑屏的) 

其实命令行装也相当简单保险。直接在Terminal 里 (或按Alt + Ctrl + F1 进入命令行界面),输入:

sudo apt-get install nvidia-352 nvidia-settings nvidia-prime 
其中NVIDIA-prime是一个软件,可以切换nvidia和intel显卡。装完NVIDIA驱动后默认的是nvidia-prime。

3)装CUDA Toolkit7.5 和 cuDNN v4

这2个版本号是Tensorflow文档里要求的: https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#optional-install-cuda-gpus-on-linux
先按链接中的要求检查一下你GPU的compute capability是不是3.0以上。
整个安装过程按部就班正常装即可,cuDNN实际上是几行命令解压复制到CUDA的对应位置的。没有难度。
唯一需要注意的是Tensorflow文档里说的配置环境变量的~/.bash_profile, 在ubuntu里是~/.profile。

但是装完后请一定不要立即重启!!!
下面是非常关键的一步,如果你上一步装完CUDA立即重启了,很有可能就黑屏或卡在ubuntu界面了。.具体情况是5、6次里面能打开一次。
看错误报告是 是背光亮度的问题。具体原因不详,但猜测是虽然nvidia-prime,仍然调用了某些intel的文件。
解决方案也是在ubuntu官网wiki找的: https://wiki.ubuntu.com/Kernel/Debugging/Backlight
其中的Intel HD Graphic Controllers一栏就是解决方案。
具体来说就是新建文件 /usr/share/X11/xorg.conf.d/80-backlight.conf
文件内容填写如下,保存重启即可,亲测有效:
Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "AccelMethod"     "sna"
    Option      "Backlight"       "intel_backlight" # use your backlight that works here
    BusID       "PCI:0:2:0"
EndSection

4)装Anaconda3和配置Tensorflow环境,以及jupyter和spyder

装Anaconda3没什么好说的,下载文件执行即可。
配置Tensorflow就是按Tensorflow文档里所述建一个虚拟环境就行了,这样和ubuntu系统自带的区别开来。
这里看文档的时候注意,由于你装了Anaconda 3,所以下载Tensorflow包的时候,即使环境建的是Python=3.5的,依然用pip即可,不用pip3。
Jupyter Notebook 其实就是网上常见的Ipython Notebook发展到现在改了个名。
本身是不用配置的,执行时也没必要在Terminal里输入source activate tensorflow。
直接打开,新建文件的时候可以选不同虚拟环境的内核。比如我只有Tensorflow子环境,New下面就有2项,一个是Python [root] ,另一个就是Python [Tensorflow]。
至于Spyder IDE,优点就是能够查看变量,为了调用Tensorflow的python解释器而不是Anaconda3 默认的python解释器,
在Tools-->preferences-->Console-->Advanced Settings-->Python Executable中把默认的
/home/"yourusrname"/anaconda3/bin/python
改成 tensorflow子环境的python解释器目录即可。注意我写的“yourusrname”是指代了你的ubuntu用户名。


好了!大功告成!至此为止你就可以放心开发你所需要的东西了!



你可能感兴趣的:(深度学习)