code: def __init__(self, in_size, hidden_size=128):
      super(SemanticAttention, self).__init__()
  
      self.project = nn.Sequential(
          nn.Linear(in_size, hidden_size),
          nn.Tanh(),
          nn.Linear(hidden_size, 1, bias=False),
      )
  
imports: import logging
  import dgl
  import math
  import torch
  import torch.nn
  import torch.nn.functional
  import dgl.function
  from dgl.nn.functional import edge_softmax
  from dgl.nn.pytorch import GATConv
  from functools import partial
  from ..._utils import activation
  from ..None import register_model
  from .base import BaseHeteroModelMaintainer
  from .....utils import get_logger
label_desc: Use image node_id 1 to create a new SemanticAttention object from inherited base classes: nn with example: obj = SemanticAttention(in_size, hidden_size)