在磁盘上迭代数组,类似于ImageDataGenerator

我有70,000个二维numpy数组,我想用Keras训练一个CNN网络。将它们保存在内存中是一个选项,但会消耗大量内存。因此,我想将这些矩阵保存到磁盘上,并在运行时加载。一个选项是使用ImageDataGenerator。问题是它只能读取图像。

我不想将数组存储为图像,因为如果我将它们保存为(灰度)图像,数组的值会发生变化(归一化等)。但最终我想将原始矩阵输入到网络中,而不是因为保存为图像而改变的值。

是否有可能以某种方式将数组存储在磁盘上,并以类似于ImageDataGenerator的方式迭代它们?

或者,我能否将数组保存为图像而不改变数组的值?


回答:

不使用ImageDataGenerator,您可以通过重写类的一些简单方法来自定义数据生成器类。

您可以参考这篇Medium文章以获取更多信息。

https://medium.com/@ensembledme/writing-custom-keras-generators-fe815d992c5a

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注