yolov5目标检测网络稀疏训练没效果

yolov5稀疏训练的结果成这样

img


相关代码

parser.add_argument('--st', action='store_true', default=True, help='train with L1 sparsity normalization')
    parser.add_argument('--sr', type=float, default=0.0002, help='L1 normal sparse rate')
 # Backward
                    loss.backward()
                    # scaler.scale(loss).backward()
                    # # ============================= sparsity training ========================== #
                    srtmp = opt.sr * (1 - 0.9 * epoch / epochs)
                    if opt.st:
                        ignore_bn_list = []
                        for k, m in model.named_modules():
                            if isinstance(m, Bottleneck):
                                if m.add:
                                    ignore_bn_list.append(k.rsplit(".", 2)[0] + ".cv1.bn")
                                    ignore_bn_list.append(k + '.cv1.bn')
                                    ignore_bn_list.append(k + '.cv2.bn')
                            if isinstance(m, nn.BatchNorm2d) and (k not in ignore_bn_list):
                                m.weight.grad.data.add_(srtmp * torch.sign(m.weight.data))  # L1
                                m.bias.grad.data.add_(opt.sr * 10 * torch.sign(m.bias.data))  # L1

                        # # ============================= sparsity training ========================== #

                        optimizer.step()
                        # scaler.step(optimizer)  # optimizer.step
                        # scaler.update()
                        optimizer.zero_grad()

这个完全没有训练到吧?验证集和测试集的指标全都一动不动的。