Остаточные слои LSTM

У меня проблемы с пониманием тензорного поведения в слоях LSTM в кератах.

Я предварительно обработал числовые данные, которые выглядят как [образцы, временные шаги, особенности]. Итак, 10 000 выборок, 24 временных шага и 10 предикторов.

Я хочу составить остаточные соединения, но я не уверен, что делаю это правильно:

x <- layer_input(shape = c(24,10))

x <- layer_lstm(x,units=32,activation="tanh",return_sequences=T)

Теперь форма х, которая является тензорной, равна [?,?,32]. Я ожидал [?,32,10]. Должен ли я изменить форму данных, чтобы они были [образцы, особенности, временные шаги]? Затем я формирую Res:

y <- layer_lstm(x,units=32,activation="tanh",return_sequences=T)

res <- layer_add(c(x, y))

Теперь я не уверен, если это правильно, или, может быть, я должен пойти с этим вместо

x <- layer_input(shape = c(24,10))

y <- layer_lstm(x,units=24,activation="tanh",return_sequences=T) # same as time_steps

res <- layer_add(c(x,y)) ## perhaps here data reshaping is neccesary?

Любое понимание очень ценится.

JJ

1 ответ

Решение

LSTM слой вернет вам тусклые как (?,seq_length,out_dims), где out_dims является units в твоем случае. Таким образом, общая яркость будет как

x <- layer_input(shape = c(24,10))
# dims of x (?,24,10)
x <- layer_lstm(x,units=32,activation="tanh",return_sequences=T)
# dims of x after lstm_layer (?,24,32)

y <- layer_lstm(x,units=32,activation="tanh",return_sequences=T)
# dims of y (?,24,32)
res <- layer_add(c(x, y))
# dims of res will be (?,24,32), it is addion of output of both lstm_layer.

Для получения дополнительной информации, вы можете проверить это

Другие вопросы по тегам