1、替换Session.run的调用
每一个Session.run调用都可以被Python函数替换。
(1)feed_dict和v1.placeholders 成为函数参数;
(2)fetches成为函数的返回值;
之后,添加tf.function装饰器使其在图形中高效运行。
注意:(1)不像v1.Session.run,tf.function有固定的返回签名,总是返回所有的输出。如果这个导致性能问题,则创建两个单独的函数;
(2)tf.control_dependencies和类似的操作没有必要:tf.function的行为就像按写的顺序运行,如tf.Variable和tf.assert,能够自动执行。
2、使用python对象追踪变量和损失
在TF2.0中,所有基于名称的变量追踪都是被强烈阻止的,使用Python对象来追踪变量。
(1)用 tf.Variable 替代 v1.get_variable.
(2)每一个v1.variable_scope应该被转换为Python对象,通常:
如果需要聚合变量列表(如 tf.Graph.get_collection(tf.GraphKeys.VARIABLES)),用Layer和Model层和模型对象的.variables和.trainables_variables属性。
这些Layer和Model层和

本文详细介绍了如何将TensorFlow 1.x的代码迁移到TensorFlow 2.0,包括替换Session.run,使用Python对象追踪变量和损失,升级训练循环,更新数据输入管道,转换符号,简化优化器,新风格的度量和损失,TensorBoard的接口变化,保存和加载模型的方式,以及其他重要区别。遵循此指南,开发者可以有效地将代码现代化,提高代码的可读性和调试性。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



