code: def forward(self, input, target, label_vec=None, segm_size=None):
      label_vec = (
          Variable(label_vec).float() / segm_size.unsqueeze(-1).float()
      )
      input = F.log_softmax(input, dim=-1)
      loss = torch.nn.modules.loss.KLDivLoss()(input, label_vec)
      return loss
  
imports: from typing import Any
  from collections import OrderedDict
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.autograd import Variable
  from torch_points3d.datasets.segmentation import IGNORE_LABEL
  from .metric_losses import *
label_desc: Use image node_id 2 for calling the WrapperKLDivLoss obj's underlying member method code with example usage: obj.forward(input, target, label_vec, segm_size) and returns: loss