如何使用Keras训练大型数据集的模型?

3
我正在尝试使用TensorFlow和Keras训练自编码器。我的训练数据有超过200,000个512x128的无标签图像。如果我想在矩阵中加载数据,其形状将是(200000、512、128、3)。这需要数百GB的RAM空间。我知道我可以在训练时减少批量大小,但那只能限制GPU / CPU中的内存使用情况。
有没有解决这个问题的方法?

你不需要大批量的数据,也不需要所有数据一直在内存中。只需在训练过程中加载所需的数据,并在训练步骤完成后释放这些资源即可。或者在你的情况下这样做行不行? - Jonas V
1个回答

1
您可以使用tf.data API来懒加载图像...以下教程详细介绍了这一点。 此外,还可以查看tf.data.Dataset.prefetch、tf.data.Dataset.batch和tf.data.Dataset.cache方法以优化性能... 在将数据读入训练流水线之前,您还可以将数据预处理为TFRecords以更高效地读取它们...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接