class_docstr: simple layer with PosPool
  we can perform a stride version (just change the query and the neighbors)
class_docstr_tok: ["simple","layer","with","PosPool","we","can","perform","a","stride","version","(","just","change","the","query","and","the","neighbors",")"]
code: def __init__(
      self,
      down_conv_nn=None,
      grid_size=None,
      prev_grid_size=None,
      sigma=1.0,
      max_num_neighbors=16,
      position_embedding="xyz",
      reduction="avg",
      output_conv=False,
      activation=torch.nn.LeakyReLU(negative_slope=0.2),
      bn_momentum=0.01,
      bn=FastBatchNorm1d,
      **kwargs,
  ):
      super(SimpleBlock, self).__init__()
      assert len(down_conv_nn) == 2
      num_inputs, num_outputs = down_conv_nn
  
      search_radius = self.DENSITY_PARAMETER * sigma * prev_grid_size
      self.neighbour_finder = RadiusNeighbourFinder(
          search_radius, max_num_neighbors, conv_type=self.CONV_TYPE
      )
  
      self.pospool = PosPoolLayer(
          num_inputs,
          num_outputs,
          search_radius,
          position_embedding=position_embedding,
          reduction=reduction,
          output_conv=output_conv,
          activation=activation,
          bn_momentum=bn_momentum,
          bn=bn,
      )
  
      is_strided = prev_grid_size != grid_size
      if is_strided:
          self.sampler = GridSampling3D(grid_size)
      else:
          self.sampler = None
  
imports: import torch
  import sys
  from torch.nn import Linear
  from .ops import PosPoolLayer
  from torch_points3d.core.common_modules.base_modules import BaseModule, FastBatchNorm1d
  from torch_points3d.core.spatial_ops import RadiusNeighbourFinder
  from torch_points3d.core.data_transform import GridSampling3D
  from torch_points3d.utils.enums import ConvolutionFormat
  from torch_points3d.utils.config import is_list
label_desc: Use image node_id 1 to create a new SimpleBlock object from inherited base classes: BaseModule with example: obj = SimpleBlock(down_conv_nn, grid_size, prev_grid_size, sigma, max_num_neighbors, position_embedding, reduction, output_conv, activation, bn_momentum, bn)