Tencent / ncnn

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

ncnn Int8 quantization question #4090

Open XJTUWYD opened 2 years ago

XJTUWYD commented 2 years ago

detail | 详细描述 | 詳細な説明

1.模型量化后bin size缩小了一倍,但是从float32->int8应该是缩小为原来的四分之一才对呀,有点奇怪,请大佬解惑。 2.量化后模型推理变慢了10%(cotex x2 thread number 4),为什么会变慢呢,我使用的模型是yolov5 nano x0.5,请大佬解惑。

nihui commented 2 years ago
  1. fp16->int8 是二分之一
  2. 使用最新版本的ncnn
  3. yolov5 使用 swish 激活,这无法量化导致频繁退回 fp16 计算,建议改用 relu 激活
XJTUWYD commented 2 years ago

了解了,我用的是很新版本的NCNN,应该不是版本问题,应该就是swish的问题,谢谢回复

XJTUWYD commented 2 years ago

detail | 详细描述 | 詳細な説明

1.模型量化后bin size缩小了一倍,但是从float32->int8应该是缩小为原来的四分之一才对呀,有点奇怪,请大佬解惑。 2.量化后模型推理变慢了10%(cotex x2 thread number 4),为什么会变慢呢,我使用的模型是yolov5 nano x0.5,请大佬解惑。

量化过后在GPU上的速度提升了20%,这个是什么原因呢?

weilanShi commented 1 year ago
  1. fp16->int8 是二分之一
  2. 使用最新版本的ncnn
  3. yolov5 使用 swish 激活,这无法量化导致频繁退回 fp16 计算,建议改用 relu 激活

你好,int8量化时 Prelu 会有问题吗