def __call__(self, opt):
norm = np.sqrt(_sum_sqnorm([p.grad for p in opt.target.params(False)]))
if norm == 0:
return
rate = self.threshold / norm
if rate < 1:
for param in opt.target.params(False):
grad = param.grad
with cuda.get_device_from_array(grad):
grad *= rate
评论列表
文章目录