hhaAndroid / mmdetection-mini

mmdetection最小学习版

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

有關於fcos訓練可視化

leehao178 opened this issue · comments

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是可以訓練

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

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

感謝h大 讚嘆h大

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