如何使用sensitive来确定yolov3 mobilenetv3的剪枝率呀?
我按照https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.1/static/slim/sensitive 这个指示来做;想要查看yolov3 mobilenetv3的敏感度,但直接报错
我发现只有PaddleDtection2.4以下的才有这个sensitive。我使用PaddlePaddle2.1/2.4 PaddleDetection2.1/2.4 都报这个错误。、 是怎么回事呢? 就是如何知道yolov3 mobilenetv3的敏感度呀?? 想得到yolov3 mobilenetv1那种图
这里的敏感度分析使用的是静态图代码,其中 ‘from ppdet.data.reader import create_reader’ 调用的是 static/ppdet/data/reader.py 中的函数,由于pip安装的是动态图paddledection,所以会找不到该函数。 解决方法:
- 可以pip uninstall paddledection后重新执行;
- 或者修改sensitive.py中 create_reader的调用路径;
是从重新安装paddledection版本可以吗 0.5版本?,那对应的paddle是多少版本呢?因为我单独改create_reader,后续很多方法调用路径也有问题。
安装0.5版本可以调用create_reader,但对应的paddle版本太低了,可能会有新的问题; 卸载paddledection后,直接执行sensitive.py就行了
paddlepaddle 2.1。paddleslim2.1 加上 PaddleDetedction工具包就可以执行吗? 我会有另外的问题,
aistudio@jupyter-2373595-7476238:~/PaddleDetection$ python static/slim/sensitive/sensitive.py -c configs/yolov3/yolov3_mobilenet_v3_270e_voc.yml -p
[02-22 11:04:27 MainThread @logger.py:242] Argv: static/slim/sensitive/sensitive.py -c configs/yolov3/yolov3_mobilenet_v3_270e_voc.yml -p
[02-22 11:04:27 MainThread @utils.py:79] WRN paddlepaddle version: 2.1.2. The dynamic graph version of PARL is under development, not fully tested and supported
Traceback (most recent call last):
File "static/slim/sensitive/sensitive.py", line 36, in
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/parl/remote/communication.py", line 38, in
能否有一个版本对应能跑出来的吗?就是目标检测网络明感度分析? 使用paddledetection。
在剪枝的时候,我是这样配置的剪枝率。因为查不到其敏感度,我根据ppyolo mbv3 large的剪枝率来配置的。您们有关于这部分的配置吗?
这个剪枝率应该设置反了吧,0.75太大了,会导致较大的精度损失,应该是0.25比较合理。
我们没有做过ppyolo mbv3 large的剪枝实验,可以按照示例去尝试运行剪枝敏感度分析~
我就是设置的0.75,只剪枝了6个层,精度最后还行。voc上精度下降2-3%。 敏感度分析就是按照示例分析不出来。。。报错。。。。。。
我看你们文档说敏感度分析的定义,是按照裁剪某一层的10%,然后直接测试其精度,我这边直接像上面那样配置,如果只裁剪某一个卷积层的比如 conv2d_62.w_0的10%,这样配置。直接在原模型上去测试精度,精度几乎都没了.....
python tools/eval.py -c configs/yolov3/yolov3_mobilenet_v3_large_270e_voc.yml --slim_config configs/slim/prune/yolov3_mbv3_prune_fpgm.yml -o weights=yolov3_mobilenet_v3_large_270e_voc.pdparams
敏感度分析就是按照示例分析不出来。。。报错。。。。。。
这个报错可以按照上面的修改建议试试呢
直接在原模型上去测试精度,精度几乎都没了.....
可以尝试更换l2-norm指标看看,也可能就是说明该conv比较重要,裁剪容易导致较大精度损失,需要后续重新finetune。