huawei-noah / AdderNet

Code for paper " AdderNet: Do We Really Need Multiplications in Deep Learning?"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

开源代码和论文的学习率问题

Lininggggggg opened this issue · comments

您好!想请问下开源代码设置的学习率是否与论文中提到的学习率是不同的?
一个是余弦衰减,一个是自适应学习率?
麻烦解答下,谢谢啊

你好,两个方法是一起使用的。
余弦学习率见:

AdderNet/main.py

Lines 54 to 58 in 6d8ba15

def adjust_learning_rate(optimizer, epoch):
"""For resnet, the lr starts from 0.1, and is divided by 10 at 80 and 120 epochs"""
lr = 0.05 * (1+math.cos(float(epoch)/400*math.pi))
for param_group in optimizer.param_groups:
param_group['lr'] = lr

自适应学习率的代码见:
grad_W_col = grad_W_col/grad_W_col.norm(p=2).clamp(min=1e-12)*math.sqrt(W_col.size(1)*W_col.size(0))/5

这样,好的,谢谢啊!
然后还有一个疑惑,即
代码里的第一层卷积层是用乘法卷积做的,其他的是加法做的,但学习率的设置比普通的要高两个数量级(论文里也提到了),想请问下这样的学习率对第一层卷积层有益吗?如果保留了不止一个卷积层的话学习率是否需要相应往回调?

学习率的设置和正常网络一样。调高两个数量级是作为自适应学习率的对比试验

咦,好的,感谢啊哈哈哈,我回去重新看下论文

commented

@HantingChen
你好,我想问下, cuda加速版本的addernet什么时候会开源呢?