Skip to content

How to train my own dataset whose number of keypoints are not 5. #99

@takmin

Description

@takmin

I try to train the detector with my own dataset: the number of keypoints are 24.

I've modified config/yunet_n.py as below:

model = dict(
	...
	bbox_head = dict(
		...
		use_kps = True
		kps_num = 24
		...
	)
	...
)
...
train=dict(
...
           dict(type='RandomFlip', flip_ratio=0.0),
...
}

But I encountered the following error:

Traceback (most recent call last):
  File "tools/train.py", line 237, in <module>
    main()
  File "tools/train.py", line 226, in main
    train_detector(
  File "/root/yunet/libfacedetection.train/mmdet/apis/train.py", line 244, in train_detector
    runner.run(data_loaders, cfg.workflow)
  File "/root/yunet/mmcv/mmcv/runner/epoch_based_runner.py", line 136, in run
    epoch_runner(data_loaders[i], **kwargs)
  File "/root/yunet/mmcv/mmcv/runner/epoch_based_runner.py", line 53, in train
    self.run_iter(data_batch, train_mode=True, **kwargs)
  File "/root/yunet/mmcv/mmcv/runner/epoch_based_runner.py", line 31, in run_iter
    outputs = self.model.train_step(data_batch, self.optimizer,
  File "/root/yunet/mmcv/mmcv/parallel/distributed.py", line 63, in train_step
    output = self.module.train_step(*inputs[0], **kwargs[0])
  File "/root/yunet/libfacedetection.train/mmdet/models/detectors/base.py", line 246, in train_step
    losses = self(**data)
  File "/opt/miniconda3/envs/yunet/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/root/yunet/mmcv/mmcv/runner/fp16_utils.py", line 116, in new_func
    return old_func(*args, **kwargs)
  File "/root/yunet/libfacedetection.train/mmdet/models/detectors/base.py", line 180, in forward
    return self.forward_train(img, img_metas, **kwargs)
  File "/root/yunet/libfacedetection.train/mmdet/models/detectors/yunet.py", line 48, in forward_train
    losses = self.bbox_head.forward_train(x, img_metas, gt_bboxes,
  File "/root/yunet/libfacedetection.train/mmdet/models/dense_heads/yunet_head.py", line 283, in forward_train
    losses = self.loss(*loss_inputs, gt_bboxes_ignore=gt_bboxes_ignore)
  File "/root/yunet/mmcv/mmcv/runner/fp16_utils.py", line 205, in new_func
    return old_func(*args, **kwargs)
  File "/root/yunet/libfacedetection.train/mmdet/models/dense_heads/yunet_head.py", line 484, in loss
    kps_weights, num_fg_imgs) = multi_apply(self._get_target_single,
  File "/root/yunet/libfacedetection.train/mmdet/core/utils/misc.py", line 30, in multi_apply
    return tuple(map(list, zip(*map_results)))
  File "/opt/miniconda3/envs/yunet/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "/root/yunet/libfacedetection.train/mmdet/models/dense_heads/yunet_head.py", line 596, in _get_target_single
    kps_target = gt_kpss[pos_assigned_gt_inds, :, :2].reshape(
RuntimeError: shape '[-1, 48]' is invalid for input of size 10
Killing subprocess 283
Traceback (most recent call last):
  File "/opt/miniconda3/envs/yunet/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/opt/miniconda3/envs/yunet/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/opt/miniconda3/envs/yunet/lib/python3.8/site-packages/torch/distributed/launch.py", line 340, in <module>
    main()
  File "/opt/miniconda3/envs/yunet/lib/python3.8/site-packages/torch/distributed/launch.py", line 326, in main
    sigkill_handler(signal.SIGTERM, None)  # not coming back
  File "/opt/miniconda3/envs/yunet/lib/python3.8/site-packages/torch/distributed/launch.py", line 301, in sigkill_handler
    raise subprocess.CalledProcessError(returncode=last_return_code, cmd=cmd)
subprocess.CalledProcessError: Command '['/opt/miniconda3/envs/yunet/bin/python', '-u', 'tools/train.py', '--local_rank=0', './configs/yunet_n_mod.py', '--seed', '0', '--launcher', 'pytorch']' returned non-zero exit status 1.

How can I train the detector with 24 keypoints?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions