【发布时间】:2021-12-18 19:54:14
【问题描述】:
我试图在 Tf1 和 Tf2 之间复制相同的结果。下面是一个使用 Adam 优化器的简单示例。
在 TF2 中:
x = tf.Variable([1,2,3], dtype=tf.float32)
grad = tf.constant([0.1, 0.2, 0.3])
optimizer = tf.keras.optimizers.Adam(learning_rate=0.5, epsilon=1e-08)
optimizer.apply_gradients(zip([grad], [x]))
print(x)
x 是:
在 TF1 中:
x = tf.Variable([1,2,3], dtype=tf.float32)
grad = tf.constant([0.1, 0.2, 0.3])
optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=0.5)
optimizer.apply_gradients(zip([grad], [x]))
init_op = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init_op)
print(sess.run(x))
x 是: [1。 2. 3.]
有谁知道使用 Adam Optimizer 时导致 Tf1 和 Tf2 不一致的原因是什么?我不排除执行错误的可能性。
如果有人能告诉我我在 TF1 中做错了什么,我无法获得与 TF2 中相同的结果,我将不胜感激。
非常感谢!
【问题讨论】:
标签: tensorflow tensorflow2.0 tensorflow1.15