我正在尝试使用一个非常大的数据集(远大于我的内存)来训练一个Tensorflow模型。
为了充分利用所有可用的训练数据,我考虑将它们分成几个小的“分片”,并一次训练一个分片。
经过一些研究,我发现这种方法通常被称为“增量学习”。根据这个维基页面,并非所有算法都支持增量学习。
我正在使用tf.keras.Model构建我的模型。在这种情况下,增量学习是否可行?
回答:
Tensorflow和Keras模型默认支持增量学习——实际上,我们在迁移学习等情况下经常使用增量学习。你只需按顺序将数据的不同部分拟合到模型中——你甚至可以保存你的模型,然后加载它并继续使用相同或不同的数据部分进行训练。
更多信息请见:
- Keras中的增量学习(Stack Overflow讨论)
- 迁移学习与微调(Keras文档)
- 使用Keras和Creme进行在线/增量学习
- 我可以根据每日新数据增量训练神经网络吗?(AI Stack Exchange讨论)