我有70,000个2D numpy数组,我想使用Keras训练CNN网络。将它们保存在内存中是一种选择,但会消耗大量内存。因此,我想将矩阵保存在磁盘上并在运行时加载它们。一种选择是使用ImageDataGenerator
。问题在于它只能读取图像。
我不希望将数组存储为图像,因为当我将它们另存为(灰度)图像时,数组的值会发生变化(标准化等)。但是最后,我想将原始矩阵馈入网络,并且由于保存为图像而不会更改值。
是否可以以某种方式像ImageDataGenerator
那样将数组存储在磁盘上并对其进行迭代?
还是可以将数组另存为图像而不更改数组的值?
答案 0 :(得分:1)
您可以通过覆盖该类的一些简单方法来定义自己的自定义数据生成器类,而不是使用ImageDataGenerator。
您可以关注这篇中等职位,以获取更多参考。
https://medium.com/@ensembledme/writing-custom-keras-generators-fe815d992c5a