我想知道在keras中使用fit_generator()
与使用fit()
方法并设置相同的batch_size
相比,是否在内存使用上有任何优势。我见过一些类似的例子,如下所示:
def generator():(X_train, y_train), (X_test, y_test) = mnist.load_data()# 一些数据准备...while 1: for i in range(1875): # 1875 * 32 = 60000 -> 训练样本数量 yield X_train[i*32:(i+1)*32], y_train[i*32:(i+1)*32]
如果我将这个生成器传入fit_generator()
方法,或者直接将所有数据传入fit()
方法并定义batch_size
为32,这在(GPU?)内存使用上会有什么不同吗?
回答:
是的,差异实际上出现在你需要增强数据以提高模型精度的时候。
为了提高效率,它允许在CPU上实时进行图像数据增强。这意味着它可以将GPU用于模型训练及其更新,同时将图像增强和提供训练批次的负载委托给CPU处理。