class_docstr: Resnet block with optional bottleneck activated by default
  Arguments:
      down_conv_nn (len of 2 or 3) :
                      sizes of input, intermediate, output.
                      If length == 2 then intermediate =  num_outputs // 4
      radius : radius of the conv kernel
      sigma :
      density_parameter : density parameter for the kernel
      max_num_neighbors : maximum number of neighboors for the neighboor search
      activation : activation function
      has_bottleneck: wether to use the bottleneck or not
      bn_momentum
      bn : batch norm (can be None -> no batch norm)
      grid_size : size of the grid,
      prev_grid_size : size of the grid at previous step.
                      In case of a strided block, this is different than grid_size
class_docstr_tok: ["Resnet","block","with","optional","bottleneck","activated","by","default","Arguments",":","down_conv_nn","(","len","of","2","or","3",")",":","sizes","of","input",",","intermediate",",","output",".","If","length","==","2","then","intermediate","=","num_outputs","\/\/","4","radius",":","radius","of","the","conv","kernel","sigma",":","density_parameter",":","density","parameter","for","the","kernel","max_num_neighbors",":","maximum","number","of","neighboors","for","the","neighboor","search","activation",":","activation","function","has_bottleneck",":","wether","to","use","the","bottleneck","or","not","bn_momentum","bn",":","batch","norm","(","can","be","None","-",">","no","batch","norm",")","grid_size",":","size","of","the","grid",",","prev_grid_size",":","size","of","the","grid","at","previous","step",".","In","case","of","a","strided","block",",","this","is","different","than","grid_size"]
code: def neighbour_finder(self):
      return self.kp_conv.neighbour_finder
  
imports: import torch
  import sys
  from torch.nn import Linear
  from .kernels import KPConvLayer, KPConvDeformableLayer
  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.core.base_conv.message_passing import GlobalBaseModule
  from torch_points3d.core.common_modules.base_modules import Identity
  from torch_points3d.utils.config import is_list
label_desc: Use image node_id 4 for calling the ResnetBBlock obj's underlying member method code with example usage: obj.neighbour_finder() and returns: self