Skip to content

About the panoptic custom dataset training #114

@Synot1

Description

@Synot1

Hello, when I am training with panoptic segmentation, I followed the instructions on https://github.com/cocodataset/panopticapi/blob/master/panoptic_coco_categories.json to convert labelme to coco format, and I have also completed the dataset registration. However, during training, I keep encountering the following error:

[08/08 10:46:48 maskdino.data.dataset_mappers.coco_panoptic_new_baseline_dataset_mapper]: [COCOPanopticNewBaselineDatasetMapper] Full TransformGens used in training: [RandomFlip(), ResizeScale(min_scale=0.1, max_scale=2.0, target_height=64, target_width=64), FixedSizeCrop(crop_size=(64, 64))]
WARNING [08/08 10:46:49 d2.data.datasets.coco]:
Category ids in annotations are not in [1, #categories]! We'll apply a mapping for you.

[08/08 10:46:49 d2.data.datasets.coco]: Loaded 779 images in COCO format from D:\MaskDINO-main\MaskDINO-main\data\panotic_pathlearning\train\annotations\annotations.json
WARNING [08/08 10:46:49 d2.data.datasets.coco]: Filtered out 124 instances without valid segmentation. There might be issues in your dataset generation process. Please check https://detectron2.readthedocs.io/en/latest/tutorials/datasets.html carefully
[08/08 10:46:49 d2.data.build]: Removed 1 images with no usable annotations. 778 images left.
[08/08 10:46:49 d2.data.build]: Distribution of instances among all 7 categories:

category #instances category #instances category #instances
ignore 0 pixel 11651 OK 0
g2p 0 mp1 0 dataline 8736
NG 0
total 20387
[08/08 10:46:49 d2.data.build]: Using training sampler TrainingSampler
[08/08 10:46:49 d2.data.common]: Serializing the dataset using: <class 'detectron2.data.common._TorchSerializedList'>
[08/08 10:46:49 d2.data.common]: Serializing 778 elements to byte tensors and concatenating them all ...
[08/08 10:46:49 d2.data.common]: Serialized dataset takes 3.66 MiB
[08/08 10:46:49 d2.data.build]: Making batched data loader with batch_size=1
[08/08 10:46:49 d2.checkpoint.detection_checkpoint]: [DetectionCheckpointer] Loading from D:\MaskDINO-main\MaskDINO-main\weight\maskdino_swinl_50ep_300q_hid2048_3sd1_panoptic_58.3pq.pth ...
[08/08 10:46:49 fvcore.common.checkpoint]: [Checkpointer] Loading from d:\MaskDINO-main\MaskDINO-main\weight\maskdino_swinl_50ep_300q_hid2048_3sd1_panoptic_58.3pq.pth ...
WARNING [08/08 10:46:50 fvcore.common.checkpoint]: Skip loading parameter 'sem_seg_head.predictor.class_embed.weight' to the model due to incompatible shapes: (133, 256) in the checkpoint but (6, 256) in the model! You might want to double check if this is expected.
WARNING [08/08 10:46:50 fvcore.common.checkpoint]: Skip loading parameter 'sem_seg_head.predictor.class_embed.bias' to the model due to incompatible shapes: (133,) in the checkpoint but (6,) in the model! You might want to double check if this is expected.
WARNING [08/08 10:46:50 fvcore.common.checkpoint]: Skip loading parameter 'sem_seg_head.predictor.label_enc.weight' to the model due to incompatible shapes: (133, 256) in the checkpoint but (6, 256) in the model! You might want to double check if this is expected.
WARNING [08/08 10:46:50 fvcore.common.checkpoint]: Skip loading parameter 'criterion.empty_weight' to the model due to incompatible shapes: (134,) in the checkpoint but (7,) in the model! You might want to double check if this is expected.
WARNING [08/08 10:46:50 fvcore.common.checkpoint]: Some model parameters or buffers are not found in the checkpoint:
criterion.empty_weight
sem_seg_head.predictor.class_embed.{bias, weight}
sem_seg_head.predictor.label_enc.weight
[08/08 10:46:50 d2.engine.train_loop]: Starting training from iteration 0
D:\MaskDINO-main\MaskDINO-main
D:\MaskDINO-main\MaskDINO-main
D:\MaskDINO-main\MaskDINO-main
D:\MaskDINO-main\MaskDINO-main
ERROR [08/08 10:46:55 d2.engine.train_loop]: Exception during training:
Traceback (most recent call last):
File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\train_loop.py", line 155, in train
self.run_step()

File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\defaults.py", line 498, in run_step
self._trainer.run_step()
File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\train_loop.py", line 494, in run_step
loss_dict = self.model(data)
File "D:\anaconda3\envs\maskdino\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\maskdino.py", line 268, in forward
outputs, mask_dict = self.sem_seg_head(features, targets=targets)
File "D:\anaconda3\envs\maskdino\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\modeling\meta_arch\maskdino_head.py", line 75, in forward
return self.layers(features, mask,targets=targets)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\modeling\meta_arch\maskdino_head.py", line 80, in layers
predictions = self.predictor(multi_scale_features, mask_features, mask, targets=targets)
File "D:\anaconda3\envs\maskdino\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\modeling\transformer_decoder\maskdino_decoder.py", line 448, in forward
assert targets is not None
AssertionError
[08/08 10:46:55 d2.engine.hooks]: Total training time: 0:00:04 (0:00:00 on hooks)
[08/08 10:46:55 d2.utils.events]: iter: 0 lr: N/A max_mem: 1395M
Traceback (most recent call last):
File "D:\MaskDINO-main\MaskDINO-main\567.py", line 411, in
launch(
File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\launch.py", line 84, in launch
main_func(*args)
File "D:\MaskDINO-main\MaskDINO-main\567.py", line 398, in main
return trainer.train()
File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\defaults.py", line 488, in train
super().train(self.start_iter, self.max_iter)
File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\train_loop.py", line 155, in train
self.run_step()
File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\defaults.py", line 498, in run_step
self._trainer.run_step()
File "D:\MaskDINO-main\MaskDINO-main\detectron2\engine\train_loop.py", line 494, in run_step
loss_dict = self.model(data)
File "D:\anaconda3\envs\maskdino\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\maskdino.py", line 268, in forward
outputs, mask_dict = self.sem_seg_head(features, targets=targets)
File "D:\anaconda3\envs\maskdino\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\modeling\meta_arch\maskdino_head.py", line 75, in forward
return self.layers(features, mask,targets=targets)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\modeling\meta_arch\maskdino_head.py", line 80, in layers
predictions = self.predictor(multi_scale_features, mask_features, mask, targets=targets)
File "D:\anaconda3\envs\maskdino\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "D:\MaskDINO-main\MaskDINO-main\maskdino\modeling\transformer_decoder\maskdino_decoder.py", line 448, in forward
assert targets is not None
AssertionError

In maskdino.py, my batched_inputs does not have instances, but I tried adding them without success. It still goes into the target = None else branch. How can I fix my code?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions