code: def __init__(
      self,
      npoint=None,
      radii=None,
      nsample=None,
      down_conv_nn=None,
      channel_raising_nn=None,
      bn=True,
      use_xyz=True,
      activation=nn.ReLU(),
      **kwargs,
  ):
      assert len(radii) == len(nsample)
      if len(radii) != len(down_conv_nn):
          log.warn(
              "The down_conv_nn has a different size as radii. Make sure of have SharedRSConv"
          )
      super(RSConvSharedMSGDown, self).__init__(
          DenseFPSSampler(num_to_sample=npoint),
          DenseRadiusNeighbourFinder(radii, nsample),
          **kwargs,
      )
  
      self.use_xyz = use_xyz
      self.npoint = npoint
      self.mlps = nn.ModuleList()
  
      # https://github.com/Yochengliu/Relation-Shape-CNN/blob/6464eb8bb4efc686adec9da437112ef888e55684/utils/pointnet2_modules.py#L106
      self._mapper = RSConvMapper(
          down_conv_nn, activation=activation, use_xyz=self.use_xyz
      )
  
      self.mlp_out = Sequential(
          *[
              Conv1d(
                  channel_raising_nn[0],
                  channel_raising_nn[-1],
                  kernel_size=1,
                  stride=1,
                  bias=True,
              ),
              nn.BatchNorm1d(channel_raising_nn[-1]),
              activation,
          ]
      )
  
      for i in range(len(radii)):
          self.mlps.append(SharedRSConv(self._mapper, radii[i]))
  
imports: import logging
  import torch
  from torch.nn import Sequential
  import torch.nn
  import torch.nn.functional
  from torch.nn import Conv1d
  import torch_points_kernels
  from torch_points3d.core.base_conv.dense import *
  from torch_points3d.core.common_modules.dense_modules import MLP2D
  from torch_points3d.core.spatial_ops import DenseFPSSampler, DenseRadiusNeighbourFinder
  from torch_points3d.utils.colors import COLORS
label_desc: Use image node_id 1 to create a new RSConvSharedMSGDown object from inherited base classes: BaseDenseConvolutionDown with example: obj = RSConvSharedMSGDown(npoint, radii, nsample, down_conv_nn, channel_raising_nn, bn, use_xyz, activation)