Tot*_*tem 5 implementation keras
在训练期间,我想在每个时期更改批次大小(出于实验目的)。创建自定义Callback
似乎很合适,但batch_size
不是Model
该类的成员。
我看到的唯一方法是在每个循环中覆盖fit_loop
并公开batch_size
回调。有没有更清洁或更快速的方法而不使用回调?
对于在这里登陆的其他人,我发现在 Keras 中进行批量大小调整的最简单方法就是多次调用 fit(使用不同的批量大小):
model.fit(X_train, y_train, batch_size=32, epochs=20)
# ...continue training with a larger batch size
model.fit(X_train, y_train, batch_size=512, epochs=10)
Run Code Online (Sandbox Code Playgroud)
我认为最好使用自定义数据生成器来控制传递给训练循环的数据,以便可以生成不同大小的批处理,实时处理数据等。这是一个概述:
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
Run Code Online (Sandbox Code Playgroud)
现在您可以进行训练,model.fit_generator(data_gen(data), steps_per_epoch=100)
每个纪元将产生100个批次。如果要将序列封装在类中,也可以使用序列。
归档时间: |
|
查看次数: |
2628 次 |
最近记录: |