keras LSTM val_loss всегда возвращает NaN в обучении - PullRequest
0 голосов
/ 06 марта 2019

, поэтому я тренирую свою модель на складе, используя этот код:

....



generator = batch_generator(
        sequence_length=SEQ, testsize=testsize, x_train_g=x_train, y_train_g=y_train)
    test_generator = batch_generator(
        sequence_length=SEQ,testsize=testsize, x_train_g=x_test, y_train_g=y_test_reshaped)
    x_batch, y_batch = next(generator)

...
    model.add(Dense(num_y_signals, activation='sigmoid'))

    model.compile(loss='mse', optimizer='rmsprop', metrics=["mae"])




history = model.fit_generator(generator=generator, verbose=1, validation_data=test_generator, validation_steps=10,
                                  epochs=80,
                                  steps_per_epoch=20, 
                                  )

def batch_generator(sequence_length, testsize, x_train_g, y_train_g, batch_size=256):

    warmup_steps = 30
    num_x_signals = len(x_train_g[0])
    num_y_signals = 1
    while True:
        x_shape = (batch_size, sequence_length, num_x_signals)
        x_batch = np.zeros(shape=x_shape, dtype=np.float16)

        y_shape = (batch_size, sequence_length, num_y_signals)
        y_batch = np.zeros(shape=y_shape, dtype=np.float16)

        for i in range(batch_size):

            idx = np.random.randint(testsize - sequence_length)
            x_batch[i] = x_train_g[idx:idx+sequence_length]
            y_batch[i] = y_train_g[idx:idx+sequence_length]

        yield (x_batch, y_batch)

Тем не менее, всегда, когда обучение, потеря проверки постоянно "NaN" Я пробовал разные функции активации и оптимизаторы, из которых ничего не помогло.

Я верю, что ошибка проста, однако, я просто не могу понять это.

1 Ответ

0 голосов
/ 06 марта 2019

Хорошо, я нашел ошибку: Мой набор проверки содержал значения NaN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...