code: def __init__(
      self,
      num_atoms,
      bond_feat_dim,  # not used
      num_targets=1,
      otf_graph=False,
      use_pbc=True,
      regress_forces=False,
      hidden_channels=128,
      num_blocks=4,
      num_radial=32,
      num_spherical=7,
      cutoff=6.0,
      num_output_layers=3,
      hetero=False,
  ):
      super(ComENet, self).__init__()
      self.num_targets = num_targets
      self.regress_forces = regress_forces
      self.use_pbc = use_pbc
      self.cutoff = cutoff
      self.otf_graph = otf_graph
      self.num_blocks = num_blocks
  
      if sym is None:
          raise ImportError("Package `sympy` could not be found.")
  
      act = swish
      self.act = act
  
      self.feature1 = torsion_emb(
          num_radial=num_radial,
          num_spherical=num_spherical,
          cutoff=cutoff,
      )
      self.feature2 = angle_emb(
          num_radial=num_radial,
          num_spherical=num_spherical,
          cutoff=cutoff,
      )
  
      self.emb = EmbeddingBlock(hidden_channels, act)
  
      self.interaction_blocks = torch.nn.ModuleList(
          [
              SimpleInteractionBlock(
                  hidden_channels,
                  num_radial,
                  num_spherical,
                  num_output_layers,
                  hidden_channels,
                  act,
                  hetero=hetero,
              )
              for _ in range(num_blocks)
          ]
      )
      self.lins = torch.nn.ModuleList()
      if hetero:
          for _ in range(num_output_layers):
              self.lins.append(
                  HeteroLinear(
                      hidden_channels, hidden_channels, num_tags=3
                  )
              )
          self.lin_out = HeteroLinear(
              hidden_channels,
              num_targets,
              num_tags=3,
              weight_initializer="zeros",
          )
      else:
          for _ in range(num_output_layers):
              self.lins.append(Linear(hidden_channels, hidden_channels))
          self.lin_out = Linear(
              hidden_channels, num_targets, weight_initializer="zeros"
          )
      self.reset_parameters()
  
imports: from torch_cluster import radius_graph
  from torch_geometric.nn import GraphConv, GraphNorm
  from torch_geometric.nn import inits
  from torch_scatter import scatter, scatter_min
  from torch.nn import Embedding
  import torch
  from torch import nn
  from torch import Tensor
  import torch.nn.functional
  import math
  from math import sqrt
label_desc: Use image node_id 1 to create a new ComENet object from inherited base classes: nn with example: obj = ComENet(num_atoms, bond_feat_dim, num_targets, otf_graph, use_pbc, regress_forces, hidden_channels, num_blocks, num_radial, num_spherical, cutoff, num_output_layers, hetero)