hhaAndroid / mmdetection-mini

mmdetection最小学习版
MIT License
1.07k stars 194 forks source link

有關於fcos訓練可視化 #16

Closed leehao178 closed 3 years ago

leehao178 commented 3 years ago

2020-11-23 16:43:28,481 - mmdet - INFO - workflow: [('train', 1)], max: 12 epochs Traceback (most recent call last): File "train.py", line 133, in main() File "train.py", line 129, in main meta=meta) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/apis/train.py", line 104, in train_detector runner.run(data_loaders, cfg.workflow, cfg.total_epochs) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/cv_core/runner/epoch_based_runner.py", line 124, in run epoch_runner(data_loaders[i], kwargs) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/cv_core/runner/epoch_based_runner.py", line 48, in train self.run_iter(data_batch, train_mode=True) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/cv_core/runner/epoch_based_runner.py", line 28, in run_iter kwargs) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/cv_core/parallel/data_parallel.py", line 69, in train_step return self.module.train_step(inputs[0], kwargs[0]) # 然后调用model自己的train_step方法 File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/models/detectors/base.py", line 204, in train_step losses = self(data) File "/home/danny/anaconda3/envs/mmdetetion-mini/lib/python3.6/site-packages/torch/nn/modules/module.py", line 541, in call result = self.forward(input, kwargs) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/models/detectors/base.py", line 138, in forward return self.forward_train(img, img_metas, kwargs) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/models/detectors/single_stage.py", line 95, in forward_train gt_labels, gt_bboxes_ignore, *kwargs) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/models/dense_heads/base_dense_head.py", line 54, in forward_train losses = self.loss(loss_inputs, gt_bboxes_ignore=gt_bboxes_ignore) File "/home/danny/Lab/mmdetection-mini/tools/../mmdet/models/dense_heads/fcos_head.py", line 207, in loss img = img_meta['img'].data.numpy() KeyError: 'img'

使用voc轉成coco來訓練,config多修改成以下 train_cfg = dict( # 在fcos里面是不需要的 assigner=dict( type='MaxIoUAssigner', pos_iou_thr=0.5, neg_iou_thr=0.4, min_pos_iou=0, ignore_iof_thr=-1), allowed_border=-1, pos_weight=-1, debug=True)

如果debug=False是可以訓練

hhaAndroid commented 3 years ago

你在coco数据集下跑了吗?我这边可以啊,我没有跑voc

hhaAndroid commented 3 years ago

我大概能猜到:你自己写了一个新配置,但是配置的train_pipeline里面没有新增meta_keys,导致报错了

leehao178 commented 3 years ago

感謝h大 讚嘆h大

你猜對了, 我以為import base 裡有'../base/datasets/coco_detection.py',且coco_detection.py裡有附meta_keys我就不用加了,可以debug了