剪枝
开始剪枝
模型加载
修改主目录下的yolo.py 的参数"model_path"与"classes_path",更换为自己训练好的模型路径和类别类别文件路径。
剪枝
根据实际推理图片大小,修改主目录下的detect_pruned.py的参数 'img-size',如640;根据实际希望剪除模型的通道百分比,修改主目录下的detect_pruned.py的参数'ch_sparsity',如0.5。修改完成后,直接运行detect_pruned.py,即可完成模型的剪枝,剪枝后的模型默认保存为model_data/step{iterative_steps}-prunedmodel-{ch_sparsity}.pth
若需要更换保存路径,请进入utils/torch_utils.py修改:
剪枝后Fine-tune
修改train.py的参数“model_path”为剪枝模型权重路径
在yolo.py中的YoloBody实例化部分修改pruned参数为剩余的通道比例,例如剪枝率为0.7时
常见问题
再训练过程中,无法加载剪枝模型
一般为剪枝率的问题,需要将剪枝率分母修改成4,8的倍数,如1/4,5/8,9/16等,0.5也可行。
剪枝过程中,报结构错误
该剪枝方法目前仅支持以下模块:Linear, (Transposed) Conv, Normalization, PReLU, Embedding, MultiheadAttention, nn.Parameters and customized modules.以下运算符:split, concatenation, skip connection, flatten, reshape, view, all element-wise ops, etc.不需要剪枝或者无法剪枝的模块,请添加到参数ignored_layers。
Last updated