code: def __init__(
      self, in_channels: int, out_channels: int, num_layers: List[int]
  ):
      super().__init__()
      sizes = [in_channels] + num_layers + [out_channels]
      self.layers = torch.nn.ModuleList(
          [
              torch.nn.Sequential(
                  torch.nn.Linear(in_size, out_size),
                  torch.nn.LayerNorm(out_size),
                  torch.nn.Tanh(),
              )
              for in_size, out_size in zip(sizes[:-2], sizes[1:-1])
          ]
      )
      self.layers.append(torch.nn.Linear(sizes[-2], sizes[-1]))
  
      self.res_trans = torch.nn.ModuleList(
          [
              torch.nn.Linear(in_channels, layer_size)
              for layer_size in num_layers + [out_channels]
          ]
      )
  
imports: from typing import Callable, List, Optional, Tuple
  import torch
  from torch import Tensor
  from torch_geometric.nn.aggr import Aggregation
  from torch_geometric.nn.inits import reset
  from torch_geometric.utils import scatter
label_desc: Use image node_id 1 to create a new ResNetPotential object from inherited base classes: torch.nn with example: obj = ResNetPotential(in_channels, out_channels, num_layers)