Skip to content

forward_train() missing 1 required positional argument: 'gt_semantic_seg' for workflow = [('train', 1), ('val', 1)] #376

@rubeea

Description

@rubeea

I am training a U-Net with FCN (decode and aux) head and the model is trained perfectly when the workflow is
workflow = [('train', 1)]
when I change the workflow to include validation as follows:
workflow = [('train', 1), ('val', 1)]
I get the following error:

/content/pldu_mmsegmentation/mmseg/apis/train.py in train_segmentor(model, dataset, cfg, distributed, validate, timestamp, meta)
114 elif cfg.load_from:
115 runner.load_checkpoint(cfg.load_from)
--> 116 runner.run(data_loaders, cfg.workflow)

/usr/local/lib/python3.6/dist-packages/mmcv/runner/iter_based_runner.py in run(self, data_loaders, workflow, max_iters, **kwargs)
128 if mode == 'train' and self.iter >= self._max_iters:
129 break
--> 130 iter_runner(iter_loaders[i], **kwargs)
131
132 time.sleep(1) # wait for some hooks like loggers to finish

/usr/local/lib/python3.6/dist-packages/mmcv/runner/iter_based_runner.py in val(self, data_loader, **kwargs)
74 self.call_hook('before_val_iter')
75 data_batch = next(data_loader)
---> 76 outputs = self.model.val_step(data_batch, **kwargs)
77 if not isinstance(outputs, dict):
78 raise TypeError('model.val_step() must return a dict')

/usr/local/lib/python3.6/dist-packages/mmcv/parallel/data_parallel.py in val_step(self, *inputs, **kwargs)
87
88 inputs, kwargs = self.scatter(inputs, kwargs, self.device_ids)
---> 89 return self.module.val_step(*inputs[0], **kwargs[0])

/content/pldu_mmsegmentation/mmseg/models/segmentors/base.py in val_step(self, data_batch, **kwargs)
167 not implemented with this method, but an evaluation hook.
168 """
--> 169 output = self(**data_batch, **kwargs)
170 # loss, log_vars = self._parse_losses(output)
171 # log_vars_val = OrderedDict()

/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
725 result = self._slow_forward(*input, **kwargs)
726 else:
--> 727 result = self.forward(*input, **kwargs)
728 for hook in itertools.chain(
729 _global_forward_hooks.values(),

/usr/local/lib/python3.6/dist-packages/mmcv/runner/fp16_utils.py in new_func(*args, **kwargs)
82 'method of nn.Module')
83 if not (hasattr(args[0], 'fp16_enabled') and args[0].fp16_enabled):
---> 84 return old_func(*args, **kwargs)
85 # get the arg spec of the decorated method
86 args_info = getfullargspec(old_func)

/content/pldu_mmsegmentation/mmseg/models/segmentors/base.py in forward(self, img, img_metas, return_loss, **kwargs)
120 """
121 if return_loss:
--> 122 return self.forward_train(img, img_metas, **kwargs)
123 else:
124 return self.forward_test(img, img_metas, **kwargs)

TypeError: forward_train() missing 1 required positional argument: 'gt_semantic_seg'

Kindly help me solve this problem.

Thanks

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