class_docstr: The ARMA graph convolutional operator from the `"Graph Neural Networks
  with Convolutional ARMA Filters" <https://arxiv.org/abs/1901.01343>`_
  paper.
  
  .. math::
      \mathbf{X}^{\prime} = \frac{1}{K} \sum_{k=1}^K \mathbf{X}_k^{(T)},
  
  with :math:`\mathbf{X}_k^{(T)}` being recursively defined by
  
  .. math::
      \mathbf{X}_k^{(t+1)} = \sigma \left( \mathbf{\hat{L}}
      \mathbf{X}_k^{(t)} \mathbf{W} + \mathbf{X}^{(0)} \mathbf{V} \right),
  
  where :math:`\mathbf{\hat{L}} = \mathbf{I} - \mathbf{L} = \mathbf{D}^{-1/2}
  \mathbf{A} \mathbf{D}^{-1/2}` denotes the
  modified Laplacian :math:`\mathbf{L} = \mathbf{I} - \mathbf{D}^{-1/2}
  \mathbf{A} \mathbf{D}^{-1/2}`.
  
  Args:
      in_channels (int): Size of each input sample, or :obj:`-1` to derive
          the size from the first input(s) to the forward method.
      out_channels (int): Size of each output sample
          :math:`\mathbf{x}^{(t+1)}`.
      num_stacks (int, optional): Number of parallel stacks :math:`K`.
          (default: :obj:`1`).
      num_layers (int, optional): Number of layers :math:`T`.
          (default: :obj:`1`)
      act (callable, optional): Activation function :math:`\sigma`.
          (default: :meth:`torch.nn.ReLU()`)
      shared_weights (int, optional): If set to :obj:`True` the layers in
          each stack will share the same parameters. (default: :obj:`False`)
      dropout (float, optional): Dropout probability of the skip connection.
          (default: :obj:`0.`)
      bias (bool, optional): If set to :obj:`False`, the layer will not learn
          an additive bias. (default: :obj:`True`)
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.conv.MessagePassing`.
  
  Shapes:
      - **input:**
        node features :math:`(|\mathcal{V}|, F_{in})`,
        edge indices :math:`(2, |\mathcal{E}|)`,
        edge weights :math:`(|\mathcal{E}|)` *(optional)*
      - **output:** node features :math:`(|\mathcal{V}|, F_{out})`
class_docstr_tok: ["The","ARMA","graph","convolutional","operator","from","the","`","``","Graph","Neural","Networks","with","Convolutional","ARMA","Filters","''","<","https",":","\/\/arxiv.org\/abs\/1901.01343",">","`","_","paper",".","..","math",":",":","\\mathbf","{","X","}","^","{","\\prime","}","=","\\frac","{","1","}","{","K","}","\\sum_","{","k=1","}","^K","\\mathbf","{","X","}","_k^","{","(","T",")","}",",","with",":","math",":","`","\\mathbf","{","X","}","_k^","{","(","T",")","}","`","being","recursively","defined","by","..","math",":",":","\\mathbf","{","X","}","_k^","{","(","t+1",")","}","=","\\sigma","\\left","(","\\mathbf","{","\\hat","{","L","}","}","\\mathbf","{","X","}","_k^","{","(","t",")","}","\\mathbf","{","W","}","+","\\mathbf","{","X","}","^","{","(","0",")","}","\\mathbf","{","V","}","\\right",")",",","where",":","math",":","`","\\mathbf","{","\\hat","{","L","}","}","=","\\mathbf","{","I","}","-","\\mathbf","{","L","}","=","\\mathbf","{","D","}","^","{","-1\/2","}","\\mathbf","{","A","}","\\mathbf","{","D","}","^","{","-1\/2","}","`","denotes","the","modified","Laplacian",":","math",":","`","\\mathbf","{","L","}","=","\\mathbf","{","I","}","-","\\mathbf","{","D","}","^","{","-1\/2","}","\\mathbf","{","A","}","\\mathbf","{","D","}","^","{","-1\/2","}","`",".","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",",","or",":","obj",":","`","-1","`","to","derive","the","size","from","the","first","input","(","s",")","to","the","forward","method",".","out_channels","(","int",")",":","Size","of","each","output","sample",":","math",":","`","\\mathbf","{","x","}","^","{","(","t+1",")","}","`",".","num_stacks","(","int",",","optional",")",":","Number","of","parallel","stacks",":","math",":","`","K","`",".","(","default",":",":","obj",":","`","1","`",")",".","num_layers","(","int",",","optional",")",":","Number","of","layers",":","math",":","`","T","`",".","(","default",":",":","obj",":","`","1","`",")","act","(","callable",",","optional",")",":","Activation","function",":","math",":","`","\\sigma","`",".","(","default",":",":","meth",":","`","torch.nn.ReLU","(",")","`",")","shared_weights","(","int",",","optional",")",":","If","set","to",":","obj",":","`","True","`","the","layers","in","each","stack","will","share","the","same","parameters",".","(","default",":",":","obj",":","`","False","`",")","dropout","(","float",",","optional",")",":","Dropout","probability","of","the","skip","connection",".","(","default",":",":","obj",":","`","0.","`",")","bias","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","False","`",",","the","layer","will","not","learn","an","additive","bias",".","(","default",":",":","obj",":","`","True","`",")","*","*","kwargs","(","optional",")",":","Additional","arguments","of",":","class",":","`","torch_geometric.nn.conv.MessagePassing","`",".","Shapes",":","-","*","*","input",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","in","}",")","`",",","edge","indices",":","math",":","`","(","2",",","|\\mathcal","{","E","}","|",")","`",",","edge","weights",":","math",":","`","(","|\\mathcal","{","E","}","|",")","`","*","(","optional",")","*","-","*","*","output",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","out","}",")","`"]
code: def initialize_parameters(self, module, input):
      if isinstance(
          self.init_weight, nn.parameter.UninitializedParameter
      ):
          F_in, F_out = input[0].size(-1), self.out_channels
          T, K = self.weight.size(0) + 1, self.weight.size(1)
          self.init_weight.materialize((K, F_in, F_out))
          self.root_weight.materialize((T, K, F_in, F_out))
          glorot(self.init_weight)
          glorot(self.root_weight)
  
      module._hook.remove()
      delattr(module, "_hook")
  
file_path: pytorch_geometric/torch_geometric/nn/conv/arma_conv.py
imports: from typing import Callable, Optional
  import torch
  import torch.nn.functional
  from torch import Tensor, nn
  from torch.nn import Parameter, ReLU
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.nn.conv.gcn_conv import gcn_norm
  from torch_geometric.nn.inits import glorot, zeros
  from torch_geometric.typing import Adj, OptTensor, SparseTensor
  from torch_geometric.utils import spmm
label_desc: Use image node_id 6 for calling the ARMAConv obj's underlying member method code with example usage: obj.initialize_parameters(module, input) without return types