class_docstr: The fused graph attention operator from the
  `"Understanding GNN Computational Graph: A Coordinated Computation, IO, and
  Memory Perspective"
  <https://proceedings.mlsys.org/paper/2022/file/
  9a1158154dfa42caddbd0694a4e9bdc8-Paper.pdf>`_ paper.
  
  :class:`FusedGATConv` is an optimized version of
  :class:`~torch_geometric.nn.conv.GATConv` based on the :obj:`dgNN` package
  that fuses message passing computation for accelerated execution and lower
  memory footprint.
  
  .. note::
  
      This implementation is based on the :obj:`dgNN` package.
      See `here <https://github.com/dgSPARSE/dgNN>`__ for instructions on how
      to install.
class_docstr_tok: ["The","fused","graph","attention","operator","from","the","`","``","Understanding","GNN","Computational","Graph",":","A","Coordinated","Computation",",","IO",",","and","Memory","Perspective","''","<","https",":","\/\/proceedings.mlsys.org\/paper\/2022\/file\/","9a1158154dfa42caddbd0694a4e9bdc8-Paper.pdf",">","`","_","paper",".",":","class",":","`","FusedGATConv","`","is","an","optimized","version","of",":","class",":","`","~torch_geometric.nn.conv.GATConv","`","based","on","the",":","obj",":","`","dgNN","`","package","that","fuses","message","passing","computation","for","accelerated","execution","and","lower","memory","footprint",".","..","note",":",":","This","implementation","is","based","on","the",":","obj",":","`","dgNN","`","package",".","See","`","here","<","https",":","\/\/github.com\/dgSPARSE\/dgNN",">","`","__","for","instructions","on","how","to","install","."]
code: def __init__(self, *args, **kwargs):
      super().__init__(*args, **kwargs)
  
      if self.add_self_loops:
          raise ValueError(
              f"'{self.__class__.__name__}' does not support "
              f"adding self-loops. Please add them manually "
              f"in a pre-processing step and set "
              f"`add_self_loops=False`."
          )
  
      if self.edge_dim is not None:
          raise ValueError(
              f"'{self.__class__.__name__}' does not support "
              f"edge features. Set `edge_dim=None` in order "
              f"to proceed."
          )
  
      from dgNN.operators import GATConvFuse
  
      self.op = GATConvFuse
  
file_path: pytorch_geometric/torch_geometric/nn/conv/fused_gat_conv.py
imports: from typing import Optional, Tuple
  import torch
  from torch import Tensor
  from torch_geometric.nn.conv import GATConv
  from torch_geometric.utils import sort_edge_index
  from torch_geometric.utils.sparse import index2ptr
label_desc: Use image node_id 1 to create a new FusedGATConv object from inherited base classes: GATConv with example: obj = FusedGATConv()