升级到tensorflow2.0

tensorflow2.0推出以后,全面拥抱keras,简化了API接口,使得tensorflow在使用上宜人了很多。

从tensorflow1.x升级到2.x

方案一:依然使用tf 1.x的脚本

对于原来的1.x系列代码,当后台的tensorflow支持升级到2.x以后,大多数代码并不需要重新改写,只需要将加载tensorflow的代码修改为

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()

就可以了。

方案二:升级项目代码到2.x

但是这样做并没有真正发挥2.x新的API带来的新功能。为了将1.x的项目代码真正迁移成2.x风格的,tensorflow项目组发布了tf_upgrade_v2脚本实现这个功能。该脚本的使用方法如下:

tf_upgrade_v2 \

  --intree my_project/ \

  --outtree my_project_v2/ \

  --reportfile report.txt

其他参数可以查看tf_upgrade_v2脚本的帮助文档:tf_upgrade_v2 -h

但是有些API的符号并不能仅仅通过字符串替换简单的得到。虽然大多数1.x版本tf函数的调用都可以通过修改调用函数为tf.compat.v1.func_name()的方式得到,但是也有部分函数在2.x版本中被弃用了,例如tf.flags和tf.contrib, 另外还有一些函数可能需要调用一些其他的哭,例如absl.flags,或者将对应的函数调整到了tensorflow.addons模块中。

鉴于以上情况,官方推荐的升级方式为:
1)单元测试
2)安装tensorflow 1.14, 在tf1.14版本中实际上已经包括了tf 2.0版本的代码,封装在tf.compat.v2模块中。
3)用tf 1.14版本的代码进行测试,这一步非常关键,确保所有的代码在1.14版本的测试用全部通过。
4)用tf_upgrade_v2升级项目代码
5)在用1.14版本测试升级后的代码。
6)检查upgrade报告中的warning和error
7)安装tf2.0
8)测试代码,代码前面加入tf.disable_v2_behavior()函数,再运行测试
9)注释掉测试代码中的 ,用2.x的API运行。

如果遇到什么问题可以查看官方代码迁移指南:https://tensorflow.google.cn/guide/migrate

发布了111 篇原创文章 · 获赞 118 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/happyhorizion/article/details/103833847