layumi / Person_reID_baseline_pytorch

:bouncing_ball_person: Pytorch ReID: A tiny, friendly, strong pytorch implement of person re-id / vehicle re-id baseline. Tutorial 👉https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/tutorial
https://www.zdzheng.xyz
MIT License
4.13k stars 1.01k forks source link

求解损失函数使用问题 #378

Closed qiaosuobutouche closed 1 year ago

qiaosuobutouche commented 1 year ago

我看到东哥在项目中列举了使用不同损失函数提升模型精度的表格,其中有使用ce+contrast+triplet三种损失函数的方法,我阅读了代码部分,不太清楚多种损失函数是如何加权的,只看到了loss += criterion_xxxx...,仅仅是将三者相加么,并且各个损失函数是可以自由进行组合的么,想知道使用多个损失函数是如何进行加权的,十分恳求您的回答谢谢!

qiaosuobutouche commented 1 year ago

还有一个问题,我看到作者给出的损失函数包括reid的表征学习和度量学习的损失函数,是不是代表可以同时使用表征学习的loss函数和度量学习的loss函数来进行训练,这种方法效果会更好么?

layumi commented 1 year ago

你好。@qiaosuobutouche 是的。只做了 简单的 叠加 没有进一步调整权重。

是的。多种loss 只要目标相同 是能互相提升的。 比如 https://www.zdzheng.xyz/publication/A-discri2018 这一篇。

qiaosuobutouche commented 1 year ago

你好。@qiaosuobutouche 是的。只做了 简单的 叠加 没有进一步调整权重。

是的。多种loss 只要目标相同 是能互相提升的。 比如 https://www.zdzheng.xyz/publication/A-discri2018 这一篇。

三个loss函数加权,会不会导致初始loss较大,会有影响么,还是随着epoch增加,这种影响微乎其微?

layumi commented 1 year ago

你好。 是可能的。

  1. 一般可以通过调小lrRate等来实现。
  2. 以 分类loss为主loss,减小其他loss的权重,为辅助来弄。
qiaosuobutouche commented 1 year ago

你好。 是可能的。

  1. 一般可以通过调小lrRate等来实现。
  2. 以 分类loss为主loss,减小其他loss的权重,为辅助来弄。

感谢您的回复!

qiaosuobutouche commented 1 year ago

你好。 是可能的。

  1. 一般可以通过调小lrRate等来实现。
  2. 以 分类loss为主loss,减小其他loss的权重,为辅助来弄。

还有一个问题,我想问一下,两种loss结合使用,我看您都有放paper,例如ce+contarast是使用了您之前发表的孪生网络实现的,目前这个项目貌似已经不是使用孪生网络实现的了,请问三种loss结合使用有相关的paper么,loss函数是可以随意选择的吗

layumi commented 1 year ago

哦哦 可能2017年左右还算比较新。 现在可能更偏实践trick 一些了。 看哪些loss更好 就可以选择。

qiaosuobutouche commented 1 year ago

哦哦 可能2017年左右还算比较新。 现在可能更偏实践trick 一些了。 看哪些loss更好 就可以选择。

感谢您的回复