Commit 63e93654 by Klin

doc: modify readme format

parent d465b618
......@@ -46,21 +46,21 @@ cfg_table书写规则说明如下:
| ResNet_50 | 82.10 | 0.9498 | 89.85 | 0.9693 | 89.52 | 0.9692 | 91.61 | 0.9594 |
| ResNet_152 | 79.76 | 0.8947 | 89.35 | 0.7978 | 88.92 | 0.8519 | 91.78 | 0.9083 |
| MobileNetV2 | 84.61 | 0.9918<br />(no tolerance) | 88.98 | 0.9632 | 88.93 | 0.9882 | 91.93 | 0.8082 |
| ALL | | 0.8014 | | 0.6787 | | 0.7189 | | 0.6726 |
| ALL | n | 0.8014 | n | 0.6787 | n | 0.7189 | n | 0.6726 |
+ 结果展示:
+ sgd-AlexNet
<img src="image\sgd-AlexNet.png" alt="sgd-AlexNet" style="zoom:50%;" />
<img src="image/sgd-AlexNet.png" alt="sgd-AlexNet" style="zoom:50%;" />
+ sgd+momentum95+...-AlexNet
<img src="image\sgd-m-AlexNet.png" alt="sgd-m-AlexNet" style="zoom:50%;" />
<img src="image/sgd-m-AlexNet.png" alt="sgd-m-AlexNet" style="zoom:50%;" />
+ adam-AlexNet
<img src="image\adam-AlexNet.png" alt="adam-AlexNet" style="zoom:50%;" />
<img src="image/adam-AlexNet.png" alt="adam-AlexNet" style="zoom:50%;" />
+ 最终采用SGD+momentum=0.95+weight_decay=1e-4+nesterov
......@@ -68,17 +68,17 @@ cfg_table书写规则说明如下:
+ 未分段
<img src="image\sgd-ALL.png" alt="sgd-ALL" style="zoom:50%;" />
<img src="image/sgd-ALL.png" alt="sgd-ALL" style="zoom:50%;" />
+ 分段(3.5为分界)
<img src="image\sgd-sep.png" alt="sgd-sep" style="zoom:50%;" />
<img src="image/sgd-sep.png" alt="sgd-sep" style="zoom:50%;" />
+ SGD和Adam差别原因分析:
1. Adam优化器采用动态调整的学习率,通常会使模型更新的权重参数具有较大的变化范围。而SGD使用固定学习率,参数更新幅度较小。这会导致Adam优化器训练出的模型参数分布更加集中,而SGD训练出的模型参数分布更加分散,有利于量化。
1. Adam优化器在反向传播时会对梯度进行额外的平滑和校正,缓解梯度消失与爆炸问题;在参数更新时,会考虑一阶矩和二阶矩的影响,实现比较平稳的更新。而SGD直接使用原始梯度。这也会导致Adam优化器训练出的模型参数更加集中,不利于量化。
2. Adam优化器在反向传播时会对梯度进行额外的平滑和校正,缓解梯度消失与爆炸问题;在参数更新时,会考虑一阶矩和二阶矩的影响,实现比较平稳的更新。而SGD直接使用原始梯度。这也会导致Adam优化器训练出的模型参数更加集中,不利于量化。
3. Adam优化器对小的梯度更加敏感,可以更快找到较优解。但对模型量化不利。SGD相对而言更新步骤更大,有利于量化。
......@@ -113,9 +113,9 @@ cfg_table书写规则说明如下:
观察这些模型的权重参数分布,可以发现出现问题的模型存在着无尖端的权重分布。而有尖无尖的分布在面对不同量化方式的分布如下:
![diff1](image\diff1.png)
![diff1](image/diff1.png)
![diff2](image\diff2.png)
![diff2](image/diff2.png)
根据不同模型权重分布的特点,可以推测出现问题的模型POT量化散度较大且集中的重要原因是量化后分布与原分布趋势不同。基于此,我们可能需要在相似度之外额外的考虑模型参数分布与量化方式的适配性。这需要进行实验的验证,例如,直接度量全精度模型-量化模型用于衡量分布趋势的系数;度量全精度权重的尖锐程度和量化表的尖锐程度等。并将所得值作用于原先所求js散度上。
......@@ -130,7 +130,7 @@ cfg_table书写规则说明如下:
#### 后续增强拟合效果的方案
+ 针对POT量化点扎堆,可以考虑使用更关注趋势的Pearson相关系数、余弦相似度等对js散度进行修正,或者考虑将量化范围切分多个bins评估量化点覆盖率的方式修正。
+ 对weight和bias采取更合理的加权方式
+ 根据对精度的影响(不易衡量,不易确定基准)
......
......@@ -34,9 +34,9 @@
观察这些模型的权重参数分布,可以发现出现问题的模型存在着无尖端的权重分布。而有尖无尖的分布在面对不同量化方式的分布如下:
![diff1](image\diff1.png)
![diff1](image/diff1.png)
![diff2](image\diff2.png)
![diff2](image/diff2.png)
根据不同模型权重分布的特点,可以推测出现问题的模型POT量化散度较大且集中的重要原因是量化后分布与原分布趋势不同。基于此,我们可能需要在相似度之外额外的考虑模型参数分布与量化方式的适配性。这需要进行实验的验证,例如,直接度量全精度模型-量化模型用于衡量分布趋势的系数;度量全精度权重的尖锐程度和量化表的尖锐程度等。并将所得值作用于原先所求js散度上。
......@@ -80,23 +80,23 @@
+ 所有模型拟合
![L2_param](image\L2_param.png)
![L2_param](image/L2_param.png)
![L2_flops](image\L2_flops.png)
![L2_flops](image/L2_flops.png)
![L2_flops_weighted](image\L2_flops_weighted.png)
![L2_flops_weighted](image/L2_flops_weighted.png)
+ 单个模型拟合
![L2_AlexNet](image\L2_AlexNet.png)
![L2_AlexNet](image/L2_AlexNet.png)
![L2_AlexNet_BN](image\L2_AlexNet_BN.png)
![L2_AlexNet_BN](image/L2_AlexNet_BN.png)
![L2_VGG_16](image\L2_VGG_16.png)
![L2_VGG_16](image/L2_VGG_16.png)
![L2_VGG_19](image\L2_VGG_19.png)
![L2_VGG_19](image/L2_VGG_19.png)
![L2_Inception_BN](image\L2_Inception_BN.png)
![L2_Inception_BN](image/L2_Inception_BN.png)
......@@ -104,25 +104,25 @@
+ 所有模型拟合
![fakefreeze_param](image\fakefreeze_param.png)
![fakefreeze_param](image/fakefreeze_param.png)
![fakefreeze_flops](image\fakefreeze_flops.png)
![fakefreeze_flops](image/fakefreeze_flops.png)
![fakefreeze_flops_weighted_log](image\fakefreeze_flops_weighted_log.png)
![fakefreeze_flops_weighted_log](image/fakefreeze_flops_weighted_log.png)
![fakefreeze_flops_weighted_cuberoot](image\fakefreeze_flops_weighted_cuberoot.png)
![fakefreeze_flops_weighted_cuberoot](image/fakefreeze_flops_weighted_cuberoot.png)
+ 单个模型拟合
![fakefreeze_AlexNet](image\fakefreeze_AlexNet.png)
![fakefreeze_AlexNet](image/fakefreeze_AlexNet.png)
![fakefreeze_AlexNet_BN](image\fakefreeze_AlexNet_BN.png)
![fakefreeze_AlexNet_BN](image/fakefreeze_AlexNet_BN.png)
![fakefreeze_VGG_16](image\fakefreeze_VGG_16.png)
![fakefreeze_VGG_16](image/fakefreeze_VGG_16.png)
![fakefreeze_VGG_19](image\fakefreeze_VGG_19.png)
![fakefreeze_VGG_19](image/fakefreeze_VGG_19.png)
![fakefreeze_Inception_BN](image\fakefreeze_Inception_BN.png)
![fakefreeze_Inception_BN](image/fakefreeze_Inception_BN.png)
......@@ -130,23 +130,23 @@
+ 所有模型拟合
![fakefreeze_nodiv_param](image\fakefreeze_nodiv_param.png)
![fakefreeze_nodiv_param](image/fakefreeze_nodiv_param.png)
![fakefreeze_nodiv_flops](image\fakefreeze_nodiv_flops.png)
![fakefreeze_nodiv_flops](image/fakefreeze_nodiv_flops.png)
![fakefreeze_nodiv_flops_weighted_log](image\fakefreeze_nodiv_flops_weighted_log.png)
![fakefreeze_nodiv_flops_weighted_log](image/fakefreeze_nodiv_flops_weighted_log.png)
![fakefreeze_nodiv_flops_weighted_cuderoot](image\fakefreeze_nodiv_flops_weighted_cuderoot.png)
![fakefreeze_nodiv_flops_weighted_cuderoot](image/fakefreeze_nodiv_flops_weighted_cuderoot.png)
+ 单个模型拟合
![fakefreeze_nodiv_AlexNet](image\fakefreeze_nodiv_AlexNet.png)
![fakefreeze_nodiv_AlexNet](image/fakefreeze_nodiv_AlexNet.png)
![fakefreeze_nodiv_AlexNet_BN](image\fakefreeze_nodiv_AlexNet_BN.png)
![fakefreeze_nodiv_AlexNet_BN](image/fakefreeze_nodiv_AlexNet_BN.png)
![fakefreeze_nodiv_VGG_16](image\fakefreeze_nodiv_VGG_16.png)
![fakefreeze_nodiv_VGG_16](image/fakefreeze_nodiv_VGG_16.png)
![fakefreeze_nodiv_VGG_19](image\fakefreeze_nodiv_VGG_19.png)
![fakefreeze_nodiv_VGG_19](image/fakefreeze_nodiv_VGG_19.png)
![fakefreeze_nodiv_Inception_BN](image\fakefreeze_nodiv_Inception_BN.png)
![fakefreeze_nodiv_Inception_BN](image/fakefreeze_nodiv_Inception_BN.png)
......@@ -12,4 +12,4 @@
+ 拟合结果:R2=0.7989
<img src="image\adam-ALL.png" alt="adam-ALL" />
\ No newline at end of file
<img src="image/adam-ALL.png" alt="adam-ALL" />
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment