我需要训练一个包含超过40万张图像的初始模型。
我知道我无法将其全部加载到内存中,因为它太大了。 所以,我肯定会批量训练它,而不是epoch(因此从磁盘生成每批次的负载) 但是,它会很慢,不是吗?
你知道是否有不同的做法吗?
我还想在训练期间对我的图像应用不同的和不同的变换。 我查看了dataimagegenerator类,但它与我拥有的所有图像不兼容。 那么,有一种方法可以在没有生成器的情况下做到这一点吗?
谢谢你!
答案 0 :(得分:1)
您可以使用模型的(function ($) {
$.fn.getPreventDefault = function(e) {
return e.defaultPrevented;
};
})(jQuery);
方法(https://keras.io/models/model/#fit_generator)。这仍然会从内存加载图像,但这是并行完成的,并且开销较小。您可以编写自己的生成器来应用所需的转换(https://wiki.python.org/moin/Generators)。
如果您需要更快的内存访问,可以查看hdf5。您可以将图像存储在hdf5中,以便为程序提供更快的索引和加载。 (http://www.h5py.org/)