LSTM面板数据的批量大小(单位:Keras)

LSTM面板数据的批量大小(单位:Keras),keras,lstm,panel-data,Keras,Lstm,Panel Data,我对受试者进行了重复测量,并将其作为输入构建到Keras的LSTM模型中,如下所示: batch_size = 1 model = Sequential() model.add(LSTM(50, batch_input_shape=(batch_size, time_steps, features), return_sequences=True)) 其中,time_steps是每个受试者的测量数量,features是每个测量的可用特征数量。每行数据都是一个主题 我的问题是关于这类数据的批量大小

我对受试者进行了重复测量,并将其作为输入构建到Keras的LSTM模型中,如下所示:

batch_size = 1
model = Sequential()
model.add(LSTM(50, batch_input_shape=(batch_size, time_steps, features), return_sequences=True))
其中,time_steps是每个受试者的测量数量,features是每个测量的可用特征数量。每行数据都是一个主题

我的问题是关于这类数据的批量大小。 我应该只使用1的批量大小,还是批量大小可以超过1个主题


与此相关的是,将stateful设置为True会对我有好处吗?这意味着从一个批次中学习也会告知其他批次。如果我对此的理解不正确,请纠正我。

好问题!对于此类数据和设置,可以使用大于1的批量大小,前提是您的行是针对受试者的单独实验,并且您对每个受试者的观察按时间顺序排列(例如,星期一在星期二之前)。确保您在训练和测试之间的观察结果不是随机分割的,并且您的观察结果是按主题顺序排列的,并且您可以应用批处理。因此,如果默认情况下使用Keras作为Keras批量洗牌观测值,则将洗牌设置为false

关于将stateful设置为true:对于stateful模型,所有状态都会传播到下一批。这意味着,位于下一批的样本XI+BS的计算中使用位于索引I、席席的样本的状态。在时间序列的情况下,这通常是有意义的。如果您认为受试者测量值Si会影响下一个受试者测量值Si+1的状态,请尝试将stateful设置为true。将stateful设置为false也值得一试,以探索并更好地理解之前的观察是否会影响对特定主题的后续观察

希望这有帮助