在Keras中,对多个单个数据点进行fit()操作与对整个数据集进行fit()操作是否相同?例如,进行单次
model.fit(train_X, train_y, batch_size=1, epochs=1)
是否与以下操作相同?
for i in range(len(train_X)): model.fit([train_X[i]], [train_y[i]], batch_size=1, epochs=1)
还是有区别?
回答:
区别在于,对整个数据集进行model.fit()
操作时,每个epoch都会对样本进行洗牌,这有助于学习过程。如果你采用循环的方式,权重更新将按照相同的样本顺序进行。
model.fit
会在每个批次后更新权重,在你的例子中,即每个样本后。因此,除了洗牌之外,你提出的两种方法是相同的。