PaddleSlim icon indicating copy to clipboard operation
PaddleSlim copied to clipboard

模型静态离线量化报错

Open maximli opened this issue 2 years ago • 4 comments

模型静态离线量化时,收到一个报错,请帮忙看下,谢谢!

模型为det模型,使用的inference为PaddleOCR/tools中export_model.py导出,该模型转为onnx是可以正常推理的,目前想将该模型量化后再转为onnx,但量化时报错如下:

使用MobileNetV1_infer.tar中的模型则没有这个问题。

/usr/local/lib/python3.8/dist-packages/paddle/fluid/executor.py:990: UserWarning: The variable inputs is not found in program. It is not declared or is pruned. Traceback (most recent call last): File "quant_post.py", line 97, in main() File "quant_post.py", line 92, in main quantize(args) File "quant_post.py", line 71, in quantize quant_post_static( File "/usr/local/lib/python3.8/dist-packages/paddleslim/quant/quanter.py", line 506, in quant_post_static post_training_quantization.quantize() File "/usr/local/lib/python3.8/dist-packages/paddle/fluid/contrib/slim/quantization/post_training_quantization.py", line 360, in quantize self._executor.run(program=self._program, File "/usr/local/lib/python3.8/dist-packages/paddle/fluid/executor.py", line 1299, in run six.reraise(*sys.exc_info()) File "/usr/local/lib/python3.8/dist-packages/six.py", line 719, in reraise raise value File "/usr/local/lib/python3.8/dist-packages/paddle/fluid/executor.py", line 1285, in run res = self._run_impl( File "/usr/local/lib/python3.8/dist-packages/paddle/fluid/executor.py", line 1431, in _run_impl program = self._add_feed_fetch_ops( File "/usr/local/lib/python3.8/dist-packages/paddle/fluid/executor.py", line 788, in _add_feed_fetch_ops if not has_feed_operators(global_block, feed, feed_var_name): File "/usr/local/lib/python3.8/dist-packages/paddle/fluid/executor.py", line 281, in has_feed_operators raise Exception("'feed_targets' does not have {} variable". Exception: 'feed_targets' does not have x variable

maximli avatar Aug 11 '22 08:08 maximli

上边的问题已经解决了,使用paddle2onnx时报错,有算子不支持:

There's 2 ops are not supported yet =========== dequantize_linear =========== =========== quantize_linear ===========

各个版本: onnx 1.12.0 paddle2onnx 0.9.8 paddlepaddle-gpu 2.3.0 paddleslim 2.3.0

maximli avatar Aug 11 '22 09:08 maximli

@maximli paddle2onnx升级至1.0.0.rc3版本再试下吧

yghstill avatar Aug 12 '22 01:08 yghstill

@maximli paddle2onnx升级至1.0.0.rc3版本再试下吧

感谢回复,升级paddle2onnx版本,这个问题解决了。新的问题是,转换后的onnx大小与非量化的onnx大小差不多,还要大了一点点,请问是什么原因呢?理论上量化后的onnx是不是会变得更小,目前看量化后的参数文件和模型文件比非量化的文件要小很多。

maximli avatar Aug 12 '22 03:08 maximli

onnx存储的是int8范围内的fp32模型,并且多保存了一些量化scale信息,所以看着不降反升。你model.pdiparams文件是存储的int8格式,应该比原模型小很多的。

yghstill avatar Aug 12 '22 08:08 yghstill

Exception: 'feed_targets' does not have x variable

Exception: 'feed_targets' does not have x variable

我也遇到了这个问题,请问你是怎么解决的?

Zhang-O avatar Jan 10 '23 02:01 Zhang-O