解决 AttributeError: module ‘keras.optimizers‘ has no attribute ‘RMSprop‘ 和‘Adam‘ 报错问题

问题描述

使用keras.optimizers.RMSprop() 直接报错:(如下)

keras.optimizers' has no attribute 'RMSprop'

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-32-d3e15fff58c3> in <module>
      9 
     10 model.compile(loss='binary_crossentropy',
---> 11             optimizer=optimizers.RMSprop(lr=1e-4),
     12             metrics=['acc'])
     13 

AttributeError: module 'keras.optimizers' has no attribute 'RMSprop'

原因分析:

我使用的是Tensorflow 2.6 版本的,后来查看optimizers.py文件。发现优化器的调用方式发生了改变。


解决方案:

    from tensorflow.python.keras.optimizers import adam_v2
    from tensorflow.python.keras.optimizers import rmsprop_v2

不仅仅是rmsprop优化器,adam也是一样。

  • 调用adam优化器
    使用
    optimizer =adam_v2.Adam(learning_rate=1e-4)
    而不是
    optimizer = Adam(lr=1e-4)

  • 调用rmsprop优化器
    使用
    optimizer =rmsprop_v2.rmsprop(learning_rate=1e-4)
    而不是
    optimizer = rmsprop(lr=1e-4) 或 optimizer = RMSprop
    (lr=1e-4)

猜你喜欢

转载自blog.csdn.net/m0_51816252/article/details/126714517