AttributeError: 'Adadelta' object has no attribute 'apply_gradients'如何解决?
时间: 2023-09-18 21:13:23 浏览: 44
这个错误通常是因为 TensorFlow 版本过低所致,`apply_gradients` 方法是在 TensorFlow 1.13.0 版本中引入的。如果您的 TensorFlow 版本低于 1.13.0,那么这个方法将不可用。
您可以升级 TensorFlow 版本到最新的稳定版本,或者使用 `tf.train.Optimizer.apply_gradients` 方法替代 `Adadelta.apply_gradients` 方法,如下所示:
```python
optimizer = tf.train.AdadeltaOptimizer(learning_rate)
grads_and_vars = optimizer.compute_gradients(loss)
train_op = optimizer.apply_gradients(grads_and_vars)
```
替代为:
```python
optimizer = tf.train.AdadeltaOptimizer(learning_rate)
grads_and_vars = optimizer.compute_gradients(loss)
train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step)
```
其中,`global_step` 是一个变量,它用于跟踪训练步骤。如果您还没有定义 `global_step`,则可以使用以下代码:
```python
global_step = tf.Variable(0, trainable=False)
```
这样就可以解决 `AttributeError: 'Adadelta' object has no attribute 'apply_gradients'` 的错误了。