class_docstr: Graph convolutional neural network.
  
  Args:
      in_dim (int): The number of input channels.
      out_dim (int): The number of output channels.
code: def __init__(self, in_dim: int, out_dim: int) -> None:
      super().__init__()
      self.in_dim = in_dim
      self.out_dim = out_dim
      self.weight = nn.Parameter(torch.FloatTensor(in_dim * 2, out_dim))
      self.bias = nn.Parameter(torch.FloatTensor(out_dim))
      init.xavier_uniform_(self.weight)
      init.constant_(self.bias, 0)
      self.aggregator = self.MeanAggregator()
  
imports: from typing import Dict, List, Optional, Sequence, Tuple, Union
  import cv2
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.ops import RoIAlignRotated
  from mmengine.model import BaseModule
  from numpy import ndarray
  from torch import Tensor
  from torch.nn import init
  from mmocr.models.textdet.heads import BaseTextDetHead
  from mmocr.registry import MODELS
  from mmocr.structures import TextDetDataSample
  from mmocr.utils import fill_hole
label_desc: Use image node_id 1 to create a new GraphConv object from inherited base classes: BaseModule with example: obj = GraphConv(in_dim, out_dim)