【量化】可视化工具和排查思路
2021-12-09 本文已影响0人
云彩修建站站长
import os
import ufw.tools.analysis.analysis as analysis
dir_path = '/workspace/models/rvm/output/ufw_rvm_b1_t8_sm'
test_args = ['-fm',
os.path.join(dir_path, 'rvm_b1_t8_sm.script_bmnetp_test_fp32_unique_top.prototxt'),
'-fw',
os.path.join(dir_path, 'rvm_b1_t8_sm.script_bmnetp.fp32umodel'),
'-im',
os.path.join(dir_path, 'rvm_b1_t8_sm.script_bmnetp_test_int8_unique_top.prototxt'),
'-iw',
os.path.join(dir_path, 'rvm_b1_t8_sm.script_bmnetp.int8umodel'),
'-show_difference', '1',
]
test_n = analysis.calibration_visual(test_args)
test_n.run()
test_n.show_widgets()
使用上述代码,可以查看fp32 和 int8相同层的精度差,我把最后30层设置成了fp32的,但是实际上来看,最后30层效果还是不好,这是什么原因呢?????
![](https://img.haomeiwen.com/i958385/b135ad103c9c8e47.png)
原来他妈的,网络并不是串行的,是一个图,所以在前面的层,后面的节点并不一定多。我设置了某个节点向后的层,其实还可能会有其他的层通路。
真是没有想到。
![](https://img.haomeiwen.com/i958385/5c8ab651859f9a80.png)
直接用prototxt 就可以看图的结构,真方便。
https://netron.app/