code: def weight_initialization(self):
      for m in self.modules():
          if isinstance(m, sp3d.nn.Conv3d) or isinstance(
              m, sp3d.nn.Conv3dTranspose
          ):
              torch.nn.init.kaiming_normal_(
                  m.kernel, mode="fan_out", nonlinearity="relu"
              )
  
          if isinstance(m, sp3d.nn.BatchNorm):
              torch.nn.init.constant_(m.bn.weight, 1)
              torch.nn.init.constant_(m.bn.bias, 0)
  
imports: import os
  import sys
  from omegaconf import DictConfig, OmegaConf
  import logging
  import torch
  from torch_geometric.data import Batch
  from torch_points3d.applications.modelfactory import ModelFactory
  import torch_points3d.modules.SparseConv3d
  from torch_points3d.core.base_conv.message_passing import *
  from torch_points3d.modules.SparseConv3d.modules import *
  from torch_points3d.core.base_conv.partial_dense import *
  from torch_points3d.models.base_architectures.unet import UnwrappedUnetBasedModel
  from torch_points3d.core.common_modules.base_modules import MLP
  from .utils import extract_output_nc
label_desc: Use image node_id 4 for calling the BaseSparseConv3d obj's underlying member method code with example usage: obj.weight_initialization() without return types