class_docstr: Feature Pyramid Network as described in `"Feature Pyramid Networks for Object Detection"
  <https://arxiv.org/pdf/1612.03144.pdf>`_.
  
  Args:
  ----
      channels: number of channel to output
code: def call(
      self,
      x: List[tf.Tensor],
      **kwargs: Any,
  ) -> tf.Tensor:
      # Channel mapping
      results = [
          block(fmap, **kwargs)
          for block, fmap in zip(self.inner_blocks, x)
      ]
      # Upsample & sum
      for idx in range(len(results) - 1, -1):
          results[idx] += self.upsample(results[idx + 1])
      # Conv & upsample
      results = [
          block(fmap, **kwargs)
          for block, fmap in zip(self.layer_blocks, results)
      ]
  
      return layers.concatenate(results)
  
imports: from copy import deepcopy
  from typing import Any, Dict, List, Optional, Tuple
  import numpy
  import tensorflow
  from tensorflow import keras
  from tensorflow.keras import layers
  from tensorflow.keras.applications import ResNet50
  from doctr.file_utils import CLASS_NAME
  from doctr.models.utils import IntermediateLayerGetter, _bf16_to_float32, conv_sequence, load_pretrained_params
  from doctr.utils.repr import NestedObject
  from ...classification import mobilenet_v3_large
  from .base import DBPostProcessor, _DBNet
label_desc: Use image node_id 4 for calling the FeaturePyramidNetwork obj's underlying member method code with example usage: obj.call(x) and returns: layers