class_docstr: FeatureExtractor of GRCNN (https://papers.nips.cc/paper/6637-gated-recurrent-convolution-neural-network-for-ocr.pdf) 
code: def __init__(self, input_channel, output_channel=512):
      super(RCNN_FeatureExtractor, self).__init__()
      self.output_channel = [
          int(output_channel / 8),
          int(output_channel / 4),
          int(output_channel / 2),
          output_channel,
      ]  # [64, 128, 256, 512]
      self.ConvNet = nn.Sequential(
          nn.Conv2d(input_channel, self.output_channel[0], 3, 1, 1),
          nn.ReLU(True),
          nn.MaxPool2d(2, 2),  # 64 x 16 x 50
          GRCL(
              self.output_channel[0],
              self.output_channel[0],
              num_iteration=5,
              kernel_size=3,
              pad=1,
          ),
          nn.MaxPool2d(2, 2),  # 64 x 8 x 25
          GRCL(
              self.output_channel[0],
              self.output_channel[1],
              num_iteration=5,
              kernel_size=3,
              pad=1,
          ),
          nn.MaxPool2d(2, (2, 1), (0, 1)),  # 128 x 4 x 26
          GRCL(
              self.output_channel[1],
              self.output_channel[2],
              num_iteration=5,
              kernel_size=3,
              pad=1,
          ),
          nn.MaxPool2d(2, (2, 1), (0, 1)),  # 256 x 2 x 27
          nn.Conv2d(
              self.output_channel[2],
              self.output_channel[3],
              2,
              1,
              0,
              bias=False,
          ),
          nn.BatchNorm2d(self.output_channel[3]),
          nn.ReLU(True),
      )
  
imports: import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new RCNN_FeatureExtractor object from inherited base classes: nn with example: obj = RCNN_FeatureExtractor(input_channel, output_channel)