【问题标题】:Iterating over arrays on disk similar to ImageDataGenerator迭代磁盘上的数组,类似于 ImageDataGenerator
【发布时间】:2019-11-24 15:21:42
【问题描述】:

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

我不想将数组存储为图像,因为当我将它们保存为(灰度)图像时,数组的值会发生变化(标准化等)。但最后我想将原始矩阵输入网络,而不是因为保存为图像而改变值。

是否有可能以某种方式将数组存储在磁盘上并以与ImageDataGenerator 类似的方式对其进行迭代?

否则我可以将数组保存为图像而不更改数组的值吗?

【问题讨论】:

  • 我不太确定,但numpy.memmap 可以工作吗?

标签: python machine-learning keras deep-learning keras-2


【解决方案1】:

您可以定义自己的自定义数据生成器类,而不是使用 ImageDataGenerator,方法是覆盖该类的一些简单方法。

您可以关注此中型帖子以获取更多参考。

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

【讨论】:

  • 顺便问一下,我是否必须将 CNN 的 0 和 1 之间的值标准化?我在矩阵中的实际值在 0 到 20 之间。
  • 是的。我通常会做最小最大归一化以将值范围在 0 和 1 之间
猜你喜欢
  • 2013-02-28
  • 2011-04-26
  • 2021-04-25
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多