关于Keras中,当数据比较大时,不能全部载入内存,在训练的时候就需要利用train_on_batch或fit_generator进行训练了。两者均是利用生成器,每次载入一个batch-size的数据进行训练。那么fit_generator与train_on_batch该用哪一个呢?
train_on_batch(self, x, y, class_weight=None, sample_weight=None)
fit_generator(self, generator, samples_per_epoch, nb_epoch, verbose=1, callbacks=[], validation_data=None, nb_val_samples=None, class_weight=None, max_q_size=10)
推荐使用fit_generator,因为其同时可以设置 validation_data,但是采用train_on_batch也没什么问题,这个主要看个人习惯了,没有什么标准的答案。
下面是François Chollet fchollet本人给出的解答:
With fit_generator, you can use a generator for the validation data as well. In general I would recommend using fit_generator, but using train_on_batch works fine too. These methods only exist as for the sake of convenience in different use cases, there is no "correct" method.
如果您觉得我的文章对您有所帮助,欢迎扫码进行赞赏!