jetson-inference
jetson-inference copied to clipboard
Training segmentation error : __call__() missing 1 required positional argument: 'target'
Hi, I try to train a FCN-Resnet50 with cityscapes gtFine datasets but i encounter this error and i don't know any way to solve it, do you have idea to solve it ?
(fcnresnet-env) manip@ijl-expe-209:~/pytorch-segmentation$ python3 train.py /home/manip/pytorch-segmentation/cityscapes --model-dir=models/cityscapes_fine --aux-loss --workers=0
pytorch-segmentation/datasets/__init__.py
Not using distributed mode
Namespace(arch='fcn_resnet50', aux_loss=True, batch_size=8, data='/home/manip/pytorch-segmentation/cityscapes', dataset='cityscapes', device='cuda', dist_url='env://', distributed=False, epochs=30, lr=0.01, model_dir='models/cityscapes_fine', momentum=0.9, pretrained=False, print_freq=10, resolution=320, resume='', test_only=False, weight_decay=0.0001, workers=0, world_size=1)
=> training with dataset: 'cityscapes' (train=2975, val=500)
=> training with resolution: 320x320, 21 classes
=> training with model: fcn_resnet50
Traceback (most recent call last):
File "train.py", line 332, in <module>
main(args)
File "train.py", line 293, in main
train_one_epoch(model, criterion, optimizer, data_loader, lr_scheduler, device, epoch, args.print_freq)
File "train.py", line 184, in train_one_epoch
for image, target in metric_logger.log_every(data_loader, print_freq, header):
File "/home/manip/pytorch-segmentation/utils.py", line 186, in log_every
for obj in iterable:
File "/home/manip/fcnresnet-env/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 530, in __next__
data = self._next_data()
File "/home/manip/fcnresnet-env/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 570, in _next_data
data = self._dataset_fetcher.fetch(index) # may raise StopIteration
File "/home/manip/fcnresnet-env/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/manip/fcnresnet-env/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 49, in <listcomp>
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/manip/fcnresnet-env/lib/python3.8/site-packages/torchvision/datasets/cityscapes.py", line 197, in __getitem__
image, target = self.transforms(image, target)
File "/home/manip/fcnresnet-env/lib/python3.8/site-packages/torchvision/datasets/vision.py", line 95, in __call__
input = self.transform(input)
TypeError: __call__() missing 1 required positional argument: 'target'
Hi @Xionfire, it's been awhile since I trained these models and I recall using gtCoarse and needing to remap the class ID masks down to 21 classes.
This tutorial does some segmentation training though: https://www.highvoltagecode.com/post/edge-ai-semantic-segmentation-on-nvidia-jetson
@Xionfire Hello, did you manage to solve this issue please?