So we are getting this AttributeError, which seems similar to the other errors posted on this site but, we using a Mask R-CNN Class and a pretrained Resnet50+MaskR-CNN backbone segmentation model. Therefore the model.aux_logits = False Flag doesn’t help here. We are using a Custom Dataset so this might also be the cause of this problem but the target dict is the same as in the TorchVision Object Detection Finetuning Tutorial having Boxes, Labels, Masks image_id, area, iscrowd defind at the same positions.
 # create training loss function and optimizer
self._loss_fn = nn.CrossEntropyLoss()
self._optimizer = torch.optim.SGD(self._model.parameters(), lr=1e-3)
for epoch in range(start_epoch, end_epoch, 1):
            # train one epoch and test the model afterwards
            print("epoch {} ---------------------".format(epoch))
            self.load()
            train_one_epoch(self._model, self._optimizer, self._train_dataloader, self._device, epoch, print_freq=10)
            self.save()
            # evaluate on the test dataset
            print('size of train dataloader is: ', len(self._train_dataloader))
            for images, targets in next(iter(self._train_dataloader)):
                # loss and correct predicts
                images, targets = images.to(self._device), targets.to(self._device)
                # update optimizer
                self._optimizer.step()
                images = images.unsqueeze(0)
                self._model.eval()
                self._model.forward(images)
                predictions = self._model(images)
                self._model.aux_logits = False
                loss = self._loss_fn(predictions[0], targets)
                total_loss += loss.item()
                total_correct += self.get_num_correct(self._model, targets)


images and targets give this output:
                print(type(targets))
                print(targets.size())
                print(targets.dim())
                print(type(images))
                print(images.size())
                print(images.dim())
<class 'torch.Tensor'>
torch.Size([3, 749, 832])
3
<class 'torch.Tensor'>
torch.Size([3, 757, 898])
3

the custom MaskRCNN Class implementation:
class MaskRCNN(FasterRCNN, nn.Module):
    def __init__(self, backbone, num_classes=None,
                 mask_roi_pool=None, mask_head=None, mask_predictor=None):
        super(MaskRCNN, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5),
        self.conv2 = nn.Conv2d(in_channels=6, out_channels=12, kernel_size=5),

        self.fc1 = nn.Linear(in_features=128 * 4 * 4, out_features=500),
        self.fc2 = nn.Linear(in_features=500, out_features=60),
        self.relu = nn.ReLU(),
        self.out = nn.Linear(in_features=60, out_features=13)

    def forward(self, images, **kwargs):
        images = nn.ReLU(self.conv1(images))
        images = F.max_pool2d(images, kernel_size=2, stride=2)
        images = nn.ReLU(self.conv2(images))
        images = self.max_pool2d(images, kernel_size=2, stride=2)
        images = torch.flatten(images, start_dim=1)
        images = nn.ReLU(self.fc1(images))
        images = nn.ReLU(self.fc2(images))
        images = self.out(images)
        images = nn.LogSoftmax(images)
        return images


The Error Message:
Traceback (most recent call last):
  File "/tmp/pycharm_project_453/nn_main.py", line 157, in <module>
    main()
  File "/tmp/pycharm_project_453/nn_main.py", line 149, in main
    nn_env.train_epochs(total_epochs, model, lr_scheduler)
  File "/tmp/pycharm_project_453/nn_environment.py", line 267, in train_epochs
    loss = self._loss_fn(predictions[0], targets)
  File "/home/user/.local/lib/python3.6/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/torch/nn/modules/loss.py", line 1048, in forward
    ignore_index=self.ignore_index, reduction=self.reduction)
  File "/home/user/.local/lib/python3.6/site-packages/torch/nn/functional.py", line 2693, in cross_entropy
    return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction)
  File "/home/user/.local/lib/python3.6/site-packages/torch/nn/functional.py", line 1672, in log_softmax
    ret = input.log_softmax(dim)
AttributeError: 'dict' object has no attribute 'log_softmax'

Process finished with exit code 1


Could you please suggest what might causing that issue? Thanks in advance for the help!