loss=tf.sqrt(tf.reduce_mean(tf.square(prediction-ys))) var_list = tf.trainable_variables() train_step=tf.keras.optimizers.SGD(0.9).minimize(loss, var_list=var_list)有这个错误AttributeError: module 'tensorflow' has no attribute 'trainable_variables'怎么改
时间: 2024-02-21 21:59:15 浏览: 162
问题解决:module 'tensorflow.compat.v1' has no attribute '
5星 · 资源好评率100%
这个错误是因为在 TensorFlow 2.0 中,`trainable_variables` 已经被移动到了 `tf.Module` 类的实例方法中,因此您需要将 `tf.trainable_variables()` 修改为相应的模型实例的 `trainable_variables` 方法。
例如,如果您的代码中有以下语句:
```
import tensorflow as tf
...
loss = tf.sqrt(tf.reduce_mean(tf.square(prediction-ys)))
var_list = tf.trainable_variables()
train_step = tf.keras.optimizers.SGD(0.9).minimize(loss, var_list=var_list)
```
那么您需要将其修改为:
```
import tensorflow as tf
...
loss = tf.sqrt(tf.reduce_mean(tf.square(prediction-ys)))
var_list = model.trainable_variables
train_step = tf.keras.optimizers.SGD(0.9).minimize(loss, var_list=var_list)
```
这里假设您已经定义了一个模型实例 `model`,并将其 `trainable_variables` 方法赋值给了 `var_list` 变量。如果您的代码中有多处使用了 `tf.trainable_variables()` 的语句,需要将这些语句都进行修改。
阅读全文