在深度学习中,有时会遇到大量数据的情况,比如处理120万+的图片时,需要批量训练。
因为内存有限,可能一次只能读进来一批图片,一个可行的方案是使用train_on_batch这个函数,大概流程如下:
import random
batch_X, batch_Y = get_train_data()
# shuffle data
cc = list(zip(batch_X, batch_Y))
random.shuffle(cc)
batch_X[:], batch_Y[:] = zip(*cc)
del cc
model.train_on_batch(batch_X, batch_Y)
由于train_on_batch不提供shuffle=True的选项,我便选择手动shuffle数据。
当然也可以使用data generators来解决这个问题。