PaddlePaddle / PaddleSlim

PaddleSlim is an open-source library for deep model compression and architecture search.
https://paddleslim.readthedocs.io/zh_CN/latest/
Apache License 2.0
1.56k stars 345 forks source link

paddleslim对ssd_mobilenet_v1进行剪裁出现的推理速度等相关问题 #1305

Closed SunYF-0729 closed 8 months ago

SunYF-0729 commented 2 years ago

版本: image 问题: 剪裁0.3%后,flops减少,在验证集上预测速度变快,但量化后部署到arm和intel fpga上推理速度反而变慢 剪裁前: R_WVA%XZC3NDRTVXQ4P9H D 7YY8_C (KVDCBFS DWECHWG 剪裁后: {A_HX5YEMZ{CW6X}_F7QTYJ 5_6DQ}QV06@A@X)V1`({BGQ 以下是我的训练过程: image 我参照量化的congfig的设置方式加了个prune的congfig,在train中加入slim_config_prune,config如下: image 这里训练的时候我其实设的全为0.3。这里的参数名称我不清楚该裁剪哪个,不让剪裁的系统会自己跳过,所以都写上去。 剪裁后导出的静态模型从23.4M变为14.7M,但是部署到板子上推理照片的速度从350ms变为了610ms,求大佬解答!!!

yghstill commented 2 years ago

@SunYF-0729 剪裁完部署到arm和intel fpga上速度变慢的问题我们找相关同学看下,你使用paddle Inference在GPU上部署预测速度怎么样?

SunYF-0729 commented 2 years ago

@SunYF-0729 剪裁完部署到arm和intel fpga上速度变慢的问题我们找相关同学看下,你使用paddle Inference在GPU上部署预测速度怎么样?

还没有在gpu上试过,我搜查文献,在硬件上推理变慢是因为对权重的非结构化剪裁会产生一定的编码问题,所以部署到硬件反而会让速度变慢,但是我看我的这个应该是直接对卷积核进行剪裁去除,应该没这个问题,所以很费解

SunYF-0729 commented 2 years ago

@SunYF-0729 剪裁完部署到arm和intel fpga上速度变慢的问题我们找相关同学看下,你使用paddle Inference在GPU上部署预测速度怎么样?

我这个网络结构的pruned-params也是根据prune_config的print_params来设置的,这个是我调用不了static/slim/sensitive/sensitive.py对我自己模型的结构进行print_params才采用的无奈之举。全设为0.3也是因为调用不了sensitive.py没办法进行敏感度分析。

SunYF-0729 commented 2 years ago

https://github.com/PaddlePaddle/PaddleDetection/issues/6453#issue-1306564809 @yghstill 前辈,还有这个问题我也很困扰,麻烦您找人看下,万分感谢您的回复,期待您指导!

zzjjay commented 2 years ago

麻烦提供下剪枝后的模型文件(*.pdmodel) @SunYF-0729

SunYF-0729 commented 2 years ago

麻烦提供下剪枝后的模型文件(*.pdmodel) @SunYF-0729

这里不支持传输文件,请您给个其他方式吧

zzjjay commented 2 years ago

直接将文件拽入输入框即可~

麻烦提供下剪枝后的模型文件(*.pdmodel) @SunYF-0729

这里怎么提供

SunYF-0729 commented 2 years ago

直接将文件拽入输入框即可~

麻烦提供下剪枝后的模型文件(*.pdmodel) @SunYF-0729

这里怎么提供 image

yu0802chao commented 2 years ago

请问你们现在能做到多少ms,这个裁剪率已经很高了

SunYF-0729 commented 2 years ago

请问你们现在能做到多少ms,这个裁剪率已经很高了

只有量化的能到350,裁剪加量化没做出来呢

yu0802chao commented 2 years ago

请问你们现在能做到多少ms,这个裁剪率已经很高了

只有量化的能到350,裁剪加量化没做出来呢

纯量化就能到300多,是模型导出时把卷积连续映射到加速器了吗?

SunYF-0729 commented 2 years ago

没有,我只做了量化。其他的硬件部分我不清楚,你也在做这个模型的剪裁吗

------------------ 原始邮件 ------------------ 发件人: "PaddlePaddle/PaddleSlim" @.>; 发送时间: 2022年7月19日(星期二) 下午3:16 @.>; @.**@.>; 主题: Re: [PaddlePaddle/PaddleSlim] paddleslim对ssd_mobilenet_v1进行剪裁出现的推理速度等相关问题 (Issue #1305)

请问你们现在能做到多少ms,这个裁剪率已经很高了

只有量化的能到350,裁剪加量化没做出来呢

纯量化就能到300多,是模型导出时把卷积连续映射到加速器了吗?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

yu0802chao commented 2 years ago

没有,我只做了量化。其他的硬件部分我不清楚,你也在做这个模型的剪裁吗 ------------------ 原始邮件 ------------------ 发件人: "PaddlePaddle/PaddleSlim" @.>; 发送时间: 2022年7月19日(星期二) 下午3:16 @.>; @.**@.>; 主题: Re: [PaddlePaddle/PaddleSlim] paddleslim对ssd_mobilenet_v1进行剪裁出现的推理速度等相关问题 (Issue #1305) 请问你们现在能做到多少ms,这个裁剪率已经很高了 只有量化的能到350,裁剪加量化没做出来呢 纯量化就能到300多,是模型导出时把卷积连续映射到加速器了吗? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

是的,可能是你直接用静态图做的,如果方便的话可以看一下模型吗

SunYF-0729 commented 2 years ago

没有,我只做了量化。其他的硬件部分我不清楚,你也在做这个模型的剪裁吗 ------------------ 原始邮件 ------------------ 发件人: "PaddlePaddle/PaddleSlim" @.**>; 发送时间: 2022年7月19日(星期二) 下午3:16 @.**>; @.**@.**>; 主题: Re: [PaddlePaddle/PaddleSlim] paddleslim对ssd_mobilenetv1进行剪裁出现的推理速度等相关问题 (Issue #1305) 请问你们现在能做到多少ms,这个裁剪率已经很高了 只有量化的能到350,裁剪加量化没做出来呢 纯量化就能到300多,是模型导出时把卷积连续映射到加速器了吗? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @_.***>

是的,可能是你直接用静态图做的,如果方便的话可以看一下模型吗

我用的动态图做的量化,边训练边模拟量化然后用paddlelite部署,因为静态图有一系列的问题我不清楚,也做不出来,就没做了,这里不能发模型,方便的话邮件交流吧

wangplin commented 2 years ago

只做量化能达到350ms吗,有用了dorefa吗?

SunYF-0729 commented 2 years ago

只做量化能达到350ms吗,有用了dorefa吗?

没有用,我这个裁剪搞不定,兄弟能指导一下不

wangplin commented 2 years ago

加下微信吧,NSwpl255598

personqianduixue commented 2 years ago

@SunYF-0729 请问你这个模型的mAP怎么到77%的,你是用VOC训练的吗?我最高73.6%

liopos commented 1 year ago

@SunYF-0729 请问用动态图怎么裁剪这种检测模型呢,我使用L1NormFilterPruner的时候inputs加载总出错,大佬能指导指导吗?