code: def __init__(
      self,
      indim,
      outdim,
      ratio1,
      ratio2,
      point_pos_nn1,
      point_pos_nn2,
      attention_nn1,
      attention_nn2,
      global_nn1,
      global_nn2,
      *args,
      **kwargs,
  ):
      if (
          kwargs.get("index") == 0
          and kwargs.get("nb_feature") is not None
      ):
          indim = kwargs.get("nb_feature")
      super(DilatedResidualBlock, self).__init__(indim, outdim, outdim)
      self.conv1 = RandlaConv(
          ratio1,
          16,
          point_pos_nn=point_pos_nn1,
          attention_nn=attention_nn1,
          down_conv_nn=global_nn1,
          *args,
          **kwargs,
      )
      kwargs["nb_feature"] = None
      self.conv2 = RandlaConv(
          ratio2,
          16,
          point_pos_nn=point_pos_nn2,
          attention_nn=attention_nn2,
          down_conv_nn=global_nn2,
          *args,
          **kwargs,
      )
  
imports: import torch
  import torch.nn.functional
  from torch_geometric.nn import MessagePassing
  from torch_points3d.core.spatial_ops import *
  from torch_points3d.core.base_conv.message_passing import *
label_desc: Use image node_id 1 to create a new DilatedResidualBlock object from inherited base classes: BaseResnetBlock with example: obj = DilatedResidualBlock(indim, outdim, ratio1, ratio2, point_pos_nn1, point_pos_nn2, attention_nn1, attention_nn2, global_nn1, global_nn2)