2017-04-10 113 views
0

我需要训练一个具有超过40万图像的初始模型。用keras训练一个巨大的模型开始

我知道我无法将它全部加载到内存上,因为它太大了。 所以,我肯定会训练它的批次,而不是纪元(所以从磁盘生成加载每批) 但是,它会很慢,不是?

你知道是否有不同的做法吗?

我也想在训练过程中对我的图像应用不同的偶然转换。 我查看了dataimagegenerator类,但它与我拥有的所有图像不兼容。 那么,有没有办法做到这一点,没有发电机?

感谢你!

回答

1

您可以使用该模型的fit_generator方法(https://keras.io/models/model/#fit_generator)。这仍然从内存加载图像,但是这是并行完成的,并且具有较少的开销。您可以编写自己的生成器来应用所需的转换(https://wiki.python.org/moin/Generators)。

如果你需要更快的内存访问,你可以看看hdf5。您可以将图像存储在hdf5中,以便为您的程序提供更快的索引和加载。 (http://www.h5py.org/