tensorflow2.0-gpu版本安装


  初学DeepLearning,看到TensorFlow和pytorch框架用户数和讨论数比较多,最后选择上手TensorFlow2.0版本。因为搜索了一圈总结:TensorFlow用户基数还是比较大;2.0版本也改进了1.0版本代码编写、调试困难和API混乱等缺点,使其也有了pytorch好上手的优点。

  TensorFlow有cpu和gpu两个版本,gpu可以并行处理,因此gpu版本运行起来更快,但需要有NVIDIA显卡,且显卡算力有一定要求。我的笔记本显卡是:NVIDIA GeForce MX250。以下是在win10安装TensorFlow2.0-gpu的步骤:

  1、安装之前需要有anaconda,这个我之前装了就不写了;

   查看我们机器的NVIDIA显卡算力是否满足gpu计算要求:https://www.tensorflow.org/install/gpu

  

  显卡算力查询:https://developer.nvidia.com/cuda-gpus

  我的MX250在官网没查到,百度了一下说满足要求,就继续安装了。最后我安装完成测试时看到了我的显卡算力是6.1

  2、pip安装TensorFlow-gpu

  用阿里云的镜像源下载安装:cmd执行:

  pip install --default-timeout=100 --ignore-installed --upgrade tensorflow-gpu -i https://mirrors.aliyun.com/pypi/simple/

  3、https://www.tensorflow.org/install/source_windows查看CUDA、cuDNN要下载的版本

 

 

   我的python版本是Python 3.7.6,可以安装2.0版本,另外需要安装cuDNN7.4,CUDA10,中间的编译器和构建工具不知道是什么没理,最后也不影响。

  #python版本查询:python -V

  #python安装路径:where ipython

  4、https://developer.nvidia.com/cuda-toolkit-archive,下载对应版本的CUDA,我下载的是10.2版本,安装过程就是一直点点点,如果你不放心的话可以找别的资料参照下具体过程。另外,我搜到有人装的10.0版本的,不知道区别大不大。我选择的是默认安装路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2

  5、https://developer.nvidia.com/cudnn,下载对应版本的cuDNN,我下载的是cudnn-10.2-windows10-x64-v8.0.2.39.zip。这里我下错了,导致后面运行时候有点小问题(具体下面说),我下成8.0版本了。下载前需要进行注册账户和填写问卷。

   我只看到“for CUDA 10.2”就下了,其他历史版本在Archived cuDNN Releases里可以找到。下载得到的压缩包,就地解压后将里面的bin、include、lib里边的文件放到CUDA的对应文件夹下(我的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)。

  6、添加环境变量:电脑 -> 右键 属性 -> 高级系统设置 -> 环境变量 -> 系统变量里找到Path -> 编辑 -> 新建,将以下4个分别加上去。

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include

  7、测试:

  一、cmd中测试:

  activate tensorflow

  ipython

  import tensorflow as tf   //结果不报错即正常

  tf.test.is_gpu_available()  //最后结果显示True即gpu可以使用

  二、pycharm中测试:

  (1)加法测试,不要用1.x版本的session方式来测试,因为还要通过import tensorflow.compat.v1 as tf  tf.disable_v2_behavior()来启用1.x版本的代码编写方式,这就是2.x想解决的一个TensorFlow缺点,直接用以下代码即可:

1 import tensorflow as tf
2 
3 a = tf.constant(1.)
4 b = tf.constant(2.)
5 c = tf.add(a,b)
6 
7 print(float(c))

 

  (2)矩阵相乘测试,cpu和gpu分别计算10000×1000矩阵和1000×2000矩阵相乘的结果,输出2个运算的时间。

 1 import tensorflow as tf
 2 import timeit
 3 
 4 with tf.device('/cpu:0'):
 5     cpu_a = tf.random.normal([10000, 1000])
 6     cpu_b = tf.random.normal([1000, 2000])
 7     print(cpu_a.device, cpu_b.device)
 8 
 9 with tf.device('/gpu:0'):
10     gpu_a = tf.random.normal([10000, 1000])
11     gpu_b = tf.random.normal([1000, 2000])
12     print(gpu_a.device, gpu_b.device)
13 
14 def cpu_run():
15     with tf.device('/cpu:0'):
16         c = tf.matmul(cpu_a, cpu_b)
17     return c
18 
19 def gpu_run():
20     with tf.device('/gpu:0'):
21         c = tf.matmul(gpu_a, gpu_b)
22     return c
23 
24 
25 cpu_time = timeit.timeit(cpu_run, number=10)
26 gpu_time = timeit.timeit(gpu_run, number=10)
27 print('warmup:', cpu_time, gpu_time)
28 
29 
30 cpu_time = timeit.timeit(cpu_run, number=10)
31 gpu_time = timeit.timeit(gpu_run, number=10)
32 print('run time:', cpu_time, gpu_time)

输出结果:

   8、测试时遇到的问题:

  Could not load dynamic library ‘cudart64_101.dll’; dlerror: cudart64_101.dll not found,还有个是没找到cudart64_7什么的文件

  解决:在CUDA安装路径下(我的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)搜索缺失的dll文件,将搜到的cudart64_102.dll改为cudart64_101.dll,另一个cudart64_7的也同理。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM