class_docstr: The Neural Fingerprint model from the
  `"Convolutional Networks on Graphs for Learning Molecular Fingerprints"
  <https://arxiv.org/abs/1509.09292>`__ paper to generate fingerprints
  of molecules.
  
  Args:
      in_channels (int): Size of each input sample.
      hidden_channels (int): Size of each hidden sample.
      out_channels (int): Size of each output fingerprint.
      num_layers (int): Number of layers.
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.conv.MFConv`.
class_docstr_tok: ["The","Neural","Fingerprint","model","from","the","`","``","Convolutional","Networks","on","Graphs","for","Learning","Molecular","Fingerprints","''","<","https",":","\/\/arxiv.org\/abs\/1509.09292",">","`","__","paper","to","generate","fingerprints","of","molecules",".","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",".","hidden_channels","(","int",")",":","Size","of","each","hidden","sample",".","out_channels","(","int",")",":","Size","of","each","output","fingerprint",".","num_layers","(","int",")",":","Number","of","layers",".","*","*","kwargs","(","optional",")",":","Additional","arguments","of",":","class",":","`","torch_geometric.nn.conv.MFConv","`","."]
code: def __init__(
      self,
      in_channels: int,
      hidden_channels: int,
      out_channels: int,
      num_layers: int,
      **kwargs,
  ):
      super().__init__()
  
      self.in_channels = in_channels
      self.hidden_channels = hidden_channels
      self.out_channels = out_channels
      self.num_layers = num_layers
  
      self.convs = torch.nn.ModuleList()
      for i in range(self.num_layers):
          in_channels = (
              self.in_channels if i == 0 else self.hidden_channels
          )
          self.convs.append(
              MFConv(in_channels, hidden_channels, **kwargs)
          )
  
      self.lins = torch.nn.ModuleList()
      for _ in range(self.num_layers):
          self.lins.append(
              Linear(hidden_channels, out_channels, bias=False)
          )
  
file_path: pytorch_geometric/torch_geometric/nn/models/neural_fingerprint.py
imports: from typing import Optional
  import torch
  from torch import Tensor
  from torch_geometric.nn import Linear, MFConv, global_add_pool
  from torch_geometric.typing import Adj
label_desc: Use image node_id 1 to create a new NeuralFingerprint object from inherited base classes: torch.nn with example: obj = NeuralFingerprint(in_channels, hidden_channels, out_channels, num_layers)