【问题标题】:Error module 'keras.optimizers' has no attribute 'RMSprop'错误模块“keras.optimizers”没有属性“RMSprop”
【发布时间】:2021-07-14 16:20:06
【问题描述】:

我在下面运行此代码并返回错误 AttributeError: module 'keras.optimizers' has no attribute 'RMSprop'。我使用 pip install tensorflow 下载 tensorflow。

from keras import layers
from keras import models

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',
                        input_shape=(150, 150, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

model.summary()

from keras import optimizers

model.compile(loss='binary_crossentropy', optimizer=optimizers.RMSprop(lr=1e-4), metrics=['acc'])

谁能帮我解释一下这有什么问题?感谢您的宝贵时间。

【问题讨论】:

  • 您可以尝试从 tensorflow 导入而不是从 keras 导入,即“从 tensorflow.keras 导入优化器”吗?
  • 你究竟是如何安装 keras 的?请注意,您使用的是 keras,而不是 tf.keras。你的 keras 安装不知何故坏了,安装的是哪个版本?
  • @Daniel Lenz 我尝试从 tensorflow 导入并再次运行代码,但出现错误,ValueError:无法解释优化器标识符:
  • @Dr.Snoopy 我使用pip install tensorflow 通过 tensorflow 安装了我的 keras。我的 keras 在 '2.5.0' 版本下。
  • pip install tensorflow 不会安装 keras,它会安装 tf.keras,这就是我在第一条评论中做出澄清的原因。您应该将 keras 降级到 2.4.x 版本

标签: python tensorflow keras


【解决方案1】:

正如您所说,您通过pip install tensorflow 安装了 tensorflow(包括 keras),而不是直接安装了 keras。不再推荐通过pip install keras 安装 keras(另请参阅说明here)。

这意味着 keras 可以通过tensorflow.keras 获得。您应该使用from tensorflow.keras import optimizers,而不是通过from keras import optimizers 导入。

【讨论】:

    【解决方案2】:

    你应该写:

    from tensorflow import keras
    from keras import optimizers
    optimizer=keras.optimizers.RMSprop(learning_rate=0.01)
    

    【讨论】:

    • 如果您向我们解释为什么您的代码可以解决 OP 的问题,我相信这会对社区有所帮助
    【解决方案3】:

    有效

    from keras.optimizers import rmsprop_v2
    model.compile(loss='binary_crossentropy', optimizer='rmsprop')
    

    但我不知道为什么..

    【讨论】:

      【解决方案4】:

      我遇到了同样的错误,我通过导入优化器来避免它 像这样:

      from tensorflowf.keras import optimizers
      

      然后我应用了 RMSprop :

      optimisers.RMSprop(...)
      

      【讨论】:

        猜你喜欢
        • 2021-06-21
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 2016-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-29
        相关资源
        最近更新 更多