-
- clipping threshold = ±0.2:
-
- clipping threshold = ±0.1:
- 结论
- clipping STE对loss下降没有明显帮助(在threshold比较大的时候几乎没有被clip的值;适中的时候效果也不是很稳定,而且总体看要比nSTE差,在threshold比较小的时候明显差于nSTE),该结果与binaryduo中汇报的一致?
- 可能的原因:在FWBA条件下的特例?
vSTE on XNOR-ResNet
在ResNet上再测试vSTE。
- 实验条件:
- FP weight Binary activation的XNOR-ResNet,bs=128,第20epoch
- 可能是计算图的特性,clip当前层的activation之后似乎不会对当前层的weight的grad造成影响,因此clip最后一层的conv kernel,测第一层的conv grad。
- 实验结果:
- 结论:
- vSTE和nSTE的差距非常不明显(clip value=1作为没有clip的baseline),但是极端clip情形一定不好(value=0.01/0.001/0.0001),这三条曲线几乎堆在图的最底部。
比较Toy Model和XNOR-ResNet上的实验,可以得出结论:
- vSTE和nSTE的差距不是很明显(因此上次实验几乎没有看到区别,这也和clip value的选取有关,对于toy model来说±0.5的clipping value看来还是太大了),很难说明哪个更好,但是极端clip的情形一定不好。
- XNOR-ResNet和Toy Model对极端clip的鲁棒性不同。Toy Model上用0.1 clip就能看到非常明显的性能恶化,但是在XNOR-ResNet上clip则不这么明显。
*Interesting Findings
不同层深关于weights的gradient大小有明显不同:
- XNOR-ResNet on early training stage:
- XNOR-ResNet on late training stage:
- Insight:
- 因为没有对weight进行quantize,所以也就没有对weight gradient进行clip,发现越靠模型前部weight gradient越大,能否从这个点(结合之前模型前面CDG>STE的结论)说明STE误差累积?
2021-2024, UCaiJun Revision
af8e214 Kaleido's Personal Page
master