wzx___
wzx___
> @TD-wzw hello ,铁子我也是在转mobilev3 为backbone时碰到了这个问题,但是resnet18 就没事,这个问题你解决了吗? 你给原来那个激活函数换一下子换成这样就行 `class Hsigmoid(nn.Module): def __init__(self, inplace=True): super(Hsigmoid, self).__init__() self.inplace = inplace def forward(self, x): return F.relu6(x + 3., inplace=self.inplace) / 6.`
这个解决完事儿了 我上边报的错是因为原来的Hsigmoid函数用到了threshold,换一种实现方式就行了,换成我上边发的那种
relu6算子不报错,报错的是threshold,把mobilenetv3网络结构里边的Hsigmoid改了就行
relu6我没报过错,唯一报错的地方就是这个,直接用F.relu6就没毛病
要不你再仔细瞅瞅我给你贴的是啥?
Hsigmoid HSwish 它俩像么?
奥我错了哈哈哈,你说实现方式呗
你看一下 https://github.com/MhLiao/DB/blob/master/backbones/mobilenetv3.py 这个是原作者的dbnet,我照着它来的
不是,你下下来的是对的,因为我把那个函数名改了,作者写的是叫HardSigmoid,我写的就是叫HSigmoid,他俩一个意思 我就直接给你从开头说到最后得了 1.我的错出在HardSigmoid这个函数,因为它用了F.threshold() 2.解决问题时候参照了一下dbnet原作者的backbone代码,把HardSigmoid换成他那种写法问题就解决了 3.我是直接粘贴复制他的激活函数,他用什么名我就用什么名,和这个项目的激活名不一样,但东西是一个东西
mobilenetv3就是一个backbone,激活函数你可以随意换,哪怕你用relu或者啥都没人管你,原作者的backbone也是网上开源的一个mobilenetv3,每个人写法不一样,如果你想用原汁原味的mobilentv3直接去看论文,论文里激活函数用啥你就用啥