class_docstr: The internal module of a supervertex, which is an external feature layer.
  
  Args:
      in_channels (int): Size of each input sample. In GripNet, it should be the dimension of the output embedding of
      the corresponding parent supervertex.
      out_channels (int): Size of each output sample. In GripNet, it is the dimension of the output embedding of
          the supervertex.
      num_out_node (int): the number of output nodes.
class_docstr_tok: ["The","internal","module","of","a","supervertex",",","which","is","an","external","feature","layer",".","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",".","In","GripNet",",","it","should","be","the","dimension","of","the","output","embedding","of","the","corresponding","parent","supervertex",".","out_channels","(","int",")",":","Size","of","each","output","sample",".","In","GripNet",",","it","is","the","dimension","of","the","output","embedding","of","the","supervertex",".","num_out_node","(","int",")",":","the","number","of","output","nodes","."]
code: def __init__(
      self, in_channels: int, out_channels: int, num_out_node: int
  ) -> None:
      super(GripNetExternalModule, self).__init__()
  
      self.in_channels = in_channels
      self.out_channels = out_channels
      self.num_out_node = num_out_node
  
      self.exter_agg_layer = GCNEncoderLayer(
          in_channels, out_channels, cached=True
      )
  
imports: import logging
  from typing import Dict
  import torch
  import torch.nn.functional
  from torch.nn import Module
  from kale.embed.gcn import GCNEncoderLayer, RGCNEncoderLayer
  from kale.prepdata.supergraph_construct import SuperGraph, SuperVertex, SuperVertexParaSetting
label_desc: Use image node_id 1 to create a new GripNetExternalModule object from inherited base classes: Module with example: obj = GripNetExternalModule(in_channels, out_channels, num_out_node)