上半年忙着博士入学,写毕业论文,准备答辩,一系列事情,总算是差不多做好有时间回来搞学术。欠了很久的跟师弟一起调DDPG强化学习策略的代码,是基于Keras+TensorFlow的。由于之前没用过 TF,加上自己一直技痒,所以决定趟一趟 TF 的坑。 于是事情就来了。
背景
要在自己的台式机上安装tensorflow的环境,台式机的配置如下:
- win10+ubuntu 14.04 (64位)
- GTX 960
- cuda 7.5版本
- cudnn 6.0版本
铺垫
一开始直接用pip装 TF ,结果不知情的情况下踏了很多个坑,pip安装卸载了无数次,源码安装,bazel编译等等。
一些重要的容易忽略的点如下:
1.cudnn版本太高,不能用 pip 的方式安装,只能用源码安装。这个在之前的官方文档里有说明。
Download cuDNN v4 (v5 is currently a release candidate and is only supported when installing TensorFlow from sources).
但是我发现这个事儿也不一定。比如最好我装好的tensorflow就是用的 v5.1
2.源码安装一定要注意好版本的配置
一般是从github上克隆回来的镜像,注意要有针对性地 git checkout r0.xxx ,也就是选择自己的tensorflow版本。因为太高的版本对于你电脑上的cuda之类的要求比较高。看到一张表,验证过的可行的版本选择可以参考如下(注意那个cudnn的版本是v后面的数字,前面的数字是对应cuda的):
3. 升级cuda之后的grub问题
这个就比较坑了,事实上,在各种尝试安装都没办法的情况下,我听他们说cuda8.0特别好装,pip直接就能用。
于是我决定升级电脑上的cuda版本。
升级cuda不难 参考这个博客 ubuntu 14.04下cuda7.5升级到cuda8.0
难题是升级cuda重启之后的各种意外。
高潮
我的电脑就中招了。
现象这样:打开之后与往常一样,选择双系统。我选择ubuntu之后,原来的grub的再次选择界面没有了,直接黑屏,找不到系统了,出现了这样:
Error 1962:No operating systen found.press any key to repeat boot sequence,
但是同时我的win10还是可以进去的,在win10下去看分区都还在,所以判断是grub出现了问题。于是决定重新构建grub。
于是,找到一张ubuntu的光盘(版本不一定一致),用试用模式进入系统之后,按照这个方法重做grub。双系统安装后找不到ubuntu引导
有个注意的点,第三步里:
sudo grub-install --root-directory=/media/tmpdir /dev/sda
tmpdir和之后是有空格的,有的博客写错了或者正好分行了导致看不太出来。
之后重启之后,发生的问题是,进入了grub命令行的黑屏,输入exit 也不能退出。还是grub的问题,于是决定彻底解决。
解决办法:boot_repair 。 这个随便搜一下都看得到。
修复之后重启,总算回到原来的ubuntu了。
结尾
之后就开始顺利地用 pip 直接安装 tensorflow,很顺利,装好了。但是会有个库的问题是,libcudnn之类的,装的时候是放在 /usr/local/cuda-8.0/** 底下的,这导致用 sudo python 的是,找不到 libcudnn.so.* 之类的。
解决办法是把 libcudnn.so.** 做一个软链接到 /usr/lib/里。这样之后,sudo python 和直接python都没有问题了。
开始 Flow the Tensors ~!
归纳起来最重要的事情: