【问题标题】:How to load more images to memory with flow_from_directory如何使用 flow_from_directory 将更多图像加载到内存
【发布时间】:2021-04-05 00:44:05
【问题描述】:
当我使用 tensorflow 使用 flow_from_directory 加载的数据训练我的模型时,我不小心从我的训练集目录中删除了一些图像,它很快就给了我找不到文件的警告。
所以看起来它实际上是在训练期间读取图像,但由于我的数据集不是很大,而且我的内存只使用了 40%,我希望稍微提高我的训练速度。有没有办法告诉 tensorflow 在训练开始之前将更多图像预取到内存中,而不是读取当前批次需要的图像?还是我的内存没有被使用是故意的原因
【问题讨论】:
标签:
python
tensorflow
machine-learning
deep-learning
tensorflow2.0
【解决方案1】:
您可以更改flow_from_directory 中的一些参数,例如batch_size,默认为32。
此外,在创建数据集后,您还可以在此处增加批量大小和预取批量数 dataset.batch(batch_size).prefetch(1)
如果您的数据集很小,您可以在加载和预处理数据之后但在 shuffling,repeating,batching, and prefetching 之前使用 dataset.cache() 缓存数据集,这样每个实例将被读取和预处理一次,而不是每个 epoch 一次。
您还可以查看this 文档以优化使用tf.data