keras的fit_generator与callback函数

fit_generator函数

fit_generator函数

callback类

每一个epoch结束(on_epoch_end)时,都要调用callback函数,callback函数(类)都要集成callback类,callback类的成员函数如下:

keras的fit_generator与callback函数_第1张图片
callback类

keras.callbacks.ModelCheckpoint是一个常见的callback类,其重写了on_epoch_end函数,在每个epoch结束保存模型数据进入文件。

keras的fit_generator与callback函数_第2张图片
ModelCheckpoint类

keras.callbacks.History类主要记录每一次epoch训练的结果,包含loss以及acc的值;keras.callbacks.ProgbarLogger类实现训练中间状态数据信息的输出,主要涉及进度相关信息。

训练过程分析

a. model.fit_generator: #训练入口函数

keras的fit_generator与callback函数_第3张图片
训练过程分析

训练与验证结果解读

在每一个epoch的最后一个迭代(最后一次batch)时,要进行此轮epoch的校验(evaluate)

keras的fit_generator与callback函数_第4张图片
训练与验证结果解读

验证逻辑是将validation_steps的test的值取平均值,作为本epoch训练的最终效果。

验证逻辑

总结

0. 训练过程中,每次权重的更新都是在一个batch上进行一次,是基于batch量的数据为单位进行权重的更新;

1. 基于生成器模型训练数据,可以提升效率,降低对物理服务器性能,尤其是内存的要求;

2. 训练过程中,callback函数执行了大量的工作,包括loss、acc值的记录,以及训练中间结果的日志反馈,最重要的是模型数据的输出,也是通过callback的方式实现;

3. 训练和验证的逻辑近乎一样,训练要更新权重,但是验证过程,仅仅更新网络状态,不涉及权重(loss以及acc参数)信息的更新;

4. Keras采用了生成器,装饰器,回调等编程思想,另外,对矩阵运算,例如numpy.dot以及numpy.multiply的数学逻辑都有一定要求,对python编程要求还是比较高滴。

你可能感兴趣的:(keras的fit_generator与callback函数)