остаточные слои LSTM - PullRequest
       23

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

0 голосов
/ 15 января 2019

У меня проблемы с пониманием поведения тензора в слоях 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 Ответ

0 голосов
/ 16 января 2019
Слой

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.

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

...