Понимание, сколько скрытых слоев в данной модели LSTM - PullRequest
0 голосов
/ 07 мая 2019

Я не могу понять основную структуру модели LSTM.

Вот моя модель:

def build_model(train,n_input):
    train_x, train_y = to_supervised(train, n_input)
    verbose, epochs, batch_size = 1, 60,20
    n_timesteps, n_features, n_outputs = train_x.shape[1], train_x.shape[2], train_y.shape[1]
    train_y = train_y.reshape((train_y.shape[0], train_y.shape[1], 1))
    model = Sequential()
    model.add(LSTM(200, activation='relu', input_shape=(n_timesteps, n_features)))
    model.add(RepeatVector(n_outputs))
    model.add(LSTM(200, activation='relu', return_sequences=True))
    model.add(TimeDistributed(Dense(100, activation='relu')))
    model.add(TimeDistributed(Dense(1)))
    model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
    model.fit(train_x, train_y, epochs=epochs, batch_size=batch_size, verbose=verbose)
    return model 

Вот my model.summary()

Layer (type)                 Output Shape              Param #   
=================================================================
lstm_5 (LSTM)                (None, 200)               172000    
_________________________________________________________________
repeat_vector_3 (RepeatVecto (None, 7, 200)            0         
_________________________________________________________________
lstm_6 (LSTM)                (None, 7, 200)            320800    
_________________________________________________________________
time_distributed_5 (TimeDist (None, 7, 100)            20100     
_________________________________________________________________
time_distributed_6 (TimeDist (None, 7, 1)              101       
=================================================================
Total params: 513,001
Trainable params: 513,001
Non-trainable params: 0
_________________________________________________________________
None

Из приведенного выше резюме я не понимаю, что такое lstm_5 или lstm_6. Также не указывается номер скрытого слоя в сети

Пожалуйста, кто-нибудь, помогите мне понять, сколько в этой модели скрытого слоя с нейроном.

Я в основном путаю с add(LSTM(200 ...) и add(TimeDistributed(Dense(100..) Я думаю, что 200 и 100 - это число нейронов в скрытом слое, и есть 4 скрытых слоя, содержащих все .add().

Пожалуйста, поправьте меня и проясните мои сомнения. Если возможно, попытайтесь понять по диаграмме.

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Графическое представление архитектуры модели, чтобы понять, как выходы слоя прикрепляются к следующему слою в последовательности.

enter image description here

Изображение самоочевидно и соответствует вашей модели.Также обратите внимание, что Batch_Size равно None в сводке модели, поскольку она рассчитывается динамически.Также обратите внимание, что в LSTM размер скрытого слоя совпадает с размером вывода LSTM.

0 голосов
/ 08 мая 2019

Здесь вы определяете слой LSTM с 200 нейронами.Вектор 200-dim в основном представляет последовательность как целочисленное вложение:

model.add(LSTM(200, activation='relu', input_shape=(n_timesteps, n_features)))

Поэтому вы получите выходной сигнал (Нет, 200)

Здесь вы повторяетевектор 7 раз:

model.add(RepeatVector(n_outputs))

Вы получаете вектор (None, 7, 200)

Вы снова используете этот вектор как последовательность и возвращаете состояниеиз 200 нейронов на каждом временном шаге, непонятно, почему:

model.add(LSTM(200, activation='relu', return_sequences=True))

Вы получаете вектор (Нет, 7, 200)

Вы применяете разделение весаПлотный слой со 100 нейронами на каждом временном шаге.Я на самом деле не знаю, почему весы здесь делятся, кажется странным:

model.add(TimeDistributed(Dense(100, activation='relu')))

Вы получаете вектор (None, 7, 100)

Наконец, вы применяете последний нейрон для каждого из этих 7 временных шагов, снова с общими весами, делая одно значение из 100-мерного вектора.В результате получается вектор из 7 нейронов, по одному на каждый класс:

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