Keras训练循环如何过滤损失值?

我设置了一个如下所示的Keras模型(TensorFlow 1.2.1版本):

输出是一个简单的浮点向量,并且如期望的那样收敛。损失函数使用的是均方误差。示例输出如下:

 18/100 [====>.........................] - ETA: 30s - loss: 31.5118 19/100 [====>.........................] - ETA: 29s - loss: 30.7577 20/100 [=====>........................] - ETA: 29s - loss: 29.7815 21/100 [====>........................] - ETA: 28s - loss: 29.0535 22/100 [====>........................] - ETA: 28s - loss: 28.1963 23/100 [====>........................] - ETA: 28s - loss: 27.3314 24/100 [======>.......................] - ETA: 28s - loss: 26.7219 25/100 [======>.......................] - ETA: 28s - loss: 25.9702 26/100 [======>.......................] - ETA: 27s - loss: 25.4181 27/100 [=======>......................] - ETA: 27s - loss: 25.0638 28/100 [=======>......................] - ETA: 27s - loss: 24.6081 29/100 [=======>......................] - ETA: 26s - loss: 24.0928

损失似乎在稳步下降。然而,当我查看实际的损失值(keras.callbacks.LambdaCallback@on_batch_end)时,情况并非如此平滑:

25.47338328.05177920.51907513.20449320.7494621.24625425.61114913.19468213.26874415.40842217.18385111.23263714.49311510.196851

我尝试研究了Keras的源代码,但无法理解底层发生了什么。Keras是如何过滤实际损失值的?在源代码的哪里可以找到这些信息?

谢谢!


回答:

实际上,进度条中显示的是在打印时,截至当前epoch的所有批次的损失均值。(例如,2个批次后的前2个批次的均值,3个批次后的前3个批次的均值,依此类推)。因此,您可以通过计算前n个损失值的均值来获得第n个epoch后的打印值。您可以在这里阅读关于Progbar的定义。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注