TensorFlow 1.x code to TensorFlow 2.0

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

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.keras.layers.Layer

         tf.keras.Model

         tf.Module

如果需要聚合变量列表(如 tf.Graph.get_collection(tf.GraphKeys.VARIABLES)),用Layer和Model层和模型对象的.variables和.trainables_variables属性。

这些Layer和Model层和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值