huawei-noah / AdderNet

Code for paper " AdderNet: Do We Really Need Multiplications in Deep Learning?"
BSD 3-Clause "New" or "Revised" License
952 stars 187 forks source link

adder.py文件中反向传播的疑问 #53

Closed myzhuang closed 1 year ago

myzhuang commented 3 years ago

您好,我想问一下adder.py 第46行, 为何梯度需要乘上math.sqrt(W_col.size(1)*W_col.size(0))? 此外,后面的“/5”是怎么得到的? 目前我在改FC层为加法网络,想问一下在梯度上是需要做哪些修改?谢谢!

HantingChen commented 3 years ago

请参考论文https://openaccess.thecvf.com/content_CVPR_2020/papers/Chen_AdderNet_Do_We_Really_Need_Multiplications_in_Deep_Learning_CVPR_2020_paper.pdf

math.sqrt(W_col.size(1)*W_col.size(0))为公式13中的sqrt(k)

/5为公式13中的eta,是一个超参

由于FC层可以使用卷积层来实现,可以直接使用卷积层的代码即可,不需要修改。