code: def __init__(self, in_channels):
      super(EfficientNetb3_PREN, self).__init__()
      """
          the fllowing are efficientnetb3's superparams,
          they means efficientnetb3 network's width, depth, resolution and 
          dropout respectively, to fit for text recognition task, the resolution 
          here is changed from 300 to 64.
          """
      w, d, s, p = 1.2, 1.4, 64, 0.3
      self._blocks_args, self._global_params = efficientnet(
          width_coefficient=w,
          depth_coefficient=d,
          dropout_rate=p,
          image_size=s,
      )
      self.out_channels = []
      # stem
      out_channels = EffUtils.round_filters(32, self._global_params)
      self._conv_stem = nn.Conv2D(
          in_channels,
          out_channels,
          3,
          2,
          padding="same",
          bias_attr=False,
      )
      self._bn0 = nn.BatchNorm(out_channels)
  
      # build blocks
      self._blocks = []
      # to extract three feature maps for fpn based on efficientnetb3 backbone
      self._concerned_block_idxes = [7, 17, 25]
      _concerned_idx = 0
      for i, block_args in enumerate(self._blocks_args):
          block_args = block_args._replace(
              input_filters=EffUtils.round_filters(
                  block_args.input_filters, self._global_params
              ),
              output_filters=EffUtils.round_filters(
                  block_args.output_filters, self._global_params
              ),
              num_repeat=EffUtils.round_repeats(
                  block_args.num_repeat, self._global_params
              ),
          )
          self._blocks.append(
              self.add_sublayer(f"{i}-0", MbConvBlock(block_args))
          )
          _concerned_idx += 1
          if _concerned_idx in self._concerned_block_idxes:
              self.out_channels.append(block_args.output_filters)
          if block_args.num_repeat > 1:
              block_args = block_args._replace(
                  input_filters=block_args.output_filters, stride=1
              )
          for j in range(block_args.num_repeat - 1):
              self._blocks.append(
                  self.add_sublayer(
                      f"{i}-{j+1}", MbConvBlock(block_args)
                  )
              )
              _concerned_idx += 1
              if _concerned_idx in self._concerned_block_idxes:
                  self.out_channels.append(block_args.output_filters)
  
      self._swish = nn.Swish()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import re
  import collections
  import paddle
  import paddle.nn
  import paddle.nn.functional
label_desc: Use image node_id 1 to create a new EfficientNetb3_PREN object from inherited base classes: nn with example: obj = EfficientNetb3_PREN(in_channels)