如何使用 flow_from_directory 将更多图像加载到内存中

How to load more images to memory with flow_from_directory

当我用flow_from_directory加载的数据用tensorflow训练我的模型时,我不小心从我的训练集目录中删除了一些图像,它很快就警告我找不到文件。

所以看起来它在训练时实际上是在读取图像,但是由于我的数据集不是很大,而且我的内存只使用了 40%,我希望稍微提高我的训练速度。有没有办法告诉 tensorflow 在训练开始之前将更多图像预取到内存中,而不是读取当前批次需要的图像?还是有意不使用我的内存

您可以更改某些参数,例如 flow_from_directory 中的 batch_size,默认为 32
在创建数据集之后,您还可以在此处增加批次大小和预取批次数 dataset.batch(batch_size).prefetch(1)
如果您的数据集很小,您可以在加载和预处理数据之后但在 shuffling,repeating,batching, and prefetching 之前使用 dataset.cache() 缓存数据集,这样每个实例将被读取和预处理一次,而不是每个时期一次。

您还可以查看 this 文档以优化使用 tf.data