class_docstr: General wrapper for stack of layers
class_docstr_tok: ["General","wrapper","for","stack","of","layers"]
code: def __init__(
      self,
      name,
      num_layers,
      dim_in,
      dim_out,
      dim_inner=None,
      final_act=True,
      **kwargs,
  ):
      super(GeneralMultiLayer, self).__init__()
      dim_inner = dim_in if dim_inner is None else dim_inner
      for i in range(num_layers):
          d_in = dim_in if i == 0 else dim_inner
          d_out = dim_out if i == num_layers - 1 else dim_inner
          has_act = final_act if i == num_layers - 1 else True
          layer = GeneralLayer(name, d_in, d_out, has_act, **kwargs)
          self.add_module("Layer_{}".format(i), layer)
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  import torch_geometric
  import graphgym.register
  from graphgym.config import cfg
  from graphgym.contrib.layer.generalconv import GeneralConvLayer, GeneralEdgeConvLayer
  from graphgym.models.act import act_dict
label_desc: Use image node_id 1 to create a new GeneralMultiLayer object from inherited base classes: nn with example: obj = GeneralMultiLayer(name, num_layers, dim_in, dim_out, dim_inner, final_act)