You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
from mmseg.registry import DATASETS
from .basesegdataset import BaseSegDataset
@DATASETS.register_module()
class PaintingDataset(BaseSegDataset):
"""Painting dataset.
The ``img_suffix`` is fixed to '_leftImg8bit.png' and ``seg_map_suffix`` is
fixed to '_gtFine_labelTrainIds.png' for Cityscapes dataset.
"""
METAINFO = dict(
# classes=('background', 'master'),
# palette=[[0, 0, 0], [255, 255, 255]])
classes=('background', 'master'),
palette=[[0, 0, 0], [255, 255, 255]])
def __init__(self,
img_suffix='.jpeg',
seg_map_suffix='.png',
reduce_zero_label=True,
**kwargs) -> None:
super().__init__(
img_suffix=img_suffix,
seg_map_suffix=seg_map_suffix,
reduce_zero_label=reduce_zero_label,
**kwargs)
I only have two class, one background and one foreground. Some of my images only have foreground and no background, so if I set num_class=2, reduce_zero_label=False, my val result is nan. So I set num_class=1, reduce_zero_label=True, But
I encountered this problem. The decode_head of mask2Former is not inherited from decode_head, but referenced from mmdet, so what should I do? Please give me some suggestions. Or how to make my result not nan when num_class=2
The text was updated successfully, but these errors were encountered:
06/17 11:25:03 - mmengine - INFO - Iter(train) [ 50/90000] base_lr: 9.9951e-05 lr: 9.9951e-06 eta: 1 day, 1:16:30 time: 0.9964 data_time: 0.0160 memory: 20881 grad_norm: 2.4602 loss: 1.3251 decode.loss_cls: 0.0000 decode.loss_mask: 0.0000 decode.loss_dice: 0.0000 decode.d0.loss_cls: 1.3249 decode.d0.loss_mask: 0.0000 decode.d0.loss_dice: 0.0000 decode.d1.loss_cls: 0.0001 decode.d1.loss_mask: 0.0000 decode.d1.loss_dice: 0.0000 decode.d2.loss_cls: 0.0000 decode.d2.loss_mask: 0.0000 decode.d2.loss_dice: 0.0000 decode.d3.loss_cls: 0.0000 decode.d3.loss_mask: 0.0000 decode.d3.loss_dice: 0.0000 decode.d4.loss_cls: 0.0000 decode.d4.loss_mask: 0.0000 decode.d4.loss_dice: 0.0000 decode.d5.loss_cls: 0.0000 decode.d5.loss_mask: 0.0000 decode.d5.loss_dice: 0.0000 decode.d6.loss_cls: 0.0000 decode.d6.loss_mask: 0.0000 decode.d6.loss_dice: 0.0000 decode.d7.loss_cls: 0.0000 decode.d7.loss_mask: 0.0000 decode.d7.loss_dice: 0.0000 decode.d8.loss_cls: 0.0000 decode.d8.loss_mask: 0.0000 decode.d8.loss_dice: 0.0000
06/17 11:25:52 - mmengine - INFO - Iter(train) [ 100/90000] base_lr: 9.9901e-05 lr: 9.9901e-06 eta: 1 day, 1:03:36 time: 0.9953 data_time: 0.0158 memory: 19056 grad_norm: 2.1069 loss: 1.0589 decode.loss_cls: 0.0000 decode.loss_mask: 0.0000 decode.loss_dice: 0.0000 decode.d0.loss_cls: 1.0588 decode.d0.loss_mask: 0.0000 decode.d0.loss_dice: 0.0000 decode.d1.loss_cls: 0.0001 decode.d1.loss_mask: 0.0000 decode.d1.loss_dice: 0.0000 decode.d2.loss_cls: 0.0000 decode.d2.loss_mask: 0.0000 decode.d2.loss_dice: 0.0000 decode.d3.loss_cls: 0.0000 decode.d3.loss_mask: 0.0000 decode.d3.loss_dice: 0.0000 decode.d4.loss_cls: 0.0000 decode.d4.loss_mask: 0.0000 decode.d4.loss_dice: 0.0000 decode.d5.loss_cls: 0.0000 decode.d5.loss_mask: 0.0000 decode.d5.loss_dice: 0.0000 decode.d6.loss_cls: 0.0000 decode.d6.loss_mask: 0.0000 decode.d6.loss_dice: 0.0000 decode.d7.loss_cls: 0.0000 decode.d7.loss_mask: 0.0000 decode.d7.loss_dice: 0.0000 decode.d8.loss_cls: 0.0000 decode.d8.loss_mask: 0.0000 decode.d8.loss_dice: 0.0000
06/17 11:26:42 - mmengine - INFO - Iter(train) [ 150/90000] base_lr: 9.9851e-05 lr: 9.9851e-06 eta: 1 day, 0:58:56 time: 0.9952 data_time: 0.0152 memory: 19056 grad_norm: 1.7905 loss: 0.8241 decode.loss_cls: 0.0000 decode.loss_mask: 0.0000 decode.loss_dice: 0.0000 decode.d0.loss_cls: 0.8240 decode.d0.loss_mask: 0.0000 decode.d0.loss_dice: 0.0000 decode.d1.loss_cls: 0.0000 decode.d1.loss_mask: 0.0000 decode.d1.loss_dice: 0.0000 decode.d2.loss_cls: 0.0000 decode.d2.loss_mask: 0.0000 decode.d2.loss_dice: 0.0000 decode.d3.loss_cls: 0.0000 decode.d3.loss_mask: 0.0000 decode.d3.loss_dice: 0.0000 decode.d4.loss_cls: 0.0000 decode.d4.loss_mask: 0.0000 decode.d4.loss_dice: 0.0000 decode.d5.loss_cls: 0.0000 decode.d5.loss_mask: 0.0000 decode.d5.loss_dice: 0.0000 decode.d6.loss_cls: 0.0000 decode.d6.loss_mask: 0.0000 decode.d6.loss_dice: 0.0000 decode.d7.loss_cls: 0.0000 decode.d7.loss_mask: 0.0000 decode.d7.loss_dice: 0.0000 decode.d8.loss_cls: 0.0000 decode.d8.loss_mask: 0.0000 decode.d8.loss_dice: 0.0000
06/17 11:27:32 - mmengine - INFO - Iter(train) [ 200/90000] base_lr: 9.9801e-05 lr: 9.9801e-06 eta: 1 day, 0:56:24 time: 0.9968 data_time: 0.0156 memory: 19056 grad_norm: 1.4811 loss: 0.6155 decode.loss_cls: 0.0000 decode.loss_mask: 0.0000 decode.loss_dice: 0.0000 decode.d0.loss_cls: 0.6155 decode.d0.loss_mask: 0.0000 decode.d0.loss_dice: 0.0000 decode.d1.loss_cls: 0.0000 decode.d1.loss_mask: 0.0000 decode.d1.loss_dice: 0.0000 decode.d2.loss_cls: 0.0000 decode.d2.loss_mask: 0.0000 decode.d2.loss_dice: 0.0000 decode.d3.loss_cls: 0.0000 decode.d3.loss_mask: 0.0000 decode.d3.loss_dice: 0.0000 decode.d4.loss_cls: 0.0000 decode.d4.loss_mask: 0.0000 decode.d4.loss_dice: 0.0000 decode.d5.loss_cls: 0.0000 decode.d5.loss_mask: 0.0000 decode.d5.loss_dice: 0.0000 decode.d6.loss_cls: 0.0000 decode.d6.loss_mask: 0.0000 decode.d6.loss_dice: 0.0000 decode.d7.loss_cls: 0.0000 decode.d7.loss_mask: 0.0000 decode.d7.loss_dice: 0.0000 decode.d8.loss_cls: 0.0000 decode.d8.loss_mask: 0.0000 decode.d8.loss_dice: 0.0000
06/17 11:28:24 - mmengine - INFO - Iter(train) [ 250/90000] base_lr: 9.9751e-05 lr: 9.9751e-06 eta: 1 day, 1:10:02 time: 1.0503 data_time: 0.0162 memory: 19056 grad_norm: 1.1710 loss: 0.4363 decode.loss_cls: 0.0000 decode.loss_mask: 0.0000 decode.loss_dice: 0.0000 decode.d0.loss_cls: 0.4363 decode.d0.loss_mask: 0.0000 decode.d0.loss_dice: 0.0000 decode.d1.loss_cls: 0.0000 decode.d1.loss_mask: 0.0000 decode.d1.loss_dice: 0.0000 decode.d2.loss_cls: 0.0000 decode.d2.loss_mask: 0.0000 decode.d2.loss_dice: 0.0000 decode.d3.loss_cls: 0.0000 decode.d3.loss_mask: 0.0000 decode.d3.loss_dice: 0.0000 decode.d4.loss_cls: 0.0000 decode.d4.loss_mask: 0.0000 decode.d4.loss_dice: 0.0000 decode.d5.loss_cls: 0.0000 decode.d5.loss_mask: 0.0000 decode.d5.loss_dice: 0.0000 decode.d6.loss_cls: 0.0000 decode.d6.loss_mask: 0.0000 decode.d6.loss_dice: 0.0000 decode.d7.loss_cls: 0.0000 decode.d7.loss_mask: 0.0000 decode.d7.loss_dice: 0.0000 decode.d8.loss_cls: 0.0000 decode.d8.loss_mask: 0.0000 decode.d8.loss_dice: 0.0000
06/17 11:29:14 - mmengine - INFO - Iter(train) [ 300/90000] base_lr: 9.9701e-05 lr: 9.9701e-06 eta: 1 day, 1:06:42 time: 0.9976 data_time: 0.0153 memory: 19056 grad_norm: 0.8709 loss: 0.2910 decode.loss_cls: 0.0000 decode.loss_mask: 0.0000 decode.loss_dice: 0.0000 decode.d0.loss_cls: 0.2910 decode.d0.loss_mask: 0.0000 decode.d0.loss_dice: 0.0000 decode.d1.loss_cls: 0.0000 decode.d1.loss_mask: 0.0000 decode.d1.loss_dice: 0.0000 decode.d2.loss_cls: 0.0000 decode.d2.loss_mask: 0.0000 decode.d2.loss_dice: 0.0000 decode.d3.loss_cls: 0.0000 decode.d3.loss_mask: 0.0000 decode.d3.loss_dice: 0.0000 decode.d4.loss_cls: 0.0000 decode.d4.loss_mask: 0.0000 decode.d4.loss_dice: 0.0000 decode.d5.loss_cls: 0.0000 decode.d5.loss_mask: 0.0000 decode.d5.loss_dice: 0.0000 decode.d6.loss_cls: 0.0000 decode.d6.loss_mask: 0.0000 decode.d6.loss_dice: 0.0000 decode.d7.loss_cls: 0.0000 decode.d7.loss_mask: 0.0000 decode.d7.loss_dice: 0.0000 decode.d8.loss_cls: 0.0000 decode.d8.loss_mask: 0.0000 decode.d8.loss_dice: 0.0000
06/17 11:29:15 - mmengine - INFO - Saving checkpoint at 300 iterations
/ProjectRoot/openmmlab/lib/python3.8/site-packages/mmdet/models/layers/positional_encoding.py:103: UserWarning: floordiv is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
dim_t = self.temperature**(2 * (dim_t // 2) / self.num_feats)
Traceback (most recent call last):
File "tools/train.py", line 104, in
main()
File "tools/train.py", line 100, in main
runner.train()
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/mmengine/runner/runner.py", line 1777, in train
model = self.train_loop.run() # type: ignore
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/mmengine/runner/loops.py", line 294, in run
self.runner.val_loop.run()
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/mmengine/runner/loops.py", line 373, in run
self.run_iter(idx, data_batch)
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/mmengine/runner/loops.py", line 393, in run_iter
outputs = self.runner.model.val_step(data_batch)
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/mmengine/model/base_model/base_model.py", line 133, in val_step
return self._run_forward(data, mode='predict') # type: ignore
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/mmengine/model/base_model/base_model.py", line 361, in _run_forward
results = self(**data, mode=mode)
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/ProjectRoot/painting_seg/mmsegmentation/mmseg/models/segmentors/base.py", line 96, in forward
return self.predict(inputs, data_samples)
File "/ProjectRoot/painting_seg/mmsegmentation/mmseg/models/segmentors/encoder_decoder.py", line 222, in predict
return self.postprocess_result(seg_logits, data_samples)
File "/ProjectRoot/painting_seg/mmsegmentation/mmseg/models/segmentors/base.py", line 192, in postprocess_result
self.decode_head.threshold).to(i_seg_logits)
File "/ProjectRoot/openmmlab/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1185, in getattr
raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'Mask2FormerHead' object has no attribute 'threshold'
my_custom_dataset:
Copyright (c) OpenMMLab. All rights reserved.
from mmseg.registry import DATASETS
from .basesegdataset import BaseSegDataset
@DATASETS.register_module()
class PaintingDataset(BaseSegDataset):
"""Painting dataset.
I only have two class, one background and one foreground. Some of my images only have foreground and no background, so if I set num_class=2, reduce_zero_label=False, my val result is nan. So I set num_class=1, reduce_zero_label=True, But
I encountered this problem. The decode_head of mask2Former is not inherited from decode_head, but referenced from mmdet, so what should I do? Please give me some suggestions. Or how to make my result not nan when num_class=2
The text was updated successfully, but these errors were encountered: