簡體   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