code: def apply_nn(self, input):
      out_feat = self.backbone(input).x
      out_feat = self.FC_layer(out_feat)
      if self.normalize_feature:
          return out_feat / (
              torch.norm(out_feat, p=2, dim=1, keepdim=True) + 1e-20
          )
      else:
          return out_feat
  
file_path: torch-points3d/torch_points3d/models/registration/spconv3d.py
imports: import torch
  from torch_points3d.models.registration.base import FragmentBaseModel
  from torch.nn import Sequential, Linear, LeakyReLU, Dropout
  from torch_geometric.data import Data, Batch
  from torch_points3d.core.common_modules import FastBatchNorm1d, Seq
  from torch_points3d.applications.sparseconv3d import SparseConv3d
label_desc: Use image node_id 5 for calling the SparseConv3D obj's underlying member method code with example usage: obj.apply_nn(input) and returns: unknown, out_feat