Joh*_*ast 6 generator training-data neural-network keras
我正在寻找在Keras上训练大于内存数据的最佳方法,并且目前注意到vanilla ImageDataGenerator往往比我希望的要慢.
我有两个网络训练Kaggle cat's vs dogs数据集(25000张图片):
1)这种方法正是以下代码:http://www.pyimagesearch.com/2016/09/26/a-simple-neural-network-with-python-and-keras/
2)与(1)相同,但使用ImageDataGenerator而不是将数据加载到内存中
注意:对于下面的内容,"预处理"意味着调整大小,缩放,展平
我在gtx970上找到以下内容:
对于网络1,每个时期需要约0秒.
对于网络2,如果在数据生成器中完成预处理,则每个时期需要大约36秒.
对于网络2,如果在数据生成器外部的第一遍中完成预处理,则每个时期需要约13秒.
这可能是ImageDataGenerator的速度限制(13s似乎是磁盘和RAM之间通常的10-100x差异......)?在使用Keras时,是否有更适合培训大于内存数据的方法/机制?例如,也许有办法让Keras中的ImageDataGenerator在第一个纪元后保存其处理过的图像?
谢谢!
我想你可能已经解决了这个问题,但是......
save_to_dirKeras 图像预处理可以通过在flow()or函数中设置参数来保存结果flow_from_directory():
https://keras.io/preprocessing/image/
| 归档时间: |
|
| 查看次数: |
1925 次 |
| 最近记录: |