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

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

И я использовал структуру keras для создания сети, но кажется, что 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 / шаг - потеря: 48,6274

Эпоха 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 с 219 мкс / шаг - потеря: 6,7907

Эпоха 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

1
oxful z 8 Окт 2018 в 20:47

2 ответа

Лучший ответ

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

1
Ali Mahdavi 8 Окт 2018 в 20:09

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

0
Ali Mahdavi 10 Окт 2018 в 18:55