当我训练LSTM模型时,它会为损失返回nan
由于某种原因,当我在LSTM层上使用任何种类的稳压器时,都会得到NaN的损失。 同样,只有当我使LSTM层超过128个单位时,才会发生这种情况,因此,如果我除去正则化或使网络等于或小于128个单位,就可以摆脱它。 我已经确认输入中没有NaN。 我想知道为什么会这样,以及如何规范更大的LSTM层。
这是我的代码:
def build_model():
model = Sequential()
model.add(LSTM(130, batch_input_shape=(None,90,5), return_sequences=False, recurrent_dropout=0.1, kernel_regularizer=regularizers.l2(0.01)))
model.add(Activation("relu"))
model.add(Dense(2))
model.add(Activation("softmax"))
model.compile(optimizer="adam", loss = "categorical_crossentropy", metrics=["categorical_accuracy"])
return(model)
谢谢