median-research-group / LibMTL

A PyTorch Library for Multi-Task Learning
MIT License
1.94k stars 181 forks source link

nashmtl修改更新次数后报错 #39

Closed yushengjiexy closed 1 year ago

yushengjiexy commented 1 year ago

我尝试了nashmtl,以下是我的vscode配置列表: image 我发现当我修改权重更新频率后,会报错如下: image

Baijiong-Lin commented 1 year ago

已修复

yushengjiexy commented 1 year ago

哥们,还是有报错的,alpha可能是numpy也可能是tensor

Baijiong-Lin commented 1 year ago

哪个配置下有报错,麻烦提供一下运行命令,谢谢

yushengjiexy commented 1 year ago

恩恩,好的,我明天在跑一下告诉你。我新发现一个nashmtl的问题你能指导我一下吗?我传入2任务的loss,数值分别是700多和600多,结果乘上nashmtl后,总的loss变成了0.5,有什么超参数可以调节的吗,这导致我模型收敛不了。

yushengjiexy commented 1 year ago

哪个配置下有报错,麻烦提供一下运行命令,谢谢

不好意思,是我看错了你的commit,修改错了,你的修改是ok的,已经没有报错了。另外,你能帮我看看我哦的bug吗,nashmtl算出来的weight_loss好小,是10-4级别的,是要调整什么超参数吗?谢谢

Baijiong-Lin commented 1 year ago

这个问题可能需要问一下Nash-MTL的作者们

yushengjiexy commented 1 year ago

这个问题可能需要问一下Nash-MTL的作者们

问了。但感觉,梯度很大时候,nashmtl就会计算出很小的loss权重(10-4),反传回去时候网络参数的梯度就会非常小,整个网络根本迭代不动。

Baijiong-Lin commented 1 year ago

我也没想到什么好方法

MingChaoXu commented 1 year ago

下有报错,麻烦提供一下运行命令,谢

这个问题可能需要问一下Nash-MTL的作者们

问了。但感觉,梯度很大时候,nashmtl就会计算出很小的loss权重(10-4),反传回去时候网络参数的梯度就会非常小,整个网络根本迭代不动。

请问,你这边用多任务算法的时候,有什么实际work的算法吗,我这边在实际使用的时候其实都会比单任务差很多

MingChaoXu commented 1 year ago

我这边主要是yolox架构的object detection跟自驾任务中的freespace,这两个任务,每个任务都有若干loss,但是用MTL来优化其实远比我随便调一下loss权重要差

yushengjiexy commented 1 year ago

@MingChaoXu 你都试了哪些方法

MingChaoXu commented 1 year ago

我尝试了pcgrad,uw,nash mtl,cagrad,graddrop,都不好使,不知道你这有没有work的经验?

yushengjiexy commented 1 year ago

@MingChaoXu 和nashmtl的作者聊的,可能要对输出做归一化,https://github.com/AvivNavon/nash-mtl/issues/13 你的nash mtl没问题吗

MingChaoXu commented 1 year ago

我这边nash mtl可以收敛,就是精度变差了,你有尝试别的算法吗?效果怎么样?

yushengjiexy commented 1 year ago

我就是pcgrad,有一点点效果,试了nashmtl不行,现在在尝试gradnorm,我也是用的yolox的主干。感觉可能和你的数据分布相关

MingChaoXu commented 1 year ago

我的两个任务的数据并没有共同标注,就是每份数据只有一个任务的标注,不知道这个会不会影响,因为我看论文里的数据好像是多任务标注都有的?

yushengjiexy commented 1 year ago

这不是非同源数据吗?

yushengjiexy commented 1 year ago

我尝试了pcgrad,uw,nash mtl,cagrad,graddrop,都不好使,不知道你这有没有work的经验?

image

MingChaoXu commented 1 year ago

是的,可以说非同源数据吧,domain是一样的,只不过只有单个数据的标注,你的任务是两种标注都有是吗?

yushengjiexy commented 1 year ago

shide

yushengjiexy commented 1 year ago

谢谢作者,nashmtl这个方法我先不用了吧。。。。

yushengjiexy commented 1 year ago

是的,可以说非同源数据吧,domain是一样的,只不过只有单个数据的标注,你的任务是两种标注都有是吗?

可以看看这篇paper https://arxiv.org/pdf/2209.11379.pdf 另外,可以加下微信,讨论下吗,DayDayAmazing,备注mtl

yushengjiexy commented 1 year ago

@MingChaoXu

MingChaoXu commented 1 year ago

@yushengjiexy 好的~互相学习一下hhh,加你了