# ModelPruning **Repository Path**: abonaventure/AD_ModelPruning ## Basic Information - **Project Name**: ModelPruning - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2025-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动驾驶大模型的“剪枝+蒸馏+量化” ## 关于模型Baseline训练 1. 构建自己的数据集(coco格式) 2. 在main.py中修改数据集地址,修改AD_ModelPruning/models/detr.py中的build和build_stu函数的种类数 3. 设置合理的batch_size 3. 直接```python main.py ``` ## 关于蒸馏训练 1. 再训练完baseline模型之后,修改***AD_ModelPruning/distill_train.py***里面教师和学生模型路径,如果要更改模型结构可以更改args 2. 蒸馏训练中的**T**200轮衰减一半,同时硬标签随着训练轮数逐步上涨最后为纯硬标签训练 ## 关于剪枝模型恢复精度 1. 剪枝代码对resnet50特化,所以在训练时backbone选择resnet50,对于Transfomer则不限层数 1. 在***retrain.py***中可以选择设置剪枝率,更改剪枝模型恢复精度方式:即更改训练代码train_one_epoch&&train_one_epoch_distill,按需选择即可 ## 关于模型量化 1.提供了两个接口PTQ.py和QAT.py >PTQ不需要重新训练,只是加入量化算子 >QAT可以微调,由于考虑边端算力,量化模型为cpu特化,微调周期极长 2.根据算力情况更改微调轮数~~~微调不一定使得精度上升~~ ## 所有路径都要重新校对 ## 精度比较 ![alt text](Figure_1.png) ## 模型大小和激活内存比较 ![alt text](Figure_2.png) ## 嵌入式算力、模型格式与帧数对照 ![alt text](Figure_3.png) `基于剪枝并恢复精度的模型测试所得`