提示:看此文章 大前提需要拥有
NVIDIA
的显卡
个人安装顺序:VS部分组件
=>CUDA
=>CuDNN
=>python
=>tensorflow-gpu
文章目录
- 前言
- 系统环境
- 准备
- 如何查询NVIDIA算力
- 1、安装VS组件、CUDA
- 使用conda创建虚拟环境
- 二、使用pycharm测试代码
- 1.安装matplotlib
- 2.使用pycharm测试代码
- 总结
- 参考链接
前言
笔者有最新的安装
TensorFlow-gpu-2.6
的文章,TensorFlow-gpu-2.6详细安装强烈推荐看这篇笔者最新的文章!!!!
大前提
:你需要拥有NVIDIA的显卡
系统环境
我用的是笔记本电脑
系统:Windows10
显卡:GTX 1050Ti
算力6.1
(下边会讲到如何查询显卡算力)
软件:anaconda
准备
需要安装anaconda
若未安装或未曾使用过anaconda,请参考anaconda入门
如何查询NVIDIA算力
首先清楚自己的显卡类型
Ctrl + Shift + ESC
打开任务管理器
,接着点击性能
,按照图片所示就清楚显卡
PS:显卡的算力影响你能安装哪一些tensorflow-GPU的版本(如果算力3.5以上基本没什么问题)
NVIDIA显卡算力官网查询 进官网之后,要点击如下图,即可查看自己的显卡算力
PS:我的是笔记本电脑,所以看的是Notebook那一列的,如果是台式可以参考左边的。个人认为左边或者右边都可以参考
以下安装为我成功运行的版本,
TensorFlow-gpu2.1
直接查看最新的安装方式最好笔者已经更新了最新安装
TensorFlow-gpu-2.6
的文章,详细安装过程可以参考TensorFlow-gpu-2.6安装过程强烈推荐看这篇笔者最新的文章!!!!
1、安装VS组件、CUDA
进入VS官网,打开VS安装程序(本人安装的是tensorflow-gpu-2.6,因此对应安装VS2019的部分组件
PS:不需要安装完整的VS,只是需要VS的部分组件
具体是:
C++ 2019可在发行程序包
以及VS 2019 C++ 生成工具
,如下图
一定要安装对版本,尤其是
VS组件
,才能成功安装CUDA
和cuDNN
,先安装VS组件,后安装CUDA
和cuDnn
使用conda创建虚拟环境
PS:以下很多场合用到conda命令,若不会请参考anaconda入门,也可能会给
conda
换源,若不会请参考pip换源 conda换源
Win + R
输入cmd
1.安装CUDA
输入命令
conda create -n tf-gpu-2.1 cudatoolkit=10.1
# 创建一个名为tf-gpu-2.1的虚拟环境回车以上命令之后,记得输入
y
然后回车[Enter]
需要的是
CUDA
的cudatoolkit
,因此先安装了它cudatoolkit=10.1
2.进入环境
输入命令
activate tf-gpu-2.1
# 进入tf-gpu-2.1的虚拟环境
3.安装cuDNN
输入命令
conda install cudnn=7.6
# 使用conda命令安装python3.7使用
conda
命令安装。回车以上命令之后,记得输入y
然后回车[Enter]
4.安装对应的python
输入命令
conda install python=3.7
# 使用conda命令安装python3.7使用
conda
命令安装。回车以上命令之后,记得输入y
然后回车[Enter]
5.安装对应的TensorFlow-GPU
最关键的一步,这次用的是
pip
命令安装TensorFlow-gpu
!!!!!
可能需要为pip
命令换源,若不会换源,请参考pip换源 conda换源输入命令
pip install tensorflow-gpu==2.1.0
PS:在安装过程中,会安装很多关联的包,等待安装完成即可
6.测试TensorFlow-GPU
在当前环境下,输入python
,回车[Enter]
输入以下命令
import tensorflow as tf
接着输入
tf.test.is_gpu_available()
以上代码会显示
显卡型号
,显卡算力
以及是否可用,若为True
,则说明可用。
二、使用pycharm测试代码
1.安装matplotlib
1.进入环境
输入命令
activate tf-gpu-2.1
# 进入tf-gpu-2.1的虚拟环境
2.安装matplotlib
输入命令
pip install matplotlib
若需要换源,请参考pip换源 conda换源
2.使用pycharm测试代码
如果使用pycharm,如何关联conda创建的虚拟环境请参考anaconda入门
测试代码如下
import tensorflow as tf
import timeit
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 以矩阵A[1,n]和矩阵B[n,1]的乘法运算(分别在cpu和gpu上运行)来测试:
def cpu_run(num):
with tf.device('/cpu:0'): # 指定操作:用cpu计算
cpu_a = tf.random.normal([1, num])
cpu_b = tf.random.normal([num, 1])
c = tf.matmul(cpu_a, cpu_b) # 矩阵乘法,此操作采用cpu计算
return c
def gpu_run(num):
with tf.device('/gpu:0'): # 指定操作:用gpu计算
gpu_a = tf.random.normal([1, num])
gpu_b = tf.random.normal([num, 1])
c = tf.matmul(gpu_a, gpu_b) # 矩阵乘法,此操作采用gpu计算
return c
k = 10
m = 7
cpu_result = np.arange(m, dtype=np.float32)
gpu_result = np.arange(m, dtype=np.float32)
x_time = np.arange(m)
for i in range(m):
k = k * 10
x_time[i] = k
cpu_str = 'cpu_run(' + str(k) + ')'
gpu_str = 'gpu_run(' + str(k) + ')'
# 计算10次,取平均时间
cpu_time = timeit.timeit(cpu_str, 'from __main__ import cpu_run', number=10)
gpu_time = timeit.timeit(gpu_str, 'from __main__ import gpu_run', number=10)
cpu_result[i] = cpu_time
gpu_result[i] = gpu_time
print(cpu_result)
print(gpu_result)
fig, ax = plt.subplots()
ax.set_xscale("log")
ax.set_adjustable("datalim")
ax.plot(x_time, cpu_result, color='#005FDD', alpha=0.8, linewidth=1, label='C P U')
ax.plot(x_time, gpu_result, color='#47AC3A', alpha=0.8, linewidth=1, label='G P U')
ax.grid()
plt.legend(loc="upper right")
plt.title("CPU和GPU运行对比")
plt.xlabel('计算量')
plt.ylabel('时间')
plt.draw()
plt.show()
运行结果如下图
总结
如果需要安装官方测试过的最新的TensorFlow-gpu-2.6,可以参考最新的安装教程win10安装TensorFlow-gpu-2.6
参考链接
tensorflow官方文档conda安装tensorflow官方文档 NVIDIA显卡算力官网查询Tensorflow-gpu安装超详细!!!