繁体   English   中英

如何解决 AttributeError: module 'keras.optimizers' has no attribute 'Adam'

[英]how to solve AttributeError: module 'keras.optimizers' has no attribute 'Adam'

我制作了一个 lstm model 并想通过使用 BayesianOptimization 进行参数调整,但是当我编写如下代码时,出现了关于 AttributeError: module 'keras.optimizers' has no attribute 'Adam' 的错误。 上次写的时候还不错,这次就报错了。 你能告诉我如何解决这个问题吗?

def build(hp):
  activation = hp.Choice('activation', ['relu', 'tanh', 'linear', 'selu', 'elu'])
  # num_rnn_layers = hp.Choice('num_rnn_layers', min_value=1, max_value=20)
  recurrent_dropout = hp.Float('recurrent_dropout', min_value=0.0, max_value=0.99)
  num_units = hp.Int('num_units', min_value=0, max_value=512)
  model = keras.models.Sequential()
  model.add(LSTM(units=num_units, activation=activation, recurrent_dropout=recurrent_dropout, input_shape=(80, 50)))
  model.add(keras.layers.Dense(1))
  model.compile(loss='mse', metrics=['mse'], optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])))
  model.compile(
      optimizer= keras.optimizers.Adam(hp.Float(
            'learning_rate',
            min_value=1e-10,
            max_value=1e-2,
            sampling='LOG',
            default=1e-6
            ),
        ),
        loss=tf.losses.MeanSquaredError(),
        metrics=[tf.metrics.MeanAbsoluteError()]
        )
  # model.compile(loss='mse')
  return model
model.compile(loss='mse', metrics=['mse'], optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])))
AttributeError: module 'keras.optimizers' has no attribute 'Adam'
Invalid model 2/5
WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/keras_tuner/engine/hypermodel.py", line 127, in build
    model = self.hypermodel.build(hp)
  File "<ipython-input-12-3f3e21babeb7>", line 9, in build
    model.compile(loss='mse', metrics=['mse'], optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])))
AttributeError: module 'keras.optimizers' has no attribute 'Adam'
Invalid model 3/5
WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/keras_tuner/engine/hypermodel.py", line 127, in build
    model = self.hypermodel.build(hp)
  File "<ipython-input-12-3f3e21babeb7>", line 9, in build
    model.compile(loss='mse', metrics=['mse'], optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])))
AttributeError: module 'keras.optimizers' has no attribute 'Adam'
Invalid model 4/5
WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/keras_tuner/engine/hypermodel.py", line 127, in build
    model = self.hypermodel.build(hp)
  File "<ipython-input-12-3f3e21babeb7>", line 9, in build
    model.compile(loss='mse', metrics=['mse'], optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])))
AttributeError: module 'keras.optimizers' has no attribute 'Adam'

我认为您需要导入模块或使用 try except 条件来处理您的错误

你应该像这样从 tensorflow 导入 keras,

import tensorflow as tf
from tensorflow import keras

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM