我一直在尝试建立LSTM模型,但对batch_size有点困惑。我在Tensorflow中使用Keras模块。
我有 50,000个样本,每个样本具有 200个时间步长,每个时间步长都有三个功能。因此,我将训练数据的形状定为(50000, 200, 3)
。
我用四个LSTM层设置了模型,每个层有 100个单位。对于第一层,我将输入形状指定为(200, 3)
。前三层有return_sequences=True
,后三层没有。然后,我进行一些softmax
分类。
当我用model.fit
呼叫batch_size='some_number'
时,Tensorflow / Keras是否负责以指定大小的批次进料模型?我是否必须提前以某种方式重塑数据?如果样本数量不能被'some_number'
整除,会发生什么?
感谢您的帮助!
答案 0 :(得分:2)
如果您将数据作为numpy
数组提供给model.fit()
,则可以,Keras将负责以您指定的批次大小提供模型。如果您的数据集大小不能被批次大小整除,则Keras的最终批次将更小,等于dataset_size mod batch_size
。