Windows 环境搭建 TensorFlow 2.1+ GPU 训练模型加速支持

写在前面

最近准备尝试跑一跑 TensorFlow GPU 训练模型,平时开发用的 MBP,无赖显卡是 AMD 只支持 CPU 训练,但恰有闲置 Win10 笔记本电脑一台显卡 NVIDIA 支持 CUDA® 。

Tensorflow GPU 训练加速需要支持 CUDA® 的 GPU 显卡,这里提到的 CUDA 指的是,是 NVIDIA 研发的一种并行计算平台和编程模型,它可以通过利用 GPU 的处理能力,可大幅提升计算性能的技术,更多查看相关内容

环境搭建过程整体比较简单,查找下载相关工具包需要捣腾一会。

1 硬件条件

首先查看自己的显卡型号是否满足条件,TensorFlow 官方文档硬件要求提到了,CUDA® 架构为 3.5、3.7、5.2、6.0、6.1、7.0 或更高的 NVIDIA® GPU 卡。

1.1 查看显卡型号

第一步查看自己的显卡型号,进入 NVIDIA 控制面板,点击系统信息。

20201014-201345

显卡型号为 GeForce GTX 850M,电脑比较老很早前的。

20201014-201520

1.2 查询显卡是否支持 CUDA®

显卡型号为 GeForce GTX 850M,点击查看支持 CUDA® 的 GPU 卡列表,查看显卡型号是否在支持的列表里面。

20201014-204817

计算能力为 5,显卡支持 CUDA ,接下来查看 CUDA 驱动版本,NVIDIA 控制面板,系统信息的组件里面。

20201014-211536

版本为 11.1.96,在 TensorFlow 支持 CUDA 驱动版本范围上,如果版本过低可查看下面提到的软件下载进行安装升级最新驱动。

2 软件下载

2.1 下载安装 NVIDIA® GPU 驱动程序

输入信息查询显卡驱动,下载安装最新的 NVIDIA® GPU 驱动程序,方便后面支持 CUDA Toolkit 安装 10.1 版本,CUDA Toolkit 10.1 需要驱动版本 418.x 或更高版本。

20201014-213623

版本号为 456.71,满足要求,然后下载下来后安装驱动。

20201014-213921

2.2 下载安装 CUDA® Toolkit

CUDA 工具包提供了用于创建高性能GPU加速应用程序的开发环境。TensorFlow(TensorFlow 2.1.0 及更高版本)支持 CUDA® 10.1 的 CUDA® Toolkit

20201014-231747

选择临时文件目录,这里选择了默认设置。

20201014-232646

然后一直下一步,直到这里,如果电脑上面没有安装 Visual Studio 会提示你安装 Visual Studio,如果后续有打算从源码构建 Tensorflow,则需要安装,具体安装内容可查看 在 Windows 环境中从源代码构建

20201014-234650

安装完成之后,会自动添加了几个环境变量到系统中,打开终端里面输入 nvcc -V 验证安装结果。

20201014-235856

2.3 下载 cuDNN SDK 7.6

cuDNN 是一个 GPU 加速的深度神经网络库,下载 cuDNN SDK 需要注册 NVIDIA Developer Program,进入下载页面后选择 CUDA 10.1 的 cuDNN 7.6 版本。

20201015-003912

下载成功之后将其压缩包解压,拷贝放到 CUDA 目录 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\下面,这里拷贝是指将这三个目录下面的文件拷贝放入到 CUDA v10.1 对应的目录里面。

20201015-012751

2.4 TensorRT 6.0 (可选)

用于可缩短用某些模型进行推断的延迟时间并提高吞吐量,可选择 Zip 方式安装,这里可选安装。

20201014-224155

3 安装 Anaconda

使用 Anaconda 通过方便管理包依赖问题,,如果觉得 Anaconda 占用磁盘空间过大可以使用 miniconda,平时开发电脑上用的 miniconda,关于miniconda 安装使用可点击这个

3.1 下载 Anaconda

3.2 安装 Anaconda

安装过程也比较简单,需要注意以下两个地方。

Anaconda 安装使用后占有磁盘空间比较大,如果 C 盘空间有限不推荐安装在 C盘。

895802-20200603164956820-683281587

下面有两个选择,第一个是将 Anaconda 添加到环境变量中,如果电脑上之前安装了 Anaconda 的另一个版本软件会影响 Anaconda 的使用,添加到环境变量的好处是可以直接打开终端执行相关命令管理包,如果不添加到环境变量也可以在 windows 的开始菜单里面找到 Anaconda Prompt ,然后在打开的终端上执行相关命令管理包,所以这里可以不添加到系统环境变量。

第二个是将 Anaconda 的 python 3.7 版本设置成我电脑上默认的 python,这样你的 IDE 等编辑器会检测到这个版本,方便后面在 IDE 调试代码的时候可以用到这个版本,如果之前电脑上有装过 python 这里可根据你的情况适当选择。

895802-20200603165015278-991209107

3.3 配置 Anaconda

Anaconda 官方的数据包镜像,下载比较缓慢,可以考虑用清华的镜像 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

将新的镜像地址配置到 .condarc 文件,配置镜像内容可以查看 Anaconda 清华镜像使用帮助

4 测试

4.1 安装 TensorFlow

打开安装好的 Anaconda Navigator, 创建用于测试 tensorflow-gpu 虚拟环境。

20201015-022511

需要注意的是,如果你用 pip 安装官方发布的 TensorFlow ,可以直接安装 tensorflow 包即可,即 pip install --upgrade tensorflow,因为官方对于 TensorFlow 1.x,CPU 和 GPU 软件包是分开的,而 2.x 将其打包在一起的,另外 2.x GPU 软件包也有发布的,也可以 pip install --upgrade tensorflow-gpu 安装 GPU 包。

在使用 conda 安装时, Anaconda Cloud 官方把 TensorFlow 2.x CPU 和 GPU 软件包是拆分了的,应该是为了减小包安装体积。

使用 conda 安装 tensorflow-gpu,在输入栏输入 tensorflow 选择 tensorflow-gpu 点击 Apply 即可。

20201015-022937

4.2 运行代码测试安装结果

打开当前环境的终端或打开 JupytarLab 或者 Notebook 运行以下代码。

import tensorflow as tf
from tensorflow.python.client import device_lib

// 打印已有的 GPU 
print(tf.config.list_physical_devices('GPU'))
// 打印 GPU 设备名称
print(tf.test.gpu_device_name())
// 打印电脑上可以用于计算的设备
print(device_lib.list_local_devices())

在 JupytarLab 运行结果为

20201015-024516

打印出来了可用于计算的设备有 CPU 与GPU,并分别打印出它们的信息及 GPU 计算能力,安装成功之后,接下来就可以跑代码训练神经元网络了。

4.3 一个简单的神经网络测试

最后来跑一跑常见的一个入门 Hellow World DEMO,根据一个简单的公式和构建一个神经网络,简单预测房屋的价格。

import tensorflow as tf
import numpy as np
from tensorflow import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')
xs = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], dtype=float)
ys = np.array([5.0, 6.5, 8.0, 9.5, 11.0, 12.5], dtype=float)
model.fit(xs, ys, epochs=1000)
print(model.predict([7.0]))

假如房子的定价很简单,如果一个带卧室的房子是 15 万 + 35 万,也就是一间带主卧的房子 50 万,两间卧室的房子 65 万,注此类推。

输入 6 条数据,预测 7 间卧室的房子多少钱,这里把单位缩小,方便神经元网络对数据的处理,输入数据 1 代表一个带卧室的房子,输出 5,表示 50 万。

20201016-210445

训练 1000 次,预测运行结果部分截图如下。

20201016-211824

参考链接

原文首发地址 https://github.com/liuvigongzuoshi/blog

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343