AttributeError:“Adam”对象没有属性“get_updates”

use*_*638 2 python tensorflow

我正在使用 TensorFlow Keras 后端训练 VAE,并使用 Adam 作为优化器。我使用的代码附在下面。

    def compile(self, learning_rate=0.0001):
    optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)
    self.model.compile(optimizer=optimizer,
                       loss=self._calculate_combined_loss,
                       metrics=[_calculate_reconstruction_loss,
                                calculate_kl_loss(self)])
Run Code Online (Sandbox Code Playgroud)

我使用的TensorFlow版本是2.11.0。我收到的错误是

AttributeError: 'Adam' object has no attribute 'get_updates'
Run Code Online (Sandbox Code Playgroud)

我怀疑问题是由于版本不匹配而出现的。有人可以帮我解决这个问题吗?提前致谢。

小智 7

尝试将第二行“optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate)”替换为“optimizer = tf.keras.optimizers.legacy.Adam ( learning_rate=learning_rate)”

有关更多信息,请查看https://github.com/tensorflow/tensorflow/releases中的 tf 2.11.0 Release 11/28/2022 它特别指出:“tf.keras.optimizers.Optimizer 基类现在指向新的 Keras 优化器,而旧的优化器已移至 tf.keras.optimizers.legacy 命名空间。”