logo资料库

将TensorFlow 1.x升级代码到TensorFlow 2.x版本的方法汇总.pdf

第1页 / 共1页
资料共1页,全文预览结束
将将TensorFlow 1.x升级代码到 总总 下面将升级代码到TensorFlow 2.x版本的方法汇总起来,有如下几点。 升级代码到TensorFlow 2.x版本的方法汇 版本的方法汇 1.最快速转化的方法 在代码中没有使用contrib模块的情况下,可以在代码最前端加上如下两句,直接可以实现的代码升级。 import tensorflow.compat.v1 as tftf.disable_v2_behavior() 这种方法只是保证代码在TensorFlow 2.x版本上能够运行,并不能发挥TensorFlow的最大性能。 2.使用工具进行转化的方法 在代码中没有使用contrib模块的情况下,用tf_upgrade_v2工具可以快速实现代码升级。当然tf_upgrade_v2工具并不是万能 的,它只能实现基本的API升级。一般在转化完成之后还需要手动二次修改。 3.将静态图改成动态图的方法 静态图可以看作程序的运行框架,可以将输入输出部分原样的套用在函数的调用框架中。具体步骤如下: (1)将会话(session)转化成函数。 (2)将注入机制中的占位符(tf.placeholder)和字典(feed_dict)转化成函数的输入参数。 (3)将会话运行(session.run)后的结果转化成函数的返回值。 在实现过程中,可以通过自动图功能,用简单的函数逻辑替换静态图的运算结构。自 4.将共享变量的作用于转成Python对象的命名空间 在定义权重参数时,用tf.Variable函数替换tf.get_variable函数。每个变量的命名空间(variable_scope)用类对象空间进行替 换,即将网络封装成类的形式来搭建模型。 在封装类的过程中,可以继承tf.keras接口(如:tf.keras.layers.Layer、tf.keras.Model)也可以继承更底层的接口(如 tf.Module、tf.layers.Layer)。 在对模型进行参数更新时,可以使用实例化类对象的variables和trainable_variables属性来控制参数。 5.升级TF-slim接口开发的程序 TensorFlow 2.x版本将彻底抛弃TF-slim接口,所以升级TF-slim接口程序会有较大的工作量。官方网站给出的指导建议是:如 果手动将TF-slim接口程序转化为tf.layers接口实现,则可以满足基本使用;如果想与TensorFlow 2.x版本结合得更加紧密,则 可以再将其转化为tf.keras接口。 作者:范啷个~
分享到:
收藏