如何解决 tf.keras.optimizers.Adam(lr=0.001) 命令不起作用的问题?

How to solve the problem with tf.keras.optimizers.Adam(lr=0.001) command not working?

我正在开发 Google Colab,当我输入

model.compile(optimizer=tf.keras.optimizers.Adam(lr=1e-6), loss=tf.keras.losses.BinaryCrossentropy())

它不起作用,我收到以下错误消息

Could not interpret optimizer identifier: <keras.optimizer_v2.adam.Adam object at 0x7f21a9b34d50>

一般来说,您可能使用了不同的层导入和优化器导入版本。 tensorflow.python.keras API 用于模型和层,keras.optimizers 用于 SGD。它们是 TensorFlow 和纯 Keras 的两个不同 Keras 版本。他们不能一起工作。您必须将所有内容更改为一个版本。然后它应该工作。

也许尝试导入:

from tensorflow.keras.optimizers import Adam
model.compile(optimizer=Adam(lr=1e-6),loss=tf.keras.losses.BinaryCrossentropy())

其实我在用

keras===2.7.0
tensorflow==2.8.0

当我使用时它对我有用:

from keras.optimizers import adam_v2

然后

optimizer = adam_v2.Adam(lr=learning_rate)
model.compile(loss="binary_crossentropy", optimizer=optimizer)

而不是使用 tf.keras.optimizers.Adam