文章目录提示:看此文章 大前提需要拥有NVIDIA的显卡
- 前言
- 系统环境
- 准备
- 如何查询NVIDIA算力
一、开始安装
- 使用conda创建虚拟环境
二、使用pycharm测试代码
- 1.安装matplotlib
- 2.使用pycharm测试代码
- 总结
- 参考链接
前言
看了很多安装教程,安装了n遍,出现过各种错误,即便解决各种错误,TensorFlow-GPU也还是不能使用,直到参考了Tensorflow-gpu安装超详细!!!才得以安装成功
系统环境
大前提
:你需要拥有NVIDIA的显卡
准备我用的是笔记本电脑
系统:Windows10
显卡:GTX 1050Ti
算力6.1
(下边会讲到如何查询显卡算力)
软件:anaconda
需要安装anaconda
若未安装或未曾使用过anaconda,请参考anaconda入门
首先清楚自己的显卡类型
Ctrl + Shift + ESC
打开任务管理器
,接着点击性能
,按照图片所示就清楚显卡
PS:显卡的算力影响你能安装哪一些tensorflow-GPU的版本(如果算力3.5以上基本没什么问题)
NVIDIA显卡算力官网查询
进官网之后,要点击如下图,即可查看自己的显卡算力
PS:我的是笔记本电脑,所以看的是Notebook那一列的,如果是台式可以参考左边的。
个人认为左边或者右边都可以参考
一、开始安装
以下安装为我成功运行的版本,
TensorFlow-gpu2.1
使用conda创建虚拟环境一定要安装对版本,尤其是
CUDA
和cuDNN
,因此,以下优先安装CUDA和cuDNN
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
2.使用pycharm测试代码若需要换源,请参考pip换源 conda换源
如果使用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、CUDA、CUDNN、python等各个版本一定要对应上
(也许安装的顺序很重要?)
参考链接
tensorflow官方文档
conda安装tensorflow官方文档
NVIDIA显卡算力官网查询
Tensorflow-gpu安装超详细!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)