Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

yolov4-tiny retrain #99

Open
chingi071 opened this issue Dec 17, 2020 · 9 comments
Open

yolov4-tiny retrain #99

chingi071 opened this issue Dec 17, 2020 · 9 comments

Comments

@chingi071
Copy link

我在retrain 剪支過的模型時,出現了以下問題
Traceback (most recent call last):
File "train.py", line 985, in
train(hyp) # train normally
File "train.py", line 164, in train
load_darknet_weights(model, weights, pt=opt.pt, BN_Fold=opt.BN_Fold)
File "/home/joy/yolo_darknet/YOLOv3v4-ModelCompression-MultidatasetTraining-Multibackbone/models.py", line 632, in load_darknet_weights
conv_w = torch.from_numpy(weights[ptr:ptr + num_w]).view_as(conv_layer.weight)
RuntimeError: shape '[241, 363, 3, 3]' is invalid for input of size 687660

我的指令是
python3 train.py --data ../Person_detection/cfg/person.data -pt --cfg ../prune_0.1_Person_detection/prune_0.1_cfg/prune_0.1_yolov4-tiny-obj.cfg --weights ../prune_0.1_Person_detection/prune_0.1_weights/prune_0.1_yolov4-tiny-obj_500000.weights --img-size 160

想請問一下是不是我下的指令哪邊有錯誤,謝謝。

@SpursLipu
Copy link
Owner

你把 -pt去掉就可以了。

@chingi071
Copy link
Author

您好,
想請問一下 -pt 不是指使用 pretrain model嗎?
另外,我有試過將 -pt 去掉,但這樣mAP幾乎都變成0了,請問這樣該如何解決呢?謝謝您。

@SpursLipu
Copy link
Owner

-pt是在使用coco80类预训练文件的时候使用。mAP训练也无法提升吗?

@chingi071
Copy link
Author

您好,我剛剛又重新試了一次不加 -pt 的指令,發現mAP有變化了
但是他訓練時 mAP 會突然變得很低 請問這是正常的現象嗎? 謝謝您。

Epoch gpu_mem GIoU obj cls total targets img_size
82/299 0.273G 1.21 5.78 0 6.99 4 160: 100%|██| 547/547 [00:17<00:00, 31.75it/s]
Class Images Targets P R [email protected] F1: 100%|██| 137/137 [00:09<00:00, 15.12it/s]
all 2.18e+03 3.88e+03 0.655 0.559 0.538 0.603

 Epoch   gpu_mem      GIoU       obj       cls     total   targets  img_size
83/299    0.273G       1.2      5.76         0      6.97         1       160: 100%|██| 547/547 [00:17<00:00, 31.42it/s]
           Class    Images   Targets         P         R   [email protected]        F1: 100%|██| 137/137 [00:09<00:00, 14.15it/s]
             all  2.18e+03  3.88e+03     0.151     0.283      0.21     0.197

 Epoch   gpu_mem      GIoU       obj       cls     total   targets  img_size
84/299    0.273G      1.22       5.7         0      6.92         2       160: 100%|██| 547/547 [00:17<00:00, 31.04it/s]
           Class    Images   Targets         P         R   [email protected]        F1: 100%|██| 137/137 [00:09<00:00, 14.18it/s]
             all  2.18e+03  3.88e+03     0.476     0.421      0.36     0.447

 Epoch   gpu_mem      GIoU       obj       cls     total   targets  img_size
85/299    0.273G       1.2      5.73         0      6.93         1       160: 100%|██| 547/547 [00:17<00:00, 31.19it/s]
           Class    Images   Targets         P         R   [email protected]        F1: 100%|██| 137/137 [00:09<00:00, 14.74it/s]
             all  2.18e+03  3.88e+03     0.657     0.545     0.523     0.596

 Epoch   gpu_mem      GIoU       obj       cls     total   targets  img_size
86/299    0.273G      1.21      5.72         0      6.93         1       160: 100%|██| 547/547 [00:17<00:00, 30.74it/s]
           Class    Images   Targets         P         R   [email protected]        F1: 100%|██| 137/137 [00:09<00:00, 14.40it/s]
             all  2.18e+03  3.88e+03     0.533     0.483     0.418     0.507

 Epoch   gpu_mem      GIoU       obj       cls     total   targets  img_size
87/299    0.273G       1.2      5.67         0      6.87         2       160: 100%|██| 547/547 [00:41<00:00, 13.10it/s]
           Class    Images   Targets         P         R   [email protected]        F1: 100%|██| 137/137 [00:24<00:00,  5.57it/s]
             all  2.18e+03  3.88e+03     0.139    0.0649    **0.0265**    0.0885

@SpursLipu
Copy link
Owner

不会一直很低吧?还是要看最后的best.pt,有突变的很低也正常

@chingi071
Copy link
Author

您好,後來我retrain完後 mAP有上升一點。
另外我想請教一下,retrain完的 .pt 是否可以轉換為 onnx 或是 darknet weights呢?
謝謝您。

@SpursLipu
Copy link
Owner

转化是darknet weights是可以的,你可以用我的convert.py这个文件。

@chingi071
Copy link
Author

您好,我試了轉換 .pt 的指令
python3 convert.py --cfg ../prune_0.1_Person_detection_normal/prune_0.1_cfg/prune_0.1_yolov4-tiny-obj.cfg --weights weights/normal_1218/best.pt --img_size 160 --source ../Person_detection/tiff_data

但出現以下錯誤,請問是有哪邊需要修改的嗎? 謝謝您。

Traceback (most recent call last):
File "convert.py", line 218, in
convert()
File "convert.py", line 24, in convert
model.load_state_dict(torch.load(weights, map_location=device)['model'])
File "/home/hamlet6379/.local/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1052, in load_state_dict
self.class.name, "\n\t".join(error_msgs)))
RuntimeError: Error(s) in loading state_dict for Darknet:
Missing key(s) in state_dict: "total_ops", "total_params", "module_list.total_ops", "module_list.total_params", "module_list.0.total_ops", "module_list.0.total_params", "module_list.1.total_ops", "module_list.1.total_params", "module_list.2.total_ops", "module_list.2.total_params", "module_list.3.total_ops", "module_list.3.total_params", "module_list.4.total_ops", "module_list.4.total_params", "module_list.5.total_ops", "module_list.5.total_params", "module_list.6.total_ops", "module_list.6.total_params", "module_list.7.total_ops", "module_list.7.total_params", "module_list.8.total_ops", "module_list.8.total_params", "module_list.10.total_ops", "module_list.10.total_params", "module_list.11.total_ops", "module_list.11.total_params", "module_list.12.total_ops", "module_list.12.total_params", "module_list.13.total_ops", "module_list.13.total_params", "module_list.14.total_ops", "module_list.14.total_params", "module_list.15.total_ops", "module_list.15.total_params", "module_list.16.total_ops", "module_list.16.total_params", "module_list.18.total_ops", "module_list.18.total_params", "module_list.19.total_ops", "module_list.19.total_params", "module_list.20.total_ops", "module_list.20.total_params", "module_list.21.total_ops", "module_list.21.total_params", "module_list.22.total_ops", "module_list.22.total_params", "module_list.23.total_ops", "module_list.23.total_params", "module_list.24.total_ops", "module_list.24.total_params", "module_list.26.total_ops", "module_list.26.total_params", "module_list.27.total_ops", "module_list.27.total_params", "module_list.28.total_ops", "module_list.28.total_params", "module_list.29.total_ops", "module_list.29.total_params", "module_list.30.total_ops", "module_list.30.total_params", "module_list.31.total_ops", "module_list.31.total_params", "module_list.32.total_ops", "module_list.32.total_params", "module_list.34.total_ops", "module_list.34.total_params", "module_list.35.total_ops", "module_list.35.total_params", "module_list.36.total_ops", "module_list.36.total_params", "module_list.37.total_ops", "module_list.37.total_params".

@tarun-ssharma
Copy link

tarun-ssharma commented Apr 15, 2022

Getting a similar error after quantization for tiny-yolov4 with --quantzied=1:

RuntimeError: Error(s) in loading state_dict for Darknet:
	Unexpected key(s) in state_dict: "module_list.0.Conv2d.activation_quantizer.scale", "module_list.0.Conv2d.activation_quantizer.zero_point", "module_list.0.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.0.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.0.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.0.Conv2d.weight_quantizer.scale", "module_list.0.Conv2d.weight_quantizer.zero_point", "module_list.0.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.0.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.0.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.1.Conv2d.activation_quantizer.scale", "module_list.1.Conv2d.activation_quantizer.zero_point", "module_list.1.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.1.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.1.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.1.Conv2d.weight_quantizer.scale", "module_list.1.Conv2d.weight_quantizer.zero_point", "module_list.1.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.1.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.1.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.2.Conv2d.activation_quantizer.scale", "module_list.2.Conv2d.activation_quantizer.zero_point", "module_list.2.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.2.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.2.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.2.Conv2d.weight_quantizer.scale", "module_list.2.Conv2d.weight_quantizer.zero_point", "module_list.2.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.2.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.2.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.3.scale", "module_list.3.float_max_list", "module_list.4.Conv2d.activation_quantizer.scale", "module_list.4.Conv2d.activation_quantizer.zero_point", "module_list.4.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.4.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.4.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.4.Conv2d.weight_quantizer.scale", "module_list.4.Conv2d.weight_quantizer.zero_point", "module_list.4.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.4.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.4.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.5.Conv2d.activation_quantizer.scale", "module_list.5.Conv2d.activation_quantizer.zero_point", "module_list.5.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.5.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.5.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.5.Conv2d.weight_quantizer.scale", "module_list.5.Conv2d.weight_quantizer.zero_point", "module_list.5.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.5.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.5.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.6.scale", "module_list.6.float_max_list", "module_list.7.Conv2d.activation_quantizer.scale", "module_list.7.Conv2d.activation_quantizer.zero_point", "module_list.7.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.7.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.7.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.7.Conv2d.weight_quantizer.scale", "module_list.7.Conv2d.weight_quantizer.zero_point", "module_list.7.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.7.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.7.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.8.scale", "module_list.8.float_max_list", "module_list.10.Conv2d.activation_quantizer.scale", "module_list.10.Conv2d.activation_quantizer.zero_point", "module_list.10.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.10.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.10.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.10.Conv2d.weight_quantizer.scale", "module_list.10.Conv2d.weight_quantizer.zero_point", "module_list.10.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.10.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.10.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.11.scale", "module_list.11.float_max_list", "module_list.12.Conv2d.activation_quantizer.scale", "module_list.12.Conv2d.activation_quantizer.zero_point", "module_list.12.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.12.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.12.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.12.Conv2d.weight_quantizer.scale", "module_list.12.Conv2d.weight_quantizer.zero_point", "module_list.12.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.12.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.12.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.13.Conv2d.activation_quantizer.scale", "module_list.13.Conv2d.activation_quantizer.zero_point", "module_list.13.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.13.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.13.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.13.Conv2d.weight_quantizer.scale", "module_list.13.Conv2d.weight_quantizer.zero_point", "module_list.13.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.13.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.13.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.14.scale", "module_list.14.float_max_list", "module_list.15.Conv2d.activation_quantizer.scale", "module_list.15.Conv2d.activation_quantizer.zero_point", "module_list.15.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.15.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.15.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.15.Conv2d.weight_quantizer.scale", "module_list.15.Conv2d.weight_quantizer.zero_point", "module_list.15.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.15.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.15.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.16.scale", "module_list.16.float_max_list", "module_list.18.Conv2d.activation_quantizer.scale", "module_list.18.Conv2d.activation_quantizer.zero_point", "module_list.18.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.18.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.18.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.18.Conv2d.weight_quantizer.scale", "module_list.18.Conv2d.weight_quantizer.zero_point", "module_list.18.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.18.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.18.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.19.scale", "module_list.19.float_max_list", "module_list.20.Conv2d.activation_quantizer.scale", "module_list.20.Conv2d.activation_quantizer.zero_point", "module_list.20.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.20.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.20.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.20.Conv2d.weight_quantizer.scale", "module_list.20.Conv2d.weight_quantizer.zero_point", "module_list.20.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.20.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.20.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.21.Conv2d.activation_quantizer.scale", "module_list.21.Conv2d.activation_quantizer.zero_point", "module_list.21.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.21.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.21.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.21.Conv2d.weight_quantizer.scale", "module_list.21.Conv2d.weight_quantizer.zero_point", "module_list.21.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.21.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.21.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.22.scale", "module_list.22.float_max_list", "module_list.23.Conv2d.activation_quantizer.scale", "module_list.23.Conv2d.activation_quantizer.zero_point", "module_list.23.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.23.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.23.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.23.Conv2d.weight_quantizer.scale", "module_list.23.Conv2d.weight_quantizer.zero_point", "module_list.23.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.23.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.23.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.24.scale", "module_list.24.float_max_list", "module_list.26.Conv2d.activation_quantizer.scale", "module_list.26.Conv2d.activation_quantizer.zero_point", "module_list.26.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.26.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.26.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.26.Conv2d.weight_quantizer.scale", "module_list.26.Conv2d.weight_quantizer.zero_point", "module_list.26.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.26.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.26.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.27.Conv2d.activation_quantizer.scale", "module_list.27.Conv2d.activation_quantizer.zero_point", "module_list.27.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.27.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.27.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.27.Conv2d.weight_quantizer.scale", "module_list.27.Conv2d.weight_quantizer.zero_point", "module_list.27.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.27.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.27.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.28.Conv2d.activation_quantizer.scale", "module_list.28.Conv2d.activation_quantizer.zero_point", "module_list.28.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.28.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.28.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.28.Conv2d.weight_quantizer.scale", "module_list.28.Conv2d.weight_quantizer.zero_point", "module_list.28.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.28.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.28.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.29.Conv2d.activation_quantizer.scale", "module_list.29.Conv2d.activation_quantizer.zero_point", "module_list.29.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.29.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.29.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.29.Conv2d.weight_quantizer.scale", "module_list.29.Conv2d.weight_quantizer.zero_point", "module_list.29.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.29.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.29.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.31.scale", "module_list.31.float_max_list", "module_list.32.Conv2d.activation_quantizer.scale", "module_list.32.Conv2d.activation_quantizer.zero_point", "module_list.32.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.32.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.32.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.32.Conv2d.weight_quantizer.scale", "module_list.32.Conv2d.weight_quantizer.zero_point", "module_list.32.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.32.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.32.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.34.scale", "module_list.34.float_max_list", "module_list.35.Conv2d.activation_quantizer.scale", "module_list.35.Conv2d.activation_quantizer.zero_point", "module_list.35.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.35.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.35.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.35.Conv2d.weight_quantizer.scale", "module_list.35.Conv2d.weight_quantizer.zero_point", "module_list.35.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.35.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.35.Conv2d.weight_quantizer.range_tracker.first_w", "module_list.36.Conv2d.activation_quantizer.scale", "module_list.36.Conv2d.activation_quantizer.zero_point", "module_list.36.Conv2d.activation_quantizer.range_tracker.min_val", "module_list.36.Conv2d.activation_quantizer.range_tracker.max_val", "module_list.36.Conv2d.activation_quantizer.range_tracker.first_a", "module_list.36.Conv2d.weight_quantizer.scale", "module_list.36.Conv2d.weight_quantizer.zero_point", "module_list.36.Conv2d.weight_quantizer.range_tracker.min_val", "module_list.36.Conv2d.weight_quantizer.range_tracker.max_val", "module_list.36.Conv2d.weight_quantizer.range_tracker.first_w"

@SpursLipu Any suggestions to make it work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants