OpenLMLab / LOMO

LOMO: LOw-Memory Optimization
MIT License
978 stars 68 forks source link

hook函数之所以再需要额外操作一次,那里的描述我觉得有些不妥,也或者我理解有问题 #57

Closed LaosGAmin closed 1 year ago

LaosGAmin commented 1 year ago

以下是个人见解: hook函数确实是在做当前层梯度的操作(因为hook函数传入的默认参数其实是当前层已经计算好的梯度),但正因为当前层的梯度正在进行进一步"操作(访问)",导致在使用模型对象进行查看的时候并不会显示该层的梯度。这份代码里hook函数实际在操作上一层的权重和梯度,这就导致了网络第一层的hook函数只能操作到二层。因此需要额外操作一次。

KaiLv69 commented 1 year ago

你好:) readme里表达的意思和你的理解是一致的