class_docstr: CNN model of ISC.
  
  Args:
      backbone (`nn.Module`):
          Backbone module.
      fc_dim (`int=256`):
          Feature dimension of the fc layer.
      p (`float=3.0`):
          Power used in pooling for training.
      eval_p (`float=4.0`):
          Power used in pooling for evaluation.
code: def forward(self, x):
      batch_size = x.shape[0]
  
      x = self.backbone(x)[-1]
      assert len(x.shape) == 4
      _, _, height, width = x.shape
      if torch.is_tensor(height):
          height = height.item()
          width = width.item()
      p = self.p if self.training else self.eval_p
      x = nn.functional.avg_pool2d(
          x.clamp(min=1e-6).pow(p), (height, width)
      ).pow(1.0 / p)
      x = x.view(batch_size, -1)
      x = self.fc(x)
      x = self.bn(x)
      x = nn.functional.normalize(x)
      return x
  
imports: import torch.cuda
  from torch import nn
label_desc: Use image node_id 3 for calling the ISCNet obj's underlying member method code with example usage: obj.forward(x) and returns: x