median-research-group / LibMTL

A PyTorch Library for Multi-Task Learning
MIT License
1.94k stars 181 forks source link

请教一下Weighting中梯度计算的一些问题 #78

Closed Ruizhuo-Xu closed 4 months ago

Ruizhuo-Xu commented 4 months ago
image

请教一下图中这两种计算梯度的方式分别有什么优劣吗(显存或者计算速度)?

Baijiong-Lin commented 4 months ago

backward会自动计算所有parameter(包括task-specific parameter)的gradient并存储在tensor.grad里,在optimizer.step()会自动更新所有参数(包括task-specific parameter)

autograd只会计算share parameter的gradient并且不会存储在tensor.grad里而是直接返回gradient

在weighting的实现中,可以根据不同的需求去选择这两个方式