我目前正在尝试在几个大型 CSV 文件上训练 Keras 模型。我可以在内存中放入一个,但不能全部组合在一起。从我的角度来看,有几种方法可以解决这个问题。
我可以将所有数据合并到一个 CSV 文件中,然后通过数据块读取 CSV。这将简化该过程,但是,我将无法在每个时期对数据进行洗牌。
我能想到的其他方法是创建一个自定义 fit_generator。但是我不确定如何实际实现这一点。我应该为每个数据集创建一个特殊的生成器,然后循环它们吗?这将允许我在每个时期甚至它们的顺序中对每个数据集进行洗牌。
我相信只实现一个生成器并管理其中的所有文件会更优雅。但是,要完成这项工作,我需要在训练之前知道批次数。这需要我首先获取每个文件中的样本数量,这需要一段时间。另外,我需要在使用 pandas 读取文件后解决某些行不正确的问题。这限制了我使用一些快速的操作系统级函数来获取行数。
或者是否可以在不设置训练前的批次数的情况下实际创建 fit_generator ?你会推荐什么方法?