lorenmt / mtan

The implementation of "End-to-End Multi-Task Learning with Attention" [CVPR 2019].
https://shikun.io/projects/multi-task-attention-network
MIT License
665 stars 108 forks source link

about the uncertainty loss #51

Closed J-Wu97 closed 2 years ago

J-Wu97 commented 2 years ago

你好,当我使用您代码中的uncertainty loss进行训练的时候 loss = sum(1 / (2 torch.exp(logsigma[i])) train_loss[i] + logsigma[i] / 2 for i in range(3)) 整个loss在经过几个epoch之后会一直是负的,请问您训练时是这样的情况吗? 此外,想问下您为什么logsigma全部初始化为-0.5。 谢谢!

lorenmt commented 2 years ago

是的 因为定义是logsigma, logsigma是负的是 1/(2*exp(logsigma)) 就是正的.

logsigma initialised 为 -0.5 不太重要的..就 1/(2*exp(logsigma)) 大致接近1. 你选其他数字 一样会收敛到这个数字.

J-Wu97 commented 2 years ago

是的 因为定义是logsigma, logsigma是负的是 1/(2*exp(logsigma)) 就是正的.

logsigma initialised 为 -0.5 不太重要的..就 1/(2*exp(logsigma)) 大致接近1. 你选其他数字 一样会收敛到这个数字.

感谢回复! 由于整体loss在训练几个epoch之后一直为负数。这样怎么判断训练过程是否在不断的变好呢?(除了加载验证集看metric表现)

lorenmt commented 2 years ago

我建议print per-task performance 或者乘以weighting 前的 training loss 就可

J-Wu97 commented 2 years ago

我建议print per-task performance 或者乘以weighting 前的 training loss 就可

谢谢你的建议!