class_docstr: Image Cascade Network (ICNet)
  
  Parameters
  ----------
  nclass : int
      Number of categories for the training dataset.
  backbone : string
      Pre-trained dilated backbone network type (default:'resnet50'; 'resnet50',
      'resnet101' or 'resnet152').
  norm_layer : object
      Normalization layer used in backbone network (default: :class:`mxnet.gluon.nn.BatchNorm`;
      for Synchronized Cross-GPU BachNormalization).
  norm_kwargs : dict
      Additional `norm_layer` arguments, for example `num_devices=4`
      for :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
  pretrained_base : bool or str
      Refers to if the backbone is pretrained or not. If `True`,
      model weights of a model that was trained on ImageNet is loaded.
  
  Reference:
  
      Hengshuang Zhao, Xiaojuan Qi, Xiaoyong Shen, Jianping Shi and Jiaya Jia.
      "ICNet for Real-Time Semantic Segmentation on High-Resolution Images." *ECCV*, 2018
  
  Examples
  --------
  >>> model = ICNet(nclass=19, backbone='resnet50')
  >>> print(model)
code: def predict(self, x):
      h, w = x.shape[2:]
      self._up_kwargs["height"] = h
      self._up_kwargs["width"] = w
  
      import mxnet.ndarray as F
  
      x_sub1_out = self.conv_sub1(x)
  
      x_sub2 = F.contrib.BilinearResize2D(
          x,
          height=self._up_kwargs["height"] // 2,
          width=self._up_kwargs["width"] // 2,
      )
      x = self.conv1(x_sub2)
      x = self.bn1(x)
      x = self.relu(x)
      x = self.maxpool(x)
      x = self.layer1(x)
      x_sub2_out = self.layer2(x)
  
      x_sub4 = F.contrib.BilinearResize2D(
          x_sub2_out,
          height=self._up_kwargs["height"] // 32,
          width=self._up_kwargs["width"] // 32,
      )
      x = self.layer3(x_sub4)
      x = self.layer4(x)
      x_sub4_out = self.psp_head.demo(x)
  
      x_sub4_out = self.conv_sub4(x_sub4_out)
      x_sub2_out = self.conv_sub2(x_sub2_out)
      res = self.head.demo(x_sub1_out, x_sub2_out, x_sub4_out)
      return res[0]
  
imports: from __future__ import division
  from mxnet.gluon import nn
  from mxnet.context import cpu
  from mxnet.gluon.nn import HybridBlock
  from gluoncv.model_zoo.segbase import SegBaseModel
  from gluoncv.model_zoo.pspnet import _PSPHead
label_desc: Use image node_id 4 for calling the ICNet obj's underlying member method code with example usage: obj.predict(x) and returns: res