gpt4 book ai didi

python - TensorFlow 无法将 apply_gradients 与 AdamOptimizer 一起使用

转载 作者:行者123 更新时间:2023-11-30 09:50:34 25 4
gpt4 key购买 nike

我想使用 AdamOptimizer,但我也想每一步编辑我的渐变。

典型用法如下:

train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss)
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
sess.run(train_step, feed_dict=feed_dict)

这应用了 AdamOptimizer 的单个训练步骤。

我想每一步修改渐变,因此我提取它们并使用以下代码重新插入它们:

opt = tf.train.AdamOptimizer(learning_rate=1e-3)
grads_and_vars = opt.compute_gradients(loss)
train_opt = opt.apply_gradients(grads_and_vars)
sess.run(train_opt, feed_dict=feed_dict)

我通常会对 grads_and_vars 应用一些操作,但我只是想让它先工作。由于以下错误,前面的代码在 sess.run(train_opt, feed_dict=feed_dict) 处失败:

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value beta1_power_1
[[Node: beta1_power_1/read = Identity[T=DT_FLOAT, _class=["loc:@Variable"], _device="/job:localhost/replica:0/task:0/cpu:0"](beta1_power_1)]]

这是由train_opt = opt.apply_gradients(grads_and_vars)引起的,但是我没有正确应用渐变吗?

GradientDescentOptimizer 没有错误,所以我知道这一定是提取梯度然后重新插入它们以进行训练步骤的正确方法。

我有什么遗漏的吗?我怎样才能以这种方式使用 AdamOptimizer?

编辑:我提到第二个代码块与 GradientDescentOptimizer 一起使用,但它比第一个代码慢大约 10 倍。有没有办法加快速度?

最佳答案

运行这个sess.run(tf.local_variables_initializer()),adam中有局部变量,需要初始化它们

关于python - TensorFlow 无法将 apply_gradients 与 AdamOptimizer 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45766298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com