如何正确使用Keras模型进行预测,有哪些关键注意事项?
- 内容介绍
- 文章标签
- 相关推荐
本文共计807个文字,预计阅读时间需要4分钟。
为什么训练误差和测试误差差异很大?
一个Keras的模型有两个模式:训练模式和测试模式。
一些正则化机制,如Dropout、L1/L2正则项,在测试模式下将不被激活。
此外,训练误差是训练数据上的误差。
为什么训练误差比测试误差高很多?
一个Keras的模型有两个模式:训练模式和测试模式。一些正则机制,如Dropout,L1/L2正则项在测试模式下将不被启用。
另外,训练误差是训练数据每个batch的误差的平均。在训练过程中,每个epoch起始时的batch的误差要大一些,而后面的batch的误差要小一些。另一方面,每个epoch结束时计算的测试误差是由模型在epoch结束时的状态决定的,这时候的网络将产生较小的误差。
可以通过定义回调函数将每个epoch的训练误差和测试误差并作图,如果训练误差曲线和测试误差曲线之间有很大的空隙,说明你的模型可能有过拟合的问题。当然,这个问题与Keras无关。
在keras中文文档中指出了这一误区,笔者认为产生这一问题的原因在于网络实现的机制。
本文共计807个文字,预计阅读时间需要4分钟。
为什么训练误差和测试误差差异很大?
一个Keras的模型有两个模式:训练模式和测试模式。
一些正则化机制,如Dropout、L1/L2正则项,在测试模式下将不被激活。
此外,训练误差是训练数据上的误差。
为什么训练误差比测试误差高很多?
一个Keras的模型有两个模式:训练模式和测试模式。一些正则机制,如Dropout,L1/L2正则项在测试模式下将不被启用。
另外,训练误差是训练数据每个batch的误差的平均。在训练过程中,每个epoch起始时的batch的误差要大一些,而后面的batch的误差要小一些。另一方面,每个epoch结束时计算的测试误差是由模型在epoch结束时的状态决定的,这时候的网络将产生较小的误差。
可以通过定义回调函数将每个epoch的训练误差和测试误差并作图,如果训练误差曲线和测试误差曲线之间有很大的空隙,说明你的模型可能有过拟合的问题。当然,这个问题与Keras无关。
在keras中文文档中指出了这一误区,笔者认为产生这一问题的原因在于网络实现的机制。

