Всех приветствую кто решил заскочить!
Построил нейронную сеть по мануалам с сайтов все бы ничего но везде используется малый датасет и нейронка с функцией активации ReLU работает как надо по моим тестам все отрабатывает как надо с датасетом не более чем из 500 наблюдений. Но когда я ухожу к более масштабному датасету для тренировки loss уходит в NuN. Пробовал как пишут выставлять градиент отсечки clipvalue да помогло но в результате предсказание ряда никакое ... игрался с этим параметром но все безуспешно. Перебирал разные оптимизаторы, нормализовал данные толку 0. Датасет из 10 колонок по 4000 значений в каждой. Проверял на Null, нулов нет. Также тестил на рандомных значениях без каких либо считываний из вне. Уже не знаю что делать.
Менял функцию активации на tanh все вроде бы выглядит неплохо loss: за сотые уходит с каждой эпохой. И предсказанный временной ряд вроде бы с исходным похож. Именно вроде бы. Один раз подсунул после обучения тестовую выборку, за тестовой выборкой был небольшой скачек по данным так сеть повторила этот скачек причем почти 1 в 1. Закрадывается такое ощущение что она не предсказывает, а тупо повторяет... как то не правдоподобно выглядит.
3000 - весь датасет
2800 - тренинг
100 - входные
100 - предсказаны
Как все поделено
Предсказание последних 100 наблюдений
Такие пики в предсказание ряда не должны были попасть, но опять же повторюсь либо она повторила входные тестовые данные или я что то не понимаю. Но как мне кажется таких пиков не должно быть там.
Сроки жмут даже не знаю че еще сделать...
Откуда бралась инфа Multiple Parallel Input and Multi-Step Output
https://machinelearningmastery.com/how-to-develop-...
часть модели
self.model = Sequential()
self.model.add(LSTM(300, activation='tanh', input_shape=(self.n_steps_in, self.n_features)))
self.model.add(RepeatVector(self.n_steps_out))
self.model.add(LSTM(200, activation='tanh', return_sequences=True))
self.model.add(TimeDistributed(Dense(100, activation='tanh')))
self.model.add(TimeDistributed(Dense(self.n_features)))
self.model.compile(loss='mse', optimizer='adam')