[论文复现] torch.optim.Adam和fluid.optimizer.Adam加上weight_decay后,loss无法对齐
Created by: lyl120117
自己写了一个简单的网络测试使用Adam看pytorch和paddle的loss能否对齐,torch.optim.Adam有个weight_decay,通过查找相关的文档,fluid.optimizer.Adam也可以设置regularization与之对应,实际测试的结果当都不设置weight_decay这个参数时,loss误差为2e-8,加上weight_decay,loss误差为3.8e-3,为啥加上weight_decay后误差会变这么大?
Paddle的实现如下:
self.optmizes = fluid.optimizer.AdamOptimizer(learning_rate=0.01, parameter_list=self.model.parameters(), beta1=0.0, beta2=0.99, regularization=fluid.regularizer.L2Decay(1e-4) )
Pytorch的实现如下:
self.optmizes = torch.optim.Adam(self.model.parameters(), lr=0.01, betas=[0.0, 0.99], weight_decay=1e-4 )
由于论文复现需要实现torch.optim.Adam中的weight_decay,请问有没有其它方法能实现weight_decay效果?
我这边测试的代码: adam.zip