这篇文章的目的是Tensorflow环境配置的经验和流程总结,涉及3个部分:
1)装ubuntu并配置显卡驱动;
2)装CUDA+cuDNN库并解决cuda与显卡驱动冲突问题
3)以常用的科学计算python包Anaconda为基础,Tensorflow放于其子环境中,并配置好编程界面jupyter或spyder
目前对电子和计算机行业的学生来说深度学习可以说是必备技能了,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 内存
注:在此之前建议大家先看下Tensorflow官网的“Get Started”,内有详细流程,只不过不会详说CUDA和显卡驱动冲突等琐碎问题。
链接为: https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html
装之前我的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进去,再下个镜像就行。不用再开一台电脑。所以我觉得整个过程还是比较保险的。
我装的时候最新的是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
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