小编ooo*_*rrr的帖子

训练 MSE 损失大于理论最大值?

我正在训练一个 keras 模型,它的最后一层是一个sigmoid单元:

output = Dense(units=1, activation='sigmoid')
Run Code Online (Sandbox Code Playgroud)

我正在用一些训练数据训练这个模型,其中预期输出总是介于 0.0 和 1.0 之间的数字。我正在用均方误差编译模型:

model.compile(optimizer='adam', loss='mse')
Run Code Online (Sandbox Code Playgroud)

由于预期输出和实际输出都是介于 0 和 1 之间的单个浮点数,因此我也期望损失介于 0 和 1 之间,但是当我开始训练时,我得到了3.3932大于 1的损失。

我错过了什么吗?

编辑: 我正在添加一个示例来显示问题:https : //drive.google.com/file/d/1fBBrgW-HlBYhG-BUARjTXn3SpWqrHHPK/view?usp=sharing (我不能只粘贴代码,因为我需要附加训练数据)

运行后python stackoverflow.py,将显示模型的摘要,以及训练过程。我还在每一步打印 y_true 的最小值和最大值,以验证它们是否在 [0, 1] 范围内。无需等待训练完成,您会看到前几个 epoch 的损失远大于 1。

python loss mse keras sigmoid

6
推荐指数
1
解决办法
288
查看次数

标签 统计

keras ×1

loss ×1

mse ×1

python ×1

sigmoid ×1