当训练多类CNN模型时,如何存储5千万个25x25 .npy训练数据数组并优化I / O性能?]

问题描述 投票:2回答:1

我有五个类别的图像处理问题。每个类别都有大约一千万个示例作为训练数据,其中图像是z评分的25x25 numpy数组。

显然,我无法将所有训练数据加载到内存中,因此我必须使用fit_generator

我也是生成和扩充这些训练数据矩阵的人,但是我无法在fit_generator内实时进行此操作,因为训练模型太慢了。

首先,如何在磁盘上存储5000万个25x25 .npy阵列?最佳做法是什么?

其次,在训练期间,我应该使用数据库存储这些矩阵并从中查询吗?我认为SQLite不支持多线程,并且Tensorflow中SQL数据集的支持仍为experimental

我很想知道是否有一种巧妙的方法来存储这5000万个矩阵,因此在训练期间的检索将是最佳的。

第三,使用HDF5格式怎么办?我应该改为pytorch吗?

我有五个类别的图像处理问题。每个类别都有大约一千万个示例作为训练数据,其中图像是z评分的25x25 numpy数组。显然,我不能...

python tensorflow keras pytorch hdf5
1个回答
1
投票

基本上,您需要的是一个单独的过程,该过程在您的训练过程中并行运行,并且在训练过程对前一批进行工作时会加载/准备下一批训练观察(预取),以避免任何IO和预处理延迟。

© www.soinside.com 2019 - 2024. All rights reserved.