CharlesTao0926

Results 4 comments of CharlesTao0926

@ricky40403 Thanks for your reply. I have another question. How do you ensure that the value of alphaW, alphaB and alphaA is larger than zero? In the process of training,...

@csyhhu: 感谢您的回复。 我理解您的意思。但是,我觉得问题似乎仍然存在。因为在执行https://github.com/csyhhu/MetaQuant/blob/50694404fa010958aa24c96b4c870d5e9442e849/meta-quantize.py#L239 之前,实际上第2次迭代的前向过程已经完成了https://github.com/csyhhu/MetaQuant/blob/50694404fa010958aa24c96b4c870d5e9442e849/meta-quantize.py#L220 也就是说L220执行在先,而L239执行在后。 因此,第2次迭代的前向过程中实际使用的layer.meta_weight是在执行L220的过程中,由https://github.com/csyhhu/MetaQuant/blob/50694404fa010958aa24c96b4c870d5e9442e849/meta_quantized_module.py#L87 计算的,而此时的self.weight.grad还没被L239更新。 另外,虽然在https://github.com/csyhhu/MetaQuant/blob/50694404fa010958aa24c96b4c870d5e9442e849/meta_quantized_module.py#L87 使用了如下的方式更新self.meta_weight,但此处的self.calibrated_grads一加一减被抵消,实际的梯度使用的是self.weight.grad。我不太理解此处对self.calibrated_grads一加一减操作的作用,请您赐教。 self.meta_weight = self.weight - \ lr * (self.calibrated_grads \ + (self.weight.grad.data - self.calibrated_grads.data).detach()) 不知我的理解,是否有误。请指教,多谢!

@csyhhu: 感谢您的回复。 谢谢您的解释,我基本明白了。还有两个问题,想继续追问一下: 1. 如何理解您在回复中提到的 “因为L244切断了calibrated_grads和计算图的连接”?optimizee.get_refine_gradient()为何会切断meta-net和计算图的连接呢? 2. 您在 #1 问题的回复中提到,“正确的做法应该是把line 239-249整体提前到line 226上面,这样就能解决mismatch的问题。” 这里的行号是不是对应于以前版本的meta-quantize.py,好像和现在版本的行号对应不上? 多谢!