Dha*_*rma 24 machine-learning deep-learning keras
train_on_batch()与fit()有何不同?我们应该使用train_on_batch()的情况是什么?
ely*_*ely 31
我相信你的意思是fit_generator与fit_generator(以及类似的train_on_batch)进行比较,因为train_on_batch它不是Keras常用的API函数.
使用fit_generator,您也可以使用生成器来获取验证数据.一般来说,我建议使用fit_generator,但使用train_on_batch也可以.这些方法仅为了方便起见而存在于不同的用例中,没有"正确"的方法.
fit允许您根据您提供的样品集合明确更新重量,而不考虑任何固定的批量大小.如果你想要的话,你可以使用它:训练一个明确的样本集合.您可以使用该方法在传统训练集的多个批次上维护您自己的迭代,但允许fit_generator或train_on_batch为您批量迭代可能更简单.
可能很好用的一种情况train_on_batch是在一批新样品上更新预先训练的模型.假设您已经训练并部署了一个模型,之后您又收到了一组以前从未使用过的新训练样本.您可以使用train_on_batch仅在这些样本上直接更新现有模型.其他方法也可以这样做,但fit在这种情况下使用它是相当明确的.
除了这样的特殊情况(要么你有一些教学理由在不同的培训批次中保持自己的光标,或者对于特殊批次的某种类型的半在线培训更新),最好总是使用fit_generator(适用于内存中的数据)或fit_generator(用于将批量数据作为生成器进行流式传输).
Big*_*dMe 12
train_on_batch()例如,当使用有状态LSTM并model.reset_states()需要控制对LSTM的调用时,可以更好地控制LSTM的状态。您可能具有多系列数据,并且需要在每个系列之后重设状态,您可以使用来做train_on_batch(),但是如果您使用过,.fit()那么网络将接受所有系列数据的训练,而无需重设状态。没有对与错,这取决于您所使用的数据以及网络的运行方式。
| 归档时间: |
|
| 查看次数: |
20108 次 |
| 最近记录: |