fit_generator函数
callback类
每一个epoch结束(on_epoch_end)时,都要调用callback函数,callback函数(类)都要集成callback类,callback类的成员函数如下:
keras.callbacks.ModelCheckpoint是一个常见的callback类,其重写了on_epoch_end函数,在每个epoch结束保存模型数据进入文件。
keras.callbacks.History类主要记录每一次epoch训练的结果,包含loss以及acc的值;keras.callbacks.ProgbarLogger类实现训练中间状态数据信息的输出,主要涉及进度相关信息。
训练过程分析
a. model.fit_generator: #训练入口函数
训练与验证结果解读
在每一个epoch的最后一个迭代(最后一次batch)时,要进行此轮epoch的校验(evaluate)
验证逻辑是将validation_steps的test的值取平均值,作为本epoch训练的最终效果。
总结
0. 训练过程中,每次权重的更新都是在一个batch上进行一次,是基于batch量的数据为单位进行权重的更新;
1. 基于生成器模型训练数据,可以提升效率,降低对物理服务器性能,尤其是内存的要求;
2. 训练过程中,callback函数执行了大量的工作,包括loss、acc值的记录,以及训练中间结果的日志反馈,最重要的是模型数据的输出,也是通过callback的方式实现;
3. 训练和验证的逻辑近乎一样,训练要更新权重,但是验证过程,仅仅更新网络状态,不涉及权重(loss以及acc参数)信息的更新;
4. Keras采用了生成器,装饰器,回调等编程思想,另外,对矩阵运算,例如numpy.dot以及numpy.multiply的数学逻辑都有一定要求,对python编程要求还是比较高滴。