I made a customize decode head.
My code is normal when train, but it reported error when get into the val part.
(I override the forward_train method in the decode head. I don't know whether it matters. If needed, please ask me to upload the code.)
Here is my cofig file and error report information.
[ ] 0/500, elapsed: 0s, ETA:Traceback (most recent call last):
File "tools/train.py", line 241, in <module>
main()
File "tools/train.py", line 230, in main
train_segmentor(
File "/data1/2023/qchhh/mmsegmentation/mmseg/apis/train.py", line 194, in train_segmentor
runner.run(data_loaders, cfg.workflow)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/mmcv/runner/iter_based_runner.py", line 144, in run
iter_runner(iter_loaders[i], **kwargs)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/mmcv/runner/iter_based_runner.py", line 70, in train
self.call_hook('after_train_iter')
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/mmcv/runner/base_runner.py", line 317, in call_hook
getattr(hook, fn_name)(self)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/mmcv/runner/hooks/evaluation.py", line 266, in after_train_iter
self._do_evaluate(runner)
File "/data1/2023/qchhh/mmsegmentation/mmseg/core/evaluation/eval_hooks.py", line 51, in _do_evaluate
results = single_gpu_test(
File "/data1/2023/qchhh/mmsegmentation/mmseg/apis/test.py", line 91, in single_gpu_test
result = model(return_loss=False, **data)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/mmcv/parallel/data_parallel.py", line 51, in forward
return super().forward(*inputs, **kwargs)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/torch/nn/parallel/data_parallel.py", line 166, in forward
return self.module(*inputs[0], **kwargs[0])
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 119, in new_func
return old_func(*args, **kwargs)
File "/data1/2023/qchhh/mmsegmentation/mmseg/models/segmentors/base.py", line 110, in forward
return self.forward_test(img, img_metas, **kwargs)
File "/data1/2023/qchhh/mmsegmentation/mmseg/models/segmentors/base.py", line 92, in forward_test
return self.simple_test(imgs[0], img_metas[0], **kwargs)
File "/data1/2023/qchhh/mmsegmentation/mmseg/models/segmentors/encoder_decoder.py", line 266, in simple_test
seg_logit = self.inference(img, img_meta, rescale)
File "/data1/2023/qchhh/mmsegmentation/mmseg/models/segmentors/encoder_decoder.py", line 248, in inference
seg_logit = self.whole_inference(img, img_meta, rescale)
File "/data1/2023/qchhh/mmsegmentation/mmseg/models/segmentors/encoder_decoder.py", line 207, in whole_inference
seg_logit = self.encode_decode(img, img_meta)
File "/data1/2023/qchhh/mmsegmentation/mmseg/models/segmentors/encoder_decoder.py", line 76, in encode_decode
out = resize(
File "/data1/2023/qchhh/mmsegmentation/mmseg/ops/wrappers.py", line 27, in resize
return F.interpolate(input, size, scale_factor, mode, align_corners)
File "/data1/miniconda3/envs/qcmmseg/lib/python3.8/site-packages/torch/nn/functional.py", line 3841, in interpolate
dim = input.dim() - 2 # Number of spatial dimensions.
AttributeError: 'tuple' object has no attribute 'dim'
Thank you very much for reading a so long question.
I made a customize decode head. My code is normal when train, but it reported error when get into the val part. (I override the forward_train method in the decode head. I don't know whether it matters. If needed, please ask me to upload the code.) Here is my cofig file and error report information.
config file
error report information
Thank you very much for reading a so long question.