Я немного опоздал, ваша проблема в том, что вы пропустили API-интерфейс keras и keras в своем коде. Оптимизатор и модель должны исходить из одного и того же определения слоя. Используйте Keras API для всего, как показано ниже:
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM, BatchNormalization
from keras.callbacks import TensorBoard
from keras.callbacks import ModelCheckpoint
from keras.optimizers import adam
# Set Model
model = Sequential()
model.add(LSTM(128, input_shape=(train_x.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(BatchNormalization())
# Set Optimizer
opt = adam(lr=0.001, decay=1e-6)
# Compile model
model.compile(
loss='sparse_categorical_crossentropy',
optimizer=opt,
metrics=['accuracy']
)
Я использовал Адама в этом примере. Пожалуйста, используйте ваш соответствующий оптимизатор согласно приведенному выше коду.
Надеюсь, это поможет.