class_docstr: Self Attention and Normalization Unit
class_docstr_tok: ["Self","Attention","and","Normalization","Unit"]
code: def __init__(self, config, has_relative_attention_bias=False):
      super().__init__()
      self.self_attn = GPTSanJapaneseAttention(
          embed_dim=config.d_model,
          num_heads=config.num_heads,
          is_decoder=True,
          bias=has_relative_attention_bias,
      )
      self.norm = nn.LayerNorm(
          config.d_model, eps=config.layer_norm_epsilon
      )
  
imports: import copy
  from typing import List, Optional, Tuple, Union
  import torch
  import torch.nn
  from ...activations import ACT2FN
  from ...modeling_outputs import MoECausalLMOutputWithPast, MoEModelOutputWithPastAndCrossAttentions
  from ...modeling_utils import PreTrainedModel
  from ...utils import DUMMY_INPUTS, DUMMY_MASK, add_start_docstrings, add_start_docstrings_to_model_forward, is_torch_fx_proxy, logging
  from .configuration_gptsan_japanese import GPTSanJapaneseConfig
label_desc: Use image node_id 1 to create a new GPTSanJapaneseLayerSelfAttention object from inherited base classes: nn with example: obj = GPTSanJapaneseLayerSelfAttention(config, has_relative_attention_bias)