class_docstr: Aggregate the global object representation to update the representation for each pixel.
code: def __init__(
      self,
      in_channels: int,
      key_channels: int,
      out_channels: int,
      dropout_rate: float = 0.1,
  ):
      super().__init__()
  
      self.attention_block = ObjectAttentionBlock(
          in_channels, key_channels
      )
      self.conv1x1 = nn.Sequential(
          L.ConvBNReLU(2 * in_channels, out_channels, 1),
          nn.Dropout2D(dropout_rate),
      )
  
imports: import os
  from typing import List
  import paddle
  import numpy
  import paddle.nn
  import paddle.nn.functional
  from paddlehub.module.module import moduleinfo
  import paddlehub.vision.segmentation_transforms
  from paddlehub.module.cv_module import ImageSegmentationModule
  import ocrnet_hrnetw18_voc.layers
  from ocrnet_hrnetw18_voc.hrnet import HRNet_W18
label_desc: Use image node_id 1 to create a new SpatialOCRModule object from inherited base classes: nn with example: obj = SpatialOCRModule(in_channels, key_channels, out_channels, dropout_rate)