class_docstr: The Set Abstraction Layer
class_docstr_tok: ["The","Set","Abstraction","Layer"]
code: def __init__(
      self,
      npoints,
      batch_size,
      radius,
      mlp_sizes,
      n_neighbor=64,
      group_all=False,
  ):
      super(SAModule, self).__init__()
      self.group_all = group_all
      if not group_all:
          self.npoints = npoints
          self.frnn_graph = FixedRadiusNNGraph(radius, n_neighbor)
      self.message = RelativePositionMessage(n_neighbor)
      self.conv = PointNetConv(mlp_sizes, batch_size)
      self.batch_size = 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 SAModule object from inherited base classes: nn with example: obj = SAModule(npoints, batch_size, radius, mlp_sizes, n_neighbor, group_all)