code: def fastrcnn_Xconv1fc_head(feature, num_convs, norm=None):
      
      assert norm in [None, 'GN'], norm
      l = feature
      with argscope(Conv2D, data_format='channels_first',
                    kernel_initializer=tf.variance_scaling_initializer(
                        scale=2.0, mode='fan_out',
                        distribution='untruncated_normal' if get_tf_version_tuple() >= (1, 12) else 'normal')):
          for k in range(num_convs):
              l = Conv2D('conv{}'.format(k), l, cfg.FPN.FRCNN_CONV_HEAD_DIM, 3, activation=tf.nn.relu)
              if norm is not None:
                  l = GroupNorm('gn{}'.format(k), l)
          l = FullyConnected('fc', l, cfg.FPN.FRCNN_FC_HEAD_DIM,
                             kernel_initializer=tf.variance_scaling_initializer(), activation=tf.nn.relu)
      return l
docs: Args:
          feature (NCHW):
          num_classes(int): num_category + 1
          num_convs (int): number of conv layers
          norm (str or None): either None or 'GN'
  
      Returns:
          2D head feature