参考:导师让我将一个在tensorflow1.x上写的代码改成tensorflow2.x我该如何改? - 知乎 (zhihu.com) ;Tensorflow2.0遇到的几个无法使用Tensorflow1.0的语句对应解决方案_贪吃的燕子的博客-CSDN博客
修改 tensorflow 引用方式
import tensorflow as tf
将其改为
import tensorflow.compat.v1 as tf
可能会在编译器爆红,但并不影响使用
contrib 模块
tensorflow 在 2.x 版本移除了contrib 模块,下面整理了在进行升级改造时遇到的包
crf
crf
模块被迁移至了 tensorflow_addons
中
# 修改前
from tensorflow.contrib.crf import crf_log_likelihood
# 修改后
from tensorflow_addons.text.crf import crf_log_likelihood
layers
layer
模块被迁移至 tf_slim
中
# 修改前
from tensorflow.contrib.layers.python.layers import initializers
# 修改后
from tf_slim.layers import initializers
complier
complier
模块保留在 tensorflow
中
# 修改前
from tensorflow.contrib.compiler import jit
# 修改后
from tensorflow.compiler import jit
rnn / rnn_cell包
# 修改前
from tensorflow.contrib import rnn
# 修改后
from tensorflow.python.ops import rnn,rnn_cell
crf包
先通过 pip install tensorflow_addons
下载 tensorflow_addons
。
# 修改前
from tensorflow.contrib.crf import crf_log_likelihood
# 修改后
from tensorflow_addons.text.crf import crf_log_likelihood
数据定义
# 修改前
x = tf.placeholder(dtype=tf.int32,shape=[None,None],name='number')
# 修改后
x = tf.Variable(tf.zeros(shape=[None,None]),name='number')
模型保存器 Save
# 修改前
x = tf.train.Saver()
# 修改后
x = tf.compat.v1.train.Saver()
import 时的语句
# 修改前
import tensorflow as tf
# 修改后
import tensorflow.compat.v1 as tf
Adam 调用
# 修改前
opt = tensorflow.train.AdamOptimizer()
# 修改后
opt = tensorflow.python.training.adam.AdamOptimizer()