class_docstr: An implementation of the tranform attention mechanism.
  For details see this paper: `"GMAN: A Graph Multi-Attention Network for Traffic Prediction."
  <https://arxiv.org/pdf/1911.08415.pdf>`_
  
  Args:
      K (int) : Number of attention heads.
      d (int) : Dimension of each attention head outputs.
      bn_decay (float): Batch normalization momentum.
code: def __init__(self, K: int, d: int, bn_decay: float):
      super(TransformAttention, self).__init__()
      D = K * d
      self._K = K
      self._d = d
      self._fully_connected_q = FullyConnected(
          input_dims=D, units=D, activations=F.relu, bn_decay=bn_decay
      )
      self._fully_connected_k = FullyConnected(
          input_dims=D, units=D, activations=F.relu, bn_decay=bn_decay
      )
      self._fully_connected_v = FullyConnected(
          input_dims=D, units=D, activations=F.relu, bn_decay=bn_decay
      )
      self._fully_connected = FullyConnected(
          input_dims=D, units=D, activations=F.relu, bn_decay=bn_decay
      )
  
imports: import math
  from typing import Union, Callable, Optional
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new TransformAttention object from inherited base classes: nn with example: obj = TransformAttention(K, d, bn_decay)