用keras训练一个巨大的模型开始

时间:2017-04-10 13:53:36

标签: neural-network deep-learning keras conv-neural-network

我需要训练一个包含超过40万张图像的初始模型。

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

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

我还想在训练期间对我的图像应用不同的和不同的变换。 我查看了dataimagegenerator类,但它与我拥有的所有图像不兼容。 那么,有一种方法可以在没有生成器的情况下做到这一点吗?

谢谢你!

1 个答案:

答案 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/