win10 1050ti anaconda搭建tensorflow-gpu

win10 1050ti anaconda搭建tensorflow-gpu,第1张

提示:看此文章 大前提需要拥有NVIDIA的显卡

文章目录
  • 前言
    • 系统环境
      • 准备
      • 如何查询NVIDIA算力

  • 一、开始安装

    • 使用conda创建虚拟环境

  • 二、使用pycharm测试代码

    • 1.安装matplotlib
    • 2.使用pycharm测试代码
  • 总结
  • 参考链接


前言

看了很多安装教程,安装了n遍,出现过各种错误,即便解决各种错误,TensorFlow-GPU也还是不能使用,直到参考了Tensorflow-gpu安装超详细!!!才得以安装成功

大前提:你需要拥有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

一定要安装对版本,尤其是CUDAcuDNN,因此,以下优先安装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]

需要的是CUDAcudatoolkit,因此先安装了它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、CUDA、CUDNN、python等各个版本一定要对应上
(也许安装的顺序很重要?)


参考链接

tensorflow官方文档
conda安装tensorflow官方文档
NVIDIA显卡算力官网查询
Tensorflow-gpu安装超详细!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/578489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存