tensorflow2.0推出之后,全面拥抱keras,简化了API接口,使得tensorflow在使用上宜人了不少。python
对于原来的1.x系列代码,当后台的tensorflow支持升级到2.x之后,大多数代码并不须要从新改写,只须要将加载tensorflow的代码修改成web
import tensorflow.compat.v1 as tf tf.disable_v2_behavior()
就能够了。ide
可是这样作并无真正发挥2.x新的API带来的新功能。为了将1.x的项目代码真正迁移成2.x风格的,tensorflow项目组发布了tf_upgrade_v2脚本实现这个功能。该脚本的使用方法以下:svg
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/migrateui