调参在深度学习中十分重要,一组好的超参数能够直接决定系统的好坏。网络的超参数主要包括网络结构,学习率,正则化等,之前在做毕设的过程中,看到过一些调整超参数的blog和paper,改天可以整理一下。这篇blog主要是要介绍Keras框架中的History对象。History对象记录的是网络训练过程中的train_acc/train_loss/val_acc/val_loss等数值,而调整网络的超参数都是要通过这些数值进行调整。
History对象
talk is chearp ,show me the code
1 | from keras.models import Sequential |
看一下model.fit()到底返回什么
返回的是keras中的callback.History对象。Keras中的history回调函数会被自动启动到每一个Keras模型中,由fit返回。其中history字典记录的是训练过程中的训练集和验证集的精度。
打印一下history.history.keys()
1 | dict_keys(['val_loss', 'val_acc', 'loss', 'acc']) |
有四个key - > val_loss/val_acc/loss/acc
画误差率曲线和精度曲线
1 | # summarize history for accuracy |
总结
model.fit()会一个History()回调函数对象(这里说的可能不是很准确),该对象中,包括4个属性
1.epoch
2.history - > 网络训练过程中的acc和loos,可视化训练过程
3.model
4.params - > batch_size等超参数
参考资料
https://cnbeining.github.io/deep-learning-with-python-cn/4-advanced-multi-layer-perceptrons-and-keras/ch15-understand-model-behavior-during-training-by-plotting-history.html
http://kyunsmile.github.io/2019/02/16/keras_CallBacks/