我很难理解 keras 中 LSTM 层中的张量行为。
我已经预处理了看起来像[样本,时间步长,羽毛]的数字数据。所以 10 000 个样本、24 个时间步长和 10 个预测因子。
我想堆叠剩余连接,但我不确定我做得是否正确:
x <- layer_input(shape = c(24,10))
x <- layer_lstm(x,units=32,activation="tanh",return_sequences=T)
现在 x 的形状,即张量,是 [?,?,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?
任何见解都非常感谢。
杰杰
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.
有关更多信息,您可以查看此内容