class_docstr: An implementation of the Attention Temporal Graph Convolutional Cell.
  For details see this paper: `"A3T-GCN: Attention Temporal Graph Convolutional
  Network for Traffic Forecasting." <https://arxiv.org/abs/2006.11583>`_
  
  Args:
      in_channels (int): Number of input features.
      out_channels (int): Number of output features.
      periods (int): Number of time periods.
      improved (bool): Stronger self loops (default :obj:`False`).
      cached (bool): Caching the message weights (default :obj:`False`).
      add_self_loops (bool): Adding self-loops for smoothing (default :obj:`True`).
code: def _setup_layers(self):
      self._base_tgcn = TGCN(
          in_channels=self.in_channels,
          out_channels=self.out_channels,
          improved=self.improved,
          cached=self.cached,
          add_self_loops=self.add_self_loops,
      )
      device = torch.device(
          "cuda" if torch.cuda.is_available() else "cpu"
      )
      self._attention = torch.nn.Parameter(
          torch.empty(self.periods, device=device)
      )
      torch.nn.init.uniform_(self._attention)
  
file_path: pytorch_geometric_temporal/torch_geometric_temporal/nn/recurrent/attentiontemporalgcn.py
imports: import torch
  from .temporalgcn import TGCN
  from .temporalgcn import TGCN2
  from torch_geometric.nn import GCNConv
label_desc: Use image node_id 2 for calling the A3TGCN obj's underlying member method code with example usage: obj._setup_layers() without return types