Tencent / ncnn

ncnn is a high-performance neural network inference framework optimized for the mobile platform
Other
20.04k stars 4.13k forks source link

关于int8量化 #3937

Open liamsun2019 opened 2 years ago

liamsun2019 commented 2 years ago

使用ncnn2table的时候,指定mean/norm参数,以及shape参数,有两个问题想确认一下:

  1. mean和norm,在实际推理的时候,是否还需要使用?比如RGB的uint8输入,是否可以直接作为输入喂给量化后的模型,推理的时候不用再考虑mean和norm了?
  2. shape参数的指定,HWC和CHW是否都可以?
tpoisonooo commented 2 years ago
  1. 可以。并不是强制的,只是命令行帮你做个预处理。俺都是直接魔改源码、喂 .bin 进去;
  2. 内部的 layout 是 nchw, 命令行习惯应该是 whc。强制的不能瞎写。
1Yanxiaolin1 commented 1 year ago
  1. 可以。并不是强制的,只是命令行帮你做个预处理。俺都是直接魔改源码、喂 .bin 进去;
  2. 内部的 layout 是 nchw, 命令行习惯应该是 whc。强制的不能瞎写。

但我这样运行ncnn2table /home/lkw/programfiles/hesikeji/tecent/ncnn/build/tools/quantize/ncnn2table 2.7_80x80_MiniFASNetV2-sim-opt.param 2.7_80x80_MiniFASNetV2-sim-opt.bin 8080image.txt 2.7_80x80_MiniFASNetV2.table mean=[] norm=[] shape=[80,80,3] pixel=BGR thread=8 method=kl 会报错:expect 1 means, but got 0 请问应该怎么解决这个问题呢?我推理的时候没有使用归一化

MIaomiao426 commented 1 year ago

但我这样运行ncnn2table /home/lkw/programfiles/hesikeji/tecent/ncnn/build/tools/quantize/ncnn2table 2.7_80x80_MiniFASNetV2-sim-opt.param 2.7_80x80_MiniFASNetV2-sim-opt.bin 8080image.txt 2.7_80x80_MiniFASNetV2.table mean=[] norm=[] shape=[80,80,3] pixel=BGR thread=8 method=kl 会报错:expect 1 means, but got 0 请问应该怎么解决这个问题呢?我推理的时候没有使用归一化

归一化是(x - mean) * norm mean 0 norm 1就行了