Я тренируюсь с автокодером LSTM, но функция потерь случайным образом срабатывает, как показано на рисунке ниже: Я пытался сделать несколько вещей, чтобы предотвратить это, отрегулировав размер партии, откорректировав количество нейроны в моих слоях, но, кажется, ничто не помогает. Я проверил свои входные данные, чтобы увидеть, содержит ли они значения null / infinity, но это не так, они также нормализованы. Вот мой код для справки:
model = Sequential()
model.add(Masking(mask_value=0, input_shape=(430, 3)))
model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2, activation='relu'))
model.add(RepeatVector(430))
model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2, activation='relu', return_sequences=True))
model.add(TimeDistributed(Dense(3)))
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])
context_paths = loadFile()
X_train, X_test = train_test_split(context_paths, test_size=0.20)
history = model.fit(X_train, X_train, epochs=1, batch_size=4, verbose=1, validation_data=(X_test, X_test))
Функция потерь взрывается в случайные моменты времени, иногда раньше, иногда позже. Я прочитал эту ветку о возможных проблемах, но на данный момент, после попытки нескольких вещей, я не уверен, что делать, чтобы предотвратить случайный взлет функции потери. Любой совет приветствуется. Кроме этого, я вижу, что моя точность не очень сильно увеличивается, поэтому проблемы могут быть взаимосвязаны.