模型中到底什么决定了效果

在工作过程中,我们训练模型时,到底是哪些因素影响最大?模型深度,模型宽度,head个数,head深度,输入大小,输出大小等等。

在工业界中,基于深度学习的检测模型尤其应用广泛。今年由于工作变动,接触了各种不同的项目和模型。发现一个规律,模型可以很小,但是数据量很大时,一样能提高效果。同时输入尺寸变大时,比做多少模型重构都有用,当然前提是backbone和head类似的前提下。

之前的模型臃肿的很,耗时不说,还占显存,这样其实batchsize大小也有影响。于是,我把模型的head大刀阔斧砍到很浅的程度,然后把backbone也砍掉了很多。发现耗时减少了很多,loss训练的时候并没有变化多大。然后我再部署到硬件时,增加输入尺寸为之前小尺寸的2倍,同时由于改变了模型的复杂度,数据增加了很多。于是效果比之前很大(比目前这个尺寸大了1.5倍)尺寸的效果还高了5-6个点。

这说明两个问题:1. 砍了模型的backbone和head,增加了数据,模型的效果依然在提升,比输入尺寸更大的模型效果还好,那说明模型远远没有达到饱和,也就是说模型相对数据其实还是过于复杂的。2. 模型变小了,输入尺寸变大了,效果比之前小尺寸的大模型效果好了太多,这说明相比较模型复杂度,更应该提升模型的输入尺寸以改善实际效果。

 

所以在工程上,不要追求什么模型的复杂度,说把输入尺寸减小,增加模型复杂度来提升效果。输入那么小,到模型输出时,降维到什么都没有了,哪里来的效果啊,别再做这些没意义的实验了。一句话,工程上计算量有限时就要尽量增加数据和增加输入尺寸。科研上嘛,反正也不受计算量限制,输入都不会很小,多增加数据,用强大模型。

 

posted @   deeplearner_allen  阅读(247)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2015-09-10 十一旅行
点击右上角即可分享
微信分享提示