class_docstr: GNN layer for SDMGR.
  
  Args:
      node_dim (int): Dimension of node embedding. Defaults to 256.
      edge_dim (int): Dimension of edge embedding. Defaults to 256.
code: def __init__(self, node_dim: int = 256, edge_dim: int = 256) -> None:
      super().__init__()
      self.in_fc = nn.Linear(node_dim * 2 + edge_dim, node_dim)
      self.coef_fc = nn.Linear(node_dim, 1)
      self.out_fc = nn.Linear(node_dim, node_dim)
      self.relu = nn.ReLU()
  
imports: from typing import Dict, List, Optional, Tuple, Union
  import torch
  from mmengine.model import BaseModule
  from torch import Tensor, nn
  from torch.nn import functional
  from mmocr.models.common.dictionary import Dictionary
  from mmocr.registry import MODELS, TASK_UTILS
  from mmocr.structures import KIEDataSample
label_desc: Use image node_id 1 to create a new GNNLayer object from inherited base classes: nn with example: obj = GNNLayer(node_dim, edge_dim)