tanluren / yolov3-channel-and-layer-pruning

yolov3 yolov4 channel and layer pruning, Knowledge Distillation 层剪枝,通道剪枝,知识蒸馏
Apache License 2.0
1.5k stars 446 forks source link

关于yolo4剪通道与剪层之后模型微调的一个问题 #135

Open Yi19960820 opened 3 years ago

Yi19960820 commented 3 years ago

你好,首先你的代码对我了解模型剪枝很有帮助,表示感谢!在剪枝剪层之后微调训练的时候出现了一个错误 捕获0 捕获1

error:Unable to find a valid cuDNN algorithm to run convolution

我替换了自己剪枝剪层之后的cfg文件及权重文件,出现了这个报错,在网上并没有得到解决方案,请问这是我配置环境的问题吗?显卡为rtx3080。

Yi19960820 commented 3 years ago

剪通道的percent为0.85,剪层数为13,剪完之后的map为55.4,但是微调出现了这个错误。

Yi19960820 commented 3 years ago

问题已解决

chingi071 commented 3 years ago

您好,想請問您一下, 您剪枝過後的模型微調後 mAP 有下降很多嗎? 我剪枝後的模型mAP 是0.72,但微調時 mAP 幾乎要到0了 不知道是不是因為我在 utils/datasets.py 裡更改了以下行的關係,想請教一下您有做哪些修正嗎? 謝謝。

1

Yi19960820 commented 3 years ago

您好,想 請問您一下,您剪枝過後的模型微調後mAP有下降很多嗎? 我剪枝後的模型mAP是0.72,但微調時mAP幾乎要到0了 不知道不是不是因為我在utils / datasets.py裡更改了以下行的關係,想請教一下您有做些修正嗎?謝謝。

1個

剪枝后的网络从0.83左右掉到0.55,微调100epoch之后map恢复到0.81左右,效果还行,您的图片由于浏览器的原因我看不到...微调的时候放入对应的cfg文件与权重就行,数据集还是用原来的数据,应该没什么太大问题。

anusha657 commented 3 years ago

Hi , @Yi19960820 ,

Can you please tell the folder structure you have followed for sparsity Training ? Because in my case only 1 image and its corresponding label is getting detected .

datasetImg2 DatasetImg1

train_coco.txt objcoco.zip test_coco.txt

Command Used - ! python train.py --cfg cfg/yolov4.cfg --data data/objcoco.data --weights /content/drive/MyDrive/Colab\ Notebooks/yolov4.weights --epochs 20 --batch-size 10 -sr --s 0.001 --prune 1

Issue :

Namespace(accumulate=2, adam=False, arc='defaultpw', batch_size=10, bucket='', cache_images=False, cfg='cfg/yolov4.cfg', data='data/objcoco.data', device='', epochs=20, evolve=False, img_size=416, img_weights=False, multi_scale=False, name='', nosave=False, notest=False, prebias=False, prune=1, rect=False, resume=False, s=0.001, sr=True, t_cfg='', t_weights='', transfer=False, var=None, weights='/content/drive/MyDrive/Colab Notebooks/yolov4.weights') Using CUDA device0 _CudaDeviceProperties(name='Tesla T4', total_memory=15079MB)

2020-12-28 14:31:58.282456: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1 loaded weights from /content/drive/MyDrive/Colab Notebooks/yolov4.weights

shortcut sparse training Reading labels (1 found, 0 missing, 0 empty for 1 images): 100% 1/1 [00:00<00:00, 3788.89it/s] Model Summary: 327 layers, 6.43631e+07 parameters, 6.43631e+07 gradients Starting training for 20 epochs...

Epoch gpu_mem GIoU obj cls total soft rratio targets img_size 0% 0/1 [00:00<?, ?it/s]learning rate: 1e-06 /usr/local/lib/python3.6/dist-packages/torch/cuda/memory.py:346: FutureWarning: torch.cuda.memory_cached has been renamed to torch.cuda.memory_reserved FutureWarning) 0/19 1.47G 2.96 12.2 7.66 22.8 0 0 11 416: 100% 1/1 [00:03<00:00, 3.33s/it] Class Images Targets P R mAP F1: 100% 1/1 [00:00<00:00, 1.66it/s] all 1 5 0 0 0 0

Epoch gpu_mem GIoU obj cls total soft rratio targets img_size 0% 0/1 [00:00<?, ?it/s]learning rate: 0.0011625 /usr/local/lib/python3.6/dist-packages/torch/cuda/memory.py:346: FutureWarning: torch.cuda.memory_cached has been renamed to torch.cuda.memory_reserved FutureWarning) 1/19 1.85G 2.79 12.2 7.68 22.7 0 0 15 416: 100% 1/1 [00:00<00:00, 2.17it/s] Class Images Targets P R mAP F1: 100% 1/1 [00:00<00:00, 4.58it/s] all 1 5 0 0 0 0