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

问题描述

我正在尝试将 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 (将#修改为@)