Keras LSTM输入形状

Keras LSTM输入形状,keras,lstm,Keras,Lstm,我不确定我是否理解我应该输入到keras中的LSTM的输入的形状。因此,我有以下设置: self._model = kr.models.Sequential() self._model.add(kr.layers.LSTM(100, batch_input_shape=input_shape, stateful=True, return_sequences=True)) self._model.add(kr.layers.Dense(4)) 输入_形状是(4,20,3

我不确定我是否理解我应该输入到keras中的LSTM的输入的形状。因此,我有以下设置:

    self._model = kr.models.Sequential()
    self._model.add(kr.layers.LSTM(100, batch_input_shape=input_shape, stateful=True, return_sequences=True))

    self._model.add(kr.layers.Dense(4))
输入_形状是(4,20,3),其中20是时间步长,3是我的特征向量的维数。我认为4应该是批量大小。假设我有一个时间序列T,我选择了4个随机起始点P。那么我对网络的输入构造如下:

  input = [T[p:p+20] for p in P]
  target_label = [L[p:p+20] for p in P]
在每次train_on_批处理调用之后,我将p中的每个p增加20,并根据随机变量重置状态。据我所知,输入现在有4个不同的批,每个批都有自己不同的状态。这就像用不同的起点对网络进行4次训练

目标标签包含在不同的时间序列L中,其构造如下:

  input = [T[p:p+20] for p in P]
  target_label = [L[p:p+20] for p in P]
我得到了一些奇怪的结果,我想确保我最初的想法是正确的。所以,你能帮我重新确保它能像我刚才描述的那样工作吗?或者告诉我哪里弄错了


谢谢

如果您同时选择t[p:p+20]个训练实例,批量大小不是等于20吗?试试输入(20,20,3)怎么样?你能更具体地描述一下结果吗?如果你同时选择t[p:p+20]个训练实例,批量大小不是等于20吗?试试输入(20,20,3)怎么样?你能更具体地谈谈结果吗?