HonglinChu / SiamTrackers

(2020-2022)The PyTorch version of SiamFC,SiamRPN,DaSiamRPN, UpdateNet , SiamDW, SiamRPN++, SiamMask, SiamFC++, SiamCAR, SiamBAN, Ocean, LightTrack , TrTr, NanoTrack; Visual object tracking based on deep learning
Apache License 2.0
1.33k stars 268 forks source link

请问大家的nanotrack V3最多能练到多少? #125

Closed Coder-TieHH closed 11 months ago

Coder-TieHH commented 1 year ago

我的nanotrack V3在VOT2018上eao最多只能到0.28左右,请问大家能到多少,我是把6个数据集都加载进去了。博主能不能给点建议,感谢,🙏

HonglinChu commented 1 year ago

因为学习率,batch size和epoch的设置问题不能一次训练就达到最好,可以尝试加载你的EAO=0.28的模型作为pretrained, 然后finetune一下

Coder-TieHH commented 1 year ago

对的,我尝试了加载,最终能够提到0.36左右,距离您的0.449还是差距很大/(ㄒoㄒ)/~~,请问您这边total_loss最多能降到多少,我这边最多是0.13就始终下不去了,lr已经调的非常非常低了,cls_loss基本上稳定是0.0几了,但是loc_loss下不去了。 image

Coder-TieHH commented 1 year ago

而且我的模型大小和您的也不太一样,您是后面加了一些裁剪? image

HonglinChu commented 1 year ago

可以保持学习率不变,然后把batch size调的大一些试试,比如batch size= 128或者256; loss越低并不代表在数据集上的测试精度就一定越高; finetune阶段loss不会降低太多,因为模型的能力学习的差不多了,finetune阶段,只要loss没有异常(nan 或inf)可以不用太关注loss变化

HonglinChu commented 1 year ago

关于模型的大小问题,你可以查看一下.pth是否保存了权重之外的冗余信息;因为是为了部署到边缘设备上,最终大小以转换之后的onnx,ncnn或mnn为准

Coder-TieHH commented 1 year ago

好的好的,非常感谢您,那么此时的lr的下降策略依旧保持log?backbone部分解冻需要调整嘛,原来是epoch>10的时候,解冻的。 image

Coder-TieHH commented 1 year ago

可以保持学习率不变,然后把batch size调的大一些试试,比如batch size= 128或者256; loss越低并不代表在数据集上的测试精度就一定越高; finetune阶段loss不会降低太多,因为模型的能力学习的差不多了,finetune阶段,只要loss没有异常(nan 或inf)可以不用太关注loss变化

博主您好,我跟着您的建议,又pretrain了,但是已经3轮训练了,最高的也只有0.389左右,距离您的baseline距离实在有点大,目前我也就调整了lr,已经调的非常小了,第三轮训练的提升非常的小,只有0.07左右,请问您有哪些炼丹的建议吗,请您不吝赐教🙏

HonglinChu commented 1 year ago

VOT2018 EAO=0.389精度也不低了,已经超多很多大模型,再继续提升精度有限,可以运行 python ./bin/hp_search.py 继续在VOT2018上进行超参数调整,寻找当前模型最优的参数组合,应该可以再提升1-2个点;

学习率,batch size,预训练权重都尝试了,其他的方式:

网络结构上:可以考虑适当增加网络head的层数或者通道数;

数据集上:还可以考虑加入TrackingNet数据集进行训练,不过我觉得麻烦就没用那个数据

学习方式:可以尝试蒸馏学习的方式,损失函数上是否有更好的尝试?

Coder-TieHH commented 1 year ago

还有您用的单卡还是多卡训练的,主要是想这个暑假复现您的效果,结果就您给的那个pretrain都没有达到/(ㄒoㄒ)/~~,想以您的模型作为baseline,为了后面我自己模型的修改,所以想要较好的复现,非常感谢您的回答

HonglinChu commented 1 year ago

使用单卡3090训练的,要完全复现很难的。另外一点,不能只盯着一个数据集的精度,要分析分析原因,比如V3在VOT2018比较高,但是在VOT2019就很差,你最好可视化看看到底哪些情况下表现不如LightTrack,而且这个也和数据评估的方式有一定关系;因为当时时间有限,并没有进行针对性的分析。如果要有效的进行改进还是得好好分析一下bad case。

Coder-TieHH commented 1 year ago

好的好的,太感谢您了,因为之前没有练过丹,请问您,就是您觉得一个模型,如果自己设计、魔改的话,训练这方面画多长时间,或者说据如同您的这个模型,不断加载几轮是比较合适的🙏

HonglinChu commented 1 year ago

V2、 V3这样的小网络一般finetune 2轮就差不多了,后面再提升主要得靠hp_search调参,但是也提升很有限;如果能配合蒸馏或者NAS应该还能提升不少;模型太小不适合使用太多的trick,设计的太复杂就失去了原本的目的,网络的结构上也可以参考一下nanodet++;

Coder-TieHH commented 1 year ago

好的好的,非常感谢您的帮助,真的很感激您对我的帮助🤞

Coder-TieHH commented 1 year ago

VOT2018 EAO=0.389精度也不低了,已经超多很多大模型,再继续提升精度有限,可以运行 python ./bin/hp_search.py 继续在VOT2018上进行超参数调整,寻找当前模型最优的参数组合,应该可以再提升1-2个点;

学习率,batch size,预训练权重都尝试了,其他的方式:

网络结构上:可以考虑适当增加网络head的层数或者通道数;

数据集上:还可以考虑加入TrackingNet数据集进行训练,不过我觉得麻烦就没用那个数据

学习方式:可以尝试蒸馏学习的方式,损失函数上是否有更好的尝试?

又来打扰您了,我想尝试用知识蒸馏,最近在看相关论文,想问的是,您有在siam跟踪这块用过蒸馏吗,相关的论文不多,都是说由于外观特征难以压缩导致在siam网络这块,蒸馏的效果不是很好,但是还是有一些工作的。我现在想的是用深层的mobilenetv3以及更深的cls,loc当作teacher,还是说直接拿transform那些作为teacher,想问问您的意见,非常感谢!

HonglinChu commented 1 year ago

拿transform那些作为teacher, 蒸馏方式可以参考一下DWPose

Coder-TieHH commented 1 year ago

您好,又来打扰您了,请问您的v3版本的cross correlation是从哪里获得的灵感,感觉没有头绪挠头🙏

HonglinChu commented 1 year ago

cross correlation 这个在siamfc,siamrpn,siamfc++,siamban中都可以借鉴

Coder-TieHH commented 1 year ago

好的,感谢您的解答

Coder-TieHH commented 1 year ago

博主,又来打搅您了🤣,想请教您一些建议,由于我的课题应用场景是无人机,所以导致尺度会比较小,且尺度变换较大,我自然想到了shufflev2+fpn(根据您的建议看了nanodet,受益匪浅,选择用ghostfpn),但是我再看论文的时候发现,只有少数的网络用的shuffle作为backbone,我看到的只有SiamTPN,shufflev2最后拿出来的三个尺度的feature的融合方式上,您有什么建议吗,我现在是借鉴siamban的方式,先把t,x分别三个的feature,放到一个尺寸大小,再加上一个weight融合成一个特征图,之后再用pw进行特征融合,head部分和您的nanotrackv3一样。 但是这样的网络,我训练完之后在vot2018上只有eao,0.16的效果,您能根据您的经验给出一些建议吗,非常感谢!🙏

Coder-TieHH commented 1 year ago

博主,您好,又来打扰你您了,最近炼丹太折磨了,可以问下,您当时在训练v3的时候的过程嘛,我自己模型发现将训练好的模型再加载,finetune的效果几乎没有,然而您的网络,就很明显,可以指点一下嘛,还请您不吝赐教🙏🙏

yifanya commented 1 year ago

同求博主,能不能指导下V3的训练过程,练不出来😭😭😭

yifanya commented 1 year ago

好的好的,非常感谢您,那么此时的lr的下降策略依旧保持log?backbone部分解冻需要调整嘛,原来是epoch>10的时候,解冻的。 image

大哥,能不能传授下你的训练方法呢。

Coder-TieHH commented 12 months ago

我也练不出来😂

yifanya commented 11 months ago

大兄弟你训练一次多久啊。我在3090ti上训一次要10天,比他们大模型还慢

Coder-TieHH commented 11 months ago

我4090一次要4个半小时 从 Windows 版邮件发送

发件人: yifanya 发送时间: 2023年11月19日 1:11 收件人: HonglinChu/SiamTrackers 抄送: wjh; Author 主题: Re: [HonglinChu/SiamTrackers] 请问大家的nanotrack V3最多能练到多少? (Issue #125)

大兄弟你训练一次多久啊。我在3090ti上训一次要10天,比他们大模型还慢 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

xiaotian3 commented 8 months ago

我4090一次要4个半小时 从 Windows 版邮件发送 发件人: yifanya 发送时间: 2023年11月19日 1:11 收件人: HonglinChu/SiamTrackers 抄送: wjh; Author 主题: Re: [HonglinChu/SiamTrackers] 请问大家的nanotrack V3最多能练到多少? (Issue #125) 大兄弟你训练一次多久啊。我在3090ti上训一次要10天,比他们大模型还慢 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

问下,您是6个数据集,一起训练,4个半小时吗,多少张卡

Coder-TieHH commented 8 months ago

我4090一次要4个半小时 从 Windows 版邮件发送 发件人: yifanya 发送时间: 2023年11月19日 1:11 收件人: HonglinChu/SiamTrackers 抄送: wjh; Author 主题: Re: [HonglinChu/SiamTrackers] 请问大家的nanotrack V3最多能练到多少? (Issue #125) 大兄弟你训练一次多久啊。我在3090ti上训一次要10天,比他们大模型还慢 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

问下,您是6个数据集,一起训练,4个半小时吗,多少张卡

是的,6个数据集,一张4090

xiaotian3 commented 8 months ago

我4090一次要4个半小时 从 Windows 版邮件发送 发件人: yifanya 发送时间: 2023年11月19日 1:11 收件人: HonglinChu/SiamTrackers 抄送: wjh; Author 主题: Re: [HonglinChu/SiamTrackers] 请问大家的nanotrack V3最多能练到多少? (Issue #125) 大兄弟你训练一次多久啊。我在3090ti上训一次要10天,比他们大模型还慢 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

问下,您是6个数据集,一起训练,4个半小时吗,多少张卡

是的,6个数据集,一张4090

是4090快还这么模型比较小啊

Koggy-Y commented 1 week ago

请问分类模型的backbone的网络是mobilenetv3_small_v3吧,训练的初始的PRETRAINED是使用这个?nanotrackv3.pth