class_docstr: The Set Abstraction Multi-Scale grouping Layer
class_docstr_tok: ["The","Set","Abstraction","Multi-Scale","grouping","Layer"]
code: def __init__(
      self,
      npoints,
      batch_size,
      radius_list,
      n_neighbor_list,
      mlp_sizes_list,
  ):
      super(SAMSGModule, self).__init__()
      self.batch_size = batch_size
      self.group_size = len(radius_list)
  
      self.npoints = npoints
      self.frnn_graph_list = nn.ModuleList()
      self.message_list = nn.ModuleList()
      self.conv_list = nn.ModuleList()
      for i in range(self.group_size):
          self.frnn_graph_list.append(
              FixedRadiusNNGraph(radius_list[i], n_neighbor_list[i])
          )
          self.message_list.append(
              RelativePositionMessage(n_neighbor_list[i])
          )
          self.conv_list.append(
              PointNetConv(mlp_sizes_list[i], batch_size)
          )
  
imports: import dgl
  import dgl.function
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl.geometry import farthest_point_sampler
  from torch.autograd import Variable
label_desc: Use image node_id 1 to create a new SAMSGModule object from inherited base classes: nn with example: obj = SAMSGModule(npoints, batch_size, radius_list, n_neighbor_list, mlp_sizes_list)