class_docstr: See :class:`torch_geometric.nn.conv.GATConv`.
class_docstr_tok: ["See",":","class",":","`","torch_geometric.nn.conv.GATConv","`","."]
code: def __init__(
      self,
      in_channels: int,
      out_channels: int,
      heads: int = 1,
      concat: bool = True,
      negative_slope: float = 0.2,
      dropout: float = 0.0,
      bias: bool = True,
  ):
      # TODO Add support for edge features.
      super().__init__()
  
      self.in_channels = in_channels
      self.out_channels = out_channels
      self.heads = heads
      self.concat = concat
      self.negative_slope = negative_slope
      self.dropout = dropout
  
      self.lin = Linear(
          in_channels,
          heads * out_channels,
          bias=False,
          weight_initializer="glorot",
      )
  
      # The learnable parameters to compute attention coefficients:
      self.att_src = Parameter(torch.empty(1, 1, heads, out_channels))
      self.att_dst = Parameter(torch.empty(1, 1, heads, out_channels))
  
      if bias and concat:
          self.bias = Parameter(torch.empty(heads * out_channels))
      elif bias and not concat:
          self.bias = Parameter(torch.empty(out_channels))
      else:
          self.register_parameter("bias", None)
  
      self.reset_parameters()
  
file_path: pytorch_geometric/torch_geometric/nn/dense/dense_gat_conv.py
imports: from typing import Optional
  import torch
  import torch.nn.functional
  from torch import Tensor
  from torch.nn import Parameter
  from torch_geometric.nn.dense.linear import Linear
  from torch_geometric.nn.inits import glorot, zeros
label_desc: Use image node_id 1 to create a new DenseGATConv object from inherited base classes: torch.nn with example: obj = DenseGATConv(in_channels, out_channels, heads, concat, negative_slope, dropout, bias)