code: def compute_loss(self):
      if self._weight_classes is not None:
          self._weight_classes = self._weight_classes.to(
              self.output.device
          )
  
      self.loss = F.nll_loss(
          self.output,
          self.labels,
          weight=self._weight_classes,
          ignore_index=IGNORE_LABEL,
      )
  
imports: from typing import Any
  import logging
  from omegaconf.dictconfig import DictConfig
  from omegaconf.listconfig import ListConfig
  from torch.nn import Sequential, Dropout, Linear
  import torch.nn.functional
  from torch import nn
  from .base import Segmentation_MP
  from torch_points3d.core.common_modules import FastBatchNorm1d
  from torch_points3d.modules.PPNet import *
  from torch_points3d.core.base_conv.partial_dense import *
  from torch_points3d.core.common_modules import MultiHeadClassifier, Identity
  from torch_points3d.models.base_model import BaseModel
  from torch_points3d.models.base_architectures.unet import UnwrappedUnetBasedModel
  from torch_points3d.datasets.multiscale_data import MultiScaleBatch
  from torch_points3d.datasets.segmentation import IGNORE_LABEL
label_desc: Use image node_id 4 for calling the PPNet obj's underlying member method code with example usage: obj.compute_loss() without return types