class_docstr: AutoGAT. The model used in this automodel is GAT, i.e., the graph attentional network from the `"Graph Attention Networks"
  <https://arxiv.org/abs/1710.10903>`_ paper. The layer is
  
  .. math::
      \mathbf{x}^{\prime}_i = \alpha_{i,i}\mathbf{\Theta}\mathbf{x}_{i} +
      \sum_{j \in \mathcal{N}(i)} \alpha_{i,j}\mathbf{\Theta}\mathbf{x}_{j}
  where the attention coefficients :math:`\alpha_{i,j}` are computed as
  
  .. math::
      \alpha_{i,j} =
      \frac{
      \exp\left(\mathrm{LeakyReLU}\left(\mathbf{a}^{\top}
      [\mathbf{\Theta}\mathbf{x}_i \, \Vert \, \mathbf{\Theta}\mathbf{x}_j]
      \right)\right)}
      {\sum_{k \in \mathcal{N}(i) \cup \{ i \}}
      \exp\left(\mathrm{LeakyReLU}\left(\mathbf{a}^{\top}
      [\mathbf{\Theta}\mathbf{x}_i \, \Vert \, \mathbf{\Theta}\mathbf{x}_k]
      \right)\right)}.
  
  Parameters
  ----------
  input_dimension: `Optional[int]`
      The dimension of input features.
  final_dimension: `Optional[int]`
      The dimension of final features.
  device: `torch.device` or `str` or `int`
      The device where model will be running on.
  kwargs:
      Other parameters.
class_docstr_tok: ["AutoGAT",".","The","model","used","in","this","automodel","is","GAT",",","i.e.",",","the","graph","attentional","network","from","the","`","``","Graph","Attention","Networks","''","<","https",":","\/\/arxiv.org\/abs\/1710.10903",">","`","_","paper",".","The","layer","is","..","math",":",":","\\mathbf","{","x","}","^","{","\\prime","}","_i","=","\\alpha_","{","i",",","i","}","\\mathbf","{","\\Theta","}","\\mathbf","{","x","}","_","{","i","}","+","\\sum_","{","j","\\in","\\mathcal","{","N","}","(","i",")","}","\\alpha_","{","i",",","j","}","\\mathbf","{","\\Theta","}","\\mathbf","{","x","}","_","{","j","}","where","the","attention","coefficients",":","math",":","`","\\alpha_","{","i",",","j","}","`","are","computed","as","..","math",":",":","\\alpha_","{","i",",","j","}","=","\\frac","{","\\exp\\left","(","\\mathrm","{","LeakyReLU","}","\\left","(","\\mathbf","{","a","}","^","{","\\top","}","[","\\mathbf","{","\\Theta","}","\\mathbf","{","x","}","_i","\\",",","\\Vert","\\",",","\\mathbf","{","\\Theta","}","\\mathbf","{","x","}","_j","]","\\right",")","\\right",")","}","{","\\sum_","{","k","\\in","\\mathcal","{","N","}","(","i",")","\\cup","\\","{","i","\\","}","}","\\exp\\left","(","\\mathrm","{","LeakyReLU","}","\\left","(","\\mathbf","{","a","}","^","{","\\top","}","[","\\mathbf","{","\\Theta","}","\\mathbf","{","x","}","_i","\\",",","\\Vert","\\",",","\\mathbf","{","\\Theta","}","\\mathbf","{","x","}","_k","]","\\right",")","\\right",")","}",".","Parameters","--","--","--","--","--","input_dimension",":","`","Optional","[","int","]","`","The","dimension","of","input","features",".","final_dimension",":","`","Optional","[","int","]","`","The","dimension","of","final","features",".","device",":","`","torch.device","`","or","`","str","`","or","`","int","`","The","device","where","model","will","be","running","on",".","kwargs",":","Other","parameters","."]
code: def get_output_dimensions(self) -> _typing.Iterable[int]:
      temp = list(self.hyper_parameters["hidden"])
      concat_last = True
      if (
          self.final_dimension not in (Ellipsis, None)
          and isinstance(self.final_dimension, int)
          and self.final_dimension > 0
      ):
          temp.append(self.final_dimension)
          concat_last = False
      output_dimensions = [self.input_dimension]
      output_dimensions.extend(
          GATUtils.to_total_hidden_dimensions(
              temp,
              self.hyper_parameters.get(
                  "num_hidden_heads", self.hyper_parameters["heads"]
              ),
              self.hyper_parameters.get("num_output_heads", 1),
              concat_last=concat_last,
          )
      )
      return output_dimensions
  
file_path: AutoGL/autogl/module/model/encoders/_dgl/_gat.py
imports: import logging
  import torch.nn.functional
  import typing
  import dgl
  from dgl.nn.pytorch.conv import GATConv
  from ..None import base_encoder, encoder_registry
  from ...None import _utils
label_desc: Use image node_id 2 for calling the GATEncoderMaintainer obj's underlying member method code with example usage: obj.get_output_dimensions() and returns: output_dimensions