class_docstr: PPNet Stage block (usually strided + non strided)
  
  Arguments: Accepted kwargs
      block_names: Name of the blocks to be used as part of this dual block
      down_conv_nn: Size of the convs e.g. [64,128],
      grid_size: Size of the grid for each block,
      prev_grid_size: Size of the grid in the previous KPConv
      has_bottleneck: Wether a block should implement the bottleneck
      bottleneck_ratio: bottleneck ratio, intermediate =  num_outputs // bottleneck ratio
      max_num_neighbors: Max number of neighboors for the radius search,
      position_embedding: Position Embedding type
      reduction: Reduction type in local aggregation
      output_conv: whether to use a convolution after aggregation
      bn_momentum: the value used for the running_mean and running_var
class_docstr_tok: ["PPNet","Stage","block","(","usually","strided","+","non","strided",")","Arguments",":","Accepted","kwargs","block_names",":","Name","of","the","blocks","to","be","used","as","part","of","this","dual","block","down_conv_nn",":","Size","of","the","convs","e.g",".","[","64,128","]",",","grid_size",":","Size","of","the","grid","for","each","block",",","prev_grid_size",":","Size","of","the","grid","in","the","previous","KPConv","has_bottleneck",":","Wether","a","block","should","implement","the","bottleneck","bottleneck_ratio",":","bottleneck","ratio",",","intermediate","=","num_outputs","\/\/","bottleneck","ratio","max_num_neighbors",":","Max","number","of","neighboors","for","the","radius","search",",","position_embedding",":","Position","Embedding","type","reduction",":","Reduction","type","in","local","aggregation","output_conv",":","whether","to","use","a","convolution","after","aggregation","bn_momentum",":","the","value","used","for","the","running_mean","and","running_var"]
code: def sampler(self):
      return [b.sampler for b in self.blocks]
  
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 3 for calling the PPStageBlock obj's underlying member method code with example usage: obj.sampler() and returns: unknown