win10+rtx2070+tensorflow-gpu-1.9.0环境搭建

最近实验室新到一台工作站,配备了两块rtx2070。但为方便使用其他科研软件,只能使用win10。为学习深度有趣 - 人工智能实战项目合集 ,需安装TensorFlow 1.9.0环境。win10下搭建深度学习环境首推基于Anaconda的办法,网上资料很多,在此不再赘述,仅记录踩到的几个坑如下:

显卡相关依赖安装

显卡driver、cuda、cudnn是三个不同的东西,对于搭环境来说三个都要装。一般电脑(能打游戏那种)都只装好了显卡driver,也就是会有C:\Program Files\NVIDIA Corporation这个文件夹。cuda、cudnn都要专门去安装,装好后会有C:\Program Files\NVIDIA GPU Computing Toolkit这个文件夹。这三个软件及显卡硬件有严格的搭配关系,需要事先查好要安装的版本,具体可见cuda兼容性表格。笔者的搭配是rtx2070 + 驱动417.35 + cuda 9.0 + cudnn 7.4 + python 3.5 + tensorflow-gpu 1.9.0

如果用conda安装tensorflow-gpu,一般可以自动安装cuda与cudnn依赖到anaconda虚拟环境的文件夹中,不需要Admin权限,非常方便,建议优先尝试这种方式进行安装。创建好环境后,可在python中用如下代码列出可用计算设备:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

如果看到/gpu:0 之类的字样则安装没有问题。

笔者用conda安装好tensorflow-gpu后,运行以上代码看不到gpu。只好自己去NVIDIA官网下载安装cuda与cudnn,安装需要Admin权限。安装cuda时警告说该版本cuda可能与现有驱动、硬件不搭配,如果事先查表确认过的话不需要理会这一点,点击仍然继续即可。安装好后还需要配置一下环境变量(参考教程)。然后只使用conda创建python环境,再用pip安装tensorflow-gpu即可。

无法占用所有显存的问题

一般来说,TensorFlow默认占用所有卡的所有显存,但在跑官方的cifar10图片分类教程时,指定TF运行在第二块没有带显示器的卡,发现其只能占用6.7GB左右的显存(总显存是8GB)。google后发现这是win10的一个特性(参考链接),显卡默认工作在WDDM(Windows Display Driver Model)模式,GPU 同时扮演计算卡 + 显卡的角色, 默认会保留一部分显存不用于计算任务。

解决方案是将显卡配置为 TCC(Tesla Compute Cluster)模式,该模式下,GPU完全用于计算,牺牲本地显示功能。但很遗憾GeForce系列的显卡一般不支持该模式,只有Tesla和Quadro这种面向服务器的显卡才有这个功能!所以该问题无解,看来跑深度学习最好还是要装linux系统。

jupyter与cmd的美化

  1. jupyter界面美化:借助jupyterthemes,调整后界面如下:win10+rtx2070+tensorflow-gpu-1.9.0环境搭建_第1张图片
  2. cmd界面美化:https://www.windowscentral.com/how-change-command-prompts-color-scheme-windows-10 。可惜Anaconda Prompt的界面没有跟随CMD变化,待进一步解决。

觉得有用?> 欢迎关注笔者个人博客查看更多文章。

你可能感兴趣的:(机器学习,环境搭建)