我目前正在使用Keras实现的LSTM进行时间序列预测。 我尝试用10,000个样本在训练集和2,500个样本在测试集中训练LSTM模型。我使用的批量大小为30。 现在,我想训练“完全相同”的模型,但是“使用更多数据”。我有一个包含100,000个样本的训练集和包含25,000个样本的测试集。当使用大数据集时,一个时期所需的时间增加了100倍。即使我拥有更多的数据,批量大小仍然相同,因此训练不应该需要更多时间。 是否可能是训练和测试数据上的损失计算需要很长时间(这里使用所有数据)? 关于批量大小:我是否应该将其设置得更高,因为我有更多的数据? 我尝试改变批量大小并将其设置得更大。 当我那样做时,训练时间大大缩短。 使用大的批处理大小,梯度的计算应该比小的批处理大小要长吗? 对于这一点,我一无所知,我真的不明白为什么会发生这种情况。 有人知道为什么会发生这种情况吗? 它与我使用的数据有关吗?从理论上讲,这种情况如何发生? 我的处理器是Intel Xeon W3520(4个核心/8个线程),内存为32G。 数据由长度为6且具有4个特征的序列组成。我使用一个带有50个单元和一个稠密输出层的LSMT层。无论我使用10,000个样本还是100,000个样本进行训练,都可以通过更改批量大小来改变计算时间。我的计算时间可以从批量大小= 1000的1个时期2秒减少到批量大小= 30的200秒。 我没有使用生成器,我使用基本代码行model.fit(Xtrain,Ytrain,nb_epoch,batch_size,verbose = 2,callbacks,validation_data =(Xtest,Ytest))。其中callbacks = [EarlyStopping(monitor ='val_loss',patience = 10,verbose = 2),history]