code: def backward(ctx, grad_voxel_feats, grad_voxel_coors=None):
      (
          feats,
          voxel_feats,
          point2voxel_map,
          voxel_points_count,
      ) = ctx.saved_tensors
      grad_feats = torch.zeros_like(feats)
      # TODO: whether to use index put or use cuda_backward
      # To use index put, need point to voxel index
      ext_module.dynamic_point_to_voxel_backward(
          grad_feats,
          grad_voxel_feats.contiguous(),
          feats,
          voxel_feats,
          point2voxel_map,
          voxel_points_count,
          ctx.reduce_type,
      )
      return grad_feats, None, None
  
file_path: lavis/lavis/common/annotator/uniformer/mmcv/ops/scatter_points.py
imports: import torch
  from torch import nn
  from torch.autograd import Function
  from ..utils import ext_loader
label_desc: Use image node_id 2 for calling the _DynamicScatter obj's underlying member method code with example usage: obj.backward(ctx, grad_voxel_feats, grad_voxel_coors) and returns: grad_feats,  None,  None