在训练期间,我想在每个时期更改批次大小(出于experimental的目的)。
创建自定义Callback似乎合适,但是batch_size不是Model类的成员。

我看到的唯一方法是重写 fit_loop 并将batch_size暴露给每个循环中的回调。有没有更清洁或更快速的方法而不使用回调?

最佳答案

我认为使用自定义数据生成器来控制传递给训练循环的数据会更好,因此您可以生成不同大小的批处理,实时处理数据等。这是一个概述:

def data_gen(data):
  while True: # generator yields forever
    # process data into batch, it could be any size
    # it's your responsibility to construct a batch
    yield x,y # here x and y are a single batch

现在,您可以使用model.fit_generator(data_gen(data), steps_per_epoch=100)进行训练,每个时期将产生100批。如果您想将Sequence封装在类中,则也可以使用ojit_a。

关于keras - 培训期间如何更改批量大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50606995/

10-12 18:01