PyTorch转TensorFlow 2.0教程

初学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,这个我之前装了就不写了;

pytorch改写tensorflow pytorch tensorflow2.0_pytorch改写tensorflow

 

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

pytorch改写tensorflow pytorch tensorflow2.0_v9_02

2、pip安装TensorFlow-gpu

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

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


3查看CUDA、cuDNN要下载的版本

pytorch改写tensorflow pytorch tensorflow2.0_pytorch改写tensorflow_03

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

#python版本查询:python -V

#python安装路径:where ipython

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

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

pytorch改写tensorflow pytorch tensorflow2.0_tensorflow_04


我只看到“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中测试:

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))


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)

输出结果:

pytorch改写tensorflow pytorch tensorflow2.0_CUDA_05

  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的也同理。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空