既已转行,自然需要全心投入深度学习的探索和研究之中。深度学习的学习和实现离不开一些经典的深度学习框架,从Caffe到Theano,从MXnet到TensorFlow,优秀的框架层出不穷,但我想基于Google目前在深度学习领域的地位,以及Google推出TensorFlow之后受到的关注和影响,TensorFlow都不容忽视。又加之最近TensorFlow在迭代更新之后,已经没有了明显的短板和弱点,而我自己对深度学习的入门和研究也日渐需要一个平台框架来实现一些东西,思虑再三,决定开始选定并搭建TensorFlow环境了。 搭建TensorFlow特别容易,要么是Linux下一行命令,要么是Windows下使用docker,但很遗憾,我在Windows下安装docker出了问题,而刚好,公司给我们几个博士一人配了一台很不错的新电脑,以便进行深度学习的研究,既然电脑是全新的,而考虑到深度学习的研发通常都是在Ubuntu上进行,既然绕不开,就果断装一个,索性折腾一番吧。 但是自此开始,我进了坑。 原本电脑上安装的有Windows 7,加之我对Ubuntu并不熟悉,权衡之下,决定安装双系统。从Windows 7下直接硬盘安装Ubuntu的教程网上比比皆是,但我的安装却没有那么顺利。要么是磁盘出现各种错误提示,诸如: [shell]Filesystem type is ntfs, partition type 0x07[/shell] [shell]Filesystem type is fat, partition type 0x0c[/shell] 要么是安装完成,但重启之后,直接进不了系统,只是在暗色的屏幕的左上角闪动着一个白色短划线的鼠标符号。面对这样的情况,我真是直接无语了。无奈,只好放弃了一段时间,还好,当时我对TensorFlow的搭建需求并不迫切。好吧,其实是我当时已经山穷水尽没有招数了。 再后来,我想着这样也不是办法,便找到了公司负责网络和计算机的同事,让他帮忙看看是怎么回事儿。他直接把电脑搬走了,准备亲自处理。一周之后,我发现他依然还在努力着试图解决这个让人无语的问题,甚至他把电脑的装机商都找了来,却依然束手无策。 我有些等不及了,去找了他,仔细地问了一下进展。结果发现,他把连接在独显上的显示器线改到了集显(主板)上,安装完Ubuntu之后,已经可以进入系统,但独显并不能直接用,因为Ubuntu自身似乎没有带这块Titan X显卡的驱动。 我们当时压根没有经验,而且也没有想到问题的复杂性,便从网上搜索,然后去NVIDIA的官网下载了驱动,安装虽然并不容易,诸如需要首先屏蔽nouveau,关闭X server等等,但一路也是安装了下来。 然而,安装完成重启时,问题来了,在Ubuntu的用户登录界面上,我们正确地输入了密码,但是系统黑了一下屏幕,却再次回到了登录界面上,系统依然进不去。我已经彻底无语了。 还好,那个周末在华为有一个深度学习的meetup,我抱着求助的心态去了。虽然最后也没有找到什么明确的主意,但有个朋友告诉我他按照CSDN上的一篇博客里的方法成功了。我如获至宝一样,从那个会上回来后,就赶快趁着周末又折腾了起来。 不过可能是我陷的坑比较深吧,依然没有成功爬出来。安装完重启之后,最开始虽然能进入系统,但安装完CUDA后,按教程执行重启,依然进不去系统,还是卡在用户登录的界面。可这时,我竟然在搜索一圈没有找到可用的方法之后,愚蠢地选择了重装。当然,在重装系统后,安装完CUDA,按有些教程上所说的,不选择[shell]sudo apt-get upgrade[/shell],不过依然没用,重启还是进不了系统。 不知道最后是上天垂怜,还是我基本上把所有的坑已经都蹚遍了,最后在一篇教程中看到说使用deb包安装CUDA时,其中的opengl把系统原来的给覆盖了,导致系统无法加载桌面,改成使用.run包进行安装,安装时配上参数[shell]–no-opengl-libs[/shell]即可。 终于,在最后的最后,我成功地安装好了Ubuntu系统和显卡驱动,以及使用显卡进行计算所需的CUDA和cuDNN驱动程序。进行到这里,搭建TensorFlow,已经不过是一句命令的事情了。 最后,将整个过程简记如下:
1.进入BIOS,修改显卡的优先级顺序,将Onboard VGA放到第一位,我们使用集显用于显示,将独显留出来用于计算; 2.重启,如果显示器连接线连接到了独显上,在重启的过程中将其更改到直接连接在主板上的VGA口上,否则显示器会没有内容可显示; 3.使用U盘启动盘安装Ubuntu,选择擦除整个磁盘,系统自动分区的方法进行安装:Erase disk and Install Ubuntu; 4.安装完成Ubuntu后,不要安装显卡驱动,选择直接以.run文件安装CUDA,因为其中带有显卡驱动(参考这篇文章中的相应内容):
4.1关闭与Nvidia内核不兼容的nouveau 4.2Ctrl+Alt+F1进入tty下,关闭lightdm(X driver):[shell]sudo service lightdm stop[/shell],然后安装cuda:[shell]sudo sh cuda*.run –no-opengl-libs[/shell];安装完毕重新启动lightdm:[shell]sudo service lightdm start[/shell]
; 5.随后安装cuDNN等,然后重启,安装完成; 6.如果系统分辨率不能调整,比如显示器显示unknown display,则使用网上如cvt等方法手动添加分辨率,进行设置; 7.安装TensorFlow,完成。
总结一下,我想我的问题和难度在于,我的电脑有3块硬盘,单是安装Ubuntu就走了许多弯路,然后显卡和显示器的切换又碰到了不少问题,最后就是安装显卡的驱动时,又有许多弯路没有避开。设想一下,如果最开始就站在把问题综合考虑起来的高度,以 Ubuntu NVIDIA Titan X Deep learning 为关键词进行搜索,或许会少遇到许多问题吧。