Почему LSTM не может уменьшить потери - PullRequest
0 голосов
/ 08 октября 2018

Я использую lstm для обучения модели, чтобы предсказать цену акций, я использовал режим много к одному, как этот:

                                    O 
                                    | 
                              O O O O 
                              | | | | 
                              O O O O 

, и я использовал keras framework для построения сети, но, похоже,NN не может быть легко создан ...

вот мой исходный код lstm NN на python:

def lstm_rls(num_in,num_out=1, batch_size=128, step=1,dim=1):
    model = Sequential()

    model.add(LSTM(
        1024,
        input_shape=(step, num_in),
        return_sequences=True))
    model.add(Dropout(0.2))

    model.add(LSTM(
        512,
        return_sequences=False))
    model.add(Dropout(0.2))

    model.add(Dense(1))
    model.add(Activation('linear'))
    model.compile(loss='mse', optimizer='rmsprop')
    return model

Я обучил около 512 эпох, но потеря всегда составляет около7

Эпоха 1/512

3968/3968 [====================================] - 4s 978us / step - потеря: 48.6274

Epoch 2/512

3968/3968 [==============================] - 1 с 220 мс / шаг - потеря: 11,1913

Эпоха 3/512

3968/3968 [==============================] - 1с 221ус / шаг - потеря: 6,8059

Эпоха 4/512

3968/3968 [==============================] - 1 с 220 мс / шаг - потеря: 6,7905

Эпоха 5/512

3968/3968 [=============================] - 1 с 221 мс / шаг- потеря: 6,8151

Эпоха 6/512

3968/3968 [==============================] - 1с219us / step - потеря: 6.7907

Epoch 7/512

3968/3968 [=============================] - 1 с 220 мс / шаг - потеря: 6,8060

Эпоха 8/512

3968/3968 [==============================] - 1 с 221 мс / шаг - потеря: 6,7824

... ... ...

Эпоха 509/512

3968/3968 [=============================] -1 с 222 долл. / Шаг - потеря: 6,7807

Эпоха 510/512

3968/3968 [====================================] - 1 с 223 мкс / шаг - потеря: 6,8199

Эпоха 511/512

3968/3968 [==============================] - 1 с 222 мс / шаг - потеря: 6,7726

Эпоха 512/512

3968/3968 [==============================] - 1 с 222 мс / шаг - потеря: 6,7715

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Сегодня я посмотрел одну лекцию о советах по отладке.Он сказал, что один из способов анализа кода: проверить, что объектная функция уменьшается на небольшом обучающем наборе, а не на всех в первый раз.

0 голосов
/ 08 октября 2018

У меня была ваша проблема с субтитрами (у меня было четыре Gpu tesla k20).Тренировка LSTM занимает много времени (около нескольких дней).Я думаю, что ваша проблема естественна.Одним из способов, который я использовал, было увеличение размера партии.С другой стороны, увеличение размера пакета зависит от производительности и использования памяти.

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