微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的损失没有与我的多输出回归方法相加?

如何解决为什么我的损失没有与我的多输出回归方法相加?

我正在尝试将 6 个值拟合到 3 个角度。所以我认为它应该是一个多类/多输出回归网络架构:

  Input = keras.layers.Input(shape=[6])
  ... 
  hidden layers
  ...
  Output1 = keras.layers.Dense(1,activation=ACTIVATION2,name='alpha')(xLayer)
  Output2 = keras.layers.Dense(1,name='beta')(xLayer)
  Output3 = keras.layers.Dense(1,name='gamma')(xLayer)

  model = keras.Model(inputs=[Input],outputs=[Output1,Output2,Output3])

  # CREATE MODEL
  model.compile(loss = {'alpha': 'mse','beta': 'mse','gamma': 'mse'},loss_weights={'alpha': 1.0,'beta': 1.0,'gamma': 1.0},optimizer=MYOPTIMIZER)

应该有四种损失:三种用于角度,一种用于总损失,对吗?然而,这并没有增加。在第一个纪元之后,它说:

loss: 44512.2539 - alpha_loss: 2137.6863 - beta_loss: 12653.1230 - gamma_loss: 24556.3789

这产生了 loss - (alpha_loss+beta_loss+gamma_loss) = 5165.065699999999 的差异

如上所述,我使用“mse”作为损失。当我使用自定义损失函数时,差异更加明显:

loss: 5112.0752 - alpha_loss: 4.8863 - beta_loss: 4.8026 - gamma_loss: 4.6662

在这里遗漏了什么吗?

PS:为了可读性,我尝试发布尽可能少的代码。希望不会太少。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。