IDEA-Research / detrex

detrex is a research platform for DETR-based object detection, segmentation, pose estimation and other visual recognition tasks.
https://detrex.readthedocs.io/en/latest/
Apache License 2.0
1.9k stars 199 forks source link

找不到相关配置文件 #326

Closed todesti2 closed 6 months ago

todesti2 commented 6 months ago

你好!感谢您的帮助。 是这样的,我看了很久这个detrex,里面的配置文件以及里面的超参数我老是找不到(请问有解决办法吗),就凭感觉改了一下,出现了下面的信息:

`WARNING [12/11 00:35:18 fvcore.common.checkpoint]: The checkpoint state_dict contains keys that are not used by the model: fc.{bias, weight} [12/11 00:35:18 d2.engine.train_loop]: Starting training from iteration 0 [12/11 00:35:20 fvcore.common.checkpoint]: Saving checkpoint to ./output/detr_r50_dc5_300ep/model_0000000.pth [12/11 00:35:20 detectron2]: Run evaluation without EMA. WARNING [12/11 00:35:20 d2.data.datasets.coco]: Category ids in annotations are not in [1, #categories]! We'll apply a mapping for you.

[12/11 00:35:20 d2.data.datasets.coco]: Loaded 548 images in COCO format from /root/autodl-tmp/visdrone/val.json [12/11 00:35:21 d2.data.build]: Distribution of instances among all 10 categories: category #instances category #instances category #instances
pedestrian 8844 people 5125 bicycle 1287
car 14064 van 1975 truck 750
tricycle 1045 awning-tric.. 532 bus 251
motor 4886
total 38759
[12/11 00:35:21 d2.data.common]: Serializing 548 elements to byte tensors and concatenating them all ... [12/11 00:35:21 d2.data.common]: Serialized dataset takes 1.29 MiB [12/11 00:35:21 d2.evaluation.evaluator]: Start inference on 548 batches [12/11 00:35:22 d2.evaluation.evaluator]: Inference done 11/548. Dataloading: 0.0013 s/iter. Inference: 0.0863 s/iter. Eval: 0.0004 s/iter. Total: 0.0879 s/iter. ETA=0:00:47 [12/11 00:35:27 d2.evaluation.evaluator]: Inference done 68/548. Dataloading: 0.0018 s/iter. Inference: 0.0863 s/iter. Eval: 0.0005 s/iter. Total: 0.0887 s/iter. ETA=0:00:42 [12/11 00:35:32 d2.evaluation.evaluator]: Inference done 123/548. Dataloading: 0.0035 s/iter. Inference: 0.0863 s/iter. Eval: 0.0005 s/iter. Total: 0.0904 s/iter. ETA=0:00:38 [12/11 00:35:37 d2.evaluation.evaluator]: Inference done 177/548. Dataloading: 0.0029 s/iter. Inference: 0.0863 s/iter. Eval: 0.0019 s/iter. Total: 0.0912 s/iter. ETA=0:00:33 [12/11 00:35:42 d2.evaluation.evaluator]: Inference done 234/548. Dataloading: 0.0026 s/iter. Inference: 0.0863 s/iter. Eval: 0.0016 s/iter. Total: 0.0905 s/iter. ETA=0:00:28 [12/11 00:35:47 d2.evaluation.evaluator]: Inference done 291/548. Dataloading: 0.0024 s/iter. Inference: 0.0863 s/iter. Eval: 0.0013 s/iter. Total: 0.0901 s/iter. ETA=0:00:23 [12/11 00:35:52 d2.evaluation.evaluator]: Inference done 348/548. Dataloading: 0.0023 s/iter. Inference: 0.0864 s/iter. Eval: 0.0012 s/iter. Total: 0.0899 s/iter. ETA=0:00:17 [12/11 00:35:57 d2.evaluation.evaluator]: Inference done 405/548. Dataloading: 0.0022 s/iter. Inference: 0.0864 s/iter. Eval: 0.0011 s/iter. Total: 0.0897 s/iter. ETA=0:00:12 [12/11 00:36:02 d2.evaluation.evaluator]: Inference done 462/548. Dataloading: 0.0021 s/iter. Inference: 0.0863 s/iter. Eval: 0.0010 s/iter. Total: 0.0895 s/iter. ETA=0:00:07 [12/11 00:36:07 d2.evaluation.evaluator]: Inference done 519/548. Dataloading: 0.0020 s/iter. Inference: 0.0863 s/iter. Eval: 0.0009 s/iter. Total: 0.0894 s/iter. ETA=0:00:02 [12/11 00:36:10 d2.evaluation.evaluator]: Total inference time: 0:00:48.525606 (0.089366 s / iter per device, on 1 devices) [12/11 00:36:10 d2.evaluation.evaluator]: Total inference pure compute time: 0:00:46 (0.086349 s / iter per device, on 1 devices) [12/11 00:36:10 d2.evaluation.coco_evaluation]: Preparing results for COCO format ... [12/11 00:36:10 d2.evaluation.coco_evaluation]: Evaluating predictions with unofficial COCO API... Loading and preparing results... DONE (t=0.30s) creating index... index created! [12/11 00:36:10 d2.evaluation.fast_eval_api]: Evaluate annotation type bbox [12/11 00:36:11 d2.evaluation.fast_eval_api]: COCOeval_opt.evaluate() finished in 0.75 seconds. [12/11 00:36:11 d2.evaluation.fast_eval_api]: Accumulating evaluation results... [12/11 00:36:11 d2.evaluation.fast_eval_api]: COCOeval_opt.accumulate() finished in 0.11 seconds. Average Precision (AP) @[ IoU=0.50:0.95 area= all maxDets=100 ] = 0.000 Average Precision (AP) @[ IoU=0.50 area= all maxDets=100 ] = 0.000 Average Precision (AP) @[ IoU=0.75 area= all maxDets=100 ] = 0.000 Average Precision (AP) @[ IoU=0.50:0.95 area= small maxDets=100 ] = 0.000 Average Precision (AP) @[ IoU=0.50:0.95 area=medium maxDets=100 ] = 0.000 Average Precision (AP) @[ IoU=0.50:0.95 area= large maxDets=100 ] = 0.000 Average Recall (AR) @[ IoU=0.50:0.95 area= all maxDets= 1 ] = 0.000 Average Recall (AR) @[ IoU=0.50:0.95 area= all maxDets= 10 ] = 0.000 Average Recall (AR) @[ IoU=0.50:0.95 area= all maxDets=100 ] = 0.000 Average Recall (AR) @[ IoU=0.50:0.95 area= small maxDets=100 ] = 0.000 Average Recall (AR) @[ IoU=0.50:0.95 area=medium maxDets=100 ] = 0.000 Average Recall (AR) @[ IoU=0.50:0.95 area= large maxDets=100 ] = 0.000 [12/11 00:36:11 d2.evaluation.coco_evaluation]: Evaluation results for bbox: AP AP50 AP75 APs APm APl
0.000 0.000 0.000 0.000 0.000 0.000
[12/11 00:36:11 d2.evaluation.coco_evaluation]: Per-category bbox AP: category AP category AP category AP
pedestrian 0.000 people 0.000 bicycle 0.000
car 0.000 van 0.000 truck 0.000
tricycle 0.000 awning-tricycle 0.000 bus 0.000
motor 0.000 `
todesti2 commented 6 months ago

这个的每一轮速度非常快,这让我心慌,我总感觉哪里不对劲,且精度一直为0

todesti2 commented 6 months ago

说实话,我有些摸不着头脑,例如,总的轮次在哪里呢

这是执行之后输出的config.yaml。
dataloader: evaluator: {target: detectron2.evaluation.COCOEvaluator, dataset_name: '${..test.dataset.names}'} test: target: detectron2.data.build_detection_test_loader dataset: {target: detectron2.data.get_detection_dataset_dicts, filter_empty: false, names: VisDrone2019-DET-val} mapper: target: detrex.data.DetrDatasetMapper augmentation:

rentainhe commented 6 months ago

detrex的超参数只有两个部分:

rentainhe commented 6 months ago

跑新的数据集需要去修改相关dataset的config,并且修改模型的num_classes等,还要修改所有和类别有关的config

todesti2 commented 6 months ago

跑新的数据集需要去修改相关dataset的config,并且修改模型的num_classes等,还要修改所有和类别有关的config

感谢您如此及时的回复!这让我着急的心平静了不少。

我稍后按照您的指引继续尝试,我还想问一下: train.max_iter = 90000 是指整个训练总轮次吗

rentainhe commented 6 months ago

跑新的数据集需要去修改相关dataset的config,并且修改模型的num_classes等,还要修改所有和类别有关的config

感谢您如此及时的回复!这让我着急的心平静了不少。

我稍后按照您的指引继续尝试,我还想问一下: train.max_iter = 90000 是指整个训练总轮次吗

是的,表示整个训练只跑90000个steps,具体等价于多少次epoch需要自己根据数据集大小,total_batch_size转换一下,这边90000是默认跑的COCO 12epoch

todesti2 commented 6 months ago

跑新的数据集需要去修改相关dataset的config,并且修改模型的num_classes等,还要修改所有和类别有关的config

感谢您如此及时的回复!这让我着急的心平静了不少。 我稍后按照您的指引继续尝试,我还想问一下: train.max_iter = 90000 是指整个训练总轮次吗

是的,表示整个训练只跑90000个steps,具体等价于多少次epoch需要自己根据数据集大小,total_batch_size转换一下,这边90000是默认跑的COCO 12epoch

您好,您说90000是默认跑的COCO 12epoch,我看到total_batch_size是16,这是有什么公式计算出来的吗?比如我使用的visdrone数据集比COCO小很多,如果我想尝试6epoch,那么这些参数应该如何设置呢?

再次感谢您耐心的回复!!

rentainhe commented 6 months ago

在data config的注释中有写: https://github.com/IDEA-Research/detrex/blob/5d19a5c5bff80977cc60ea151e492ba5ac189801/configs/common/coco_schedule.py#L7

主要就是通过 total image nums / total batch size计算你需要的steps数量

todesti2 commented 6 months ago

在data config的注释中有写:

https://github.com/IDEA-Research/detrex/blob/5d19a5c5bff80977cc60ea151e492ba5ac189801/configs/common/coco_schedule.py#L7

主要就是通过 total image nums / total batch size计算你需要的steps数量

好的!我正在详细阅读文件并开始尝试,十分感谢您的帮助❤

todesti2 commented 6 months ago

在data config的注释中有写:

https://github.com/IDEA-Research/detrex/blob/5d19a5c5bff80977cc60ea151e492ba5ac189801/configs/common/coco_schedule.py#L7

主要就是通过 total image nums / total batch size计算你需要的steps数量

您好!关于这个训练轮次的问题,我有点没搞清楚。

请问我这样推理对吗:

假设我的训练图片为6471张,total_batch_size=2,那么 我需要的steps=total_batch_size/2=3236 那么我的epoch也是12吗?

那么max_iters如果改成32360,就能跑120轮吗