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 __init__(
      self,
      channels: int,
  ) -> None:
      super().__init__()
      self.channels = channels
      self.upsample = layers.UpSampling2D(
          size=(2, 2), interpolation="nearest"
      )
      self.inner_blocks = [
          layers.Conv2D(
              channels, 1, strides=1, kernel_initializer="he_normal"
          )
          for _ in range(4)
      ]
      self.layer_blocks = [
          self.build_upsampling(channels, dilation_factor=2**idx)
          for idx in range(4)
      ]
  
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 1 to create a new FeaturePyramidNetwork object from inherited base classes: layers, NestedObject with example: obj = FeaturePyramidNetwork(channels)