code: def init_weights(self):
      for m in self.modules():
          if (
              isinstance(m, nn.Conv2d)
              or isinstance(m, nn.Conv1d)
              or isinstance(m, nn.Linear)
          ):
              # torch.nn.init.kaiming_normal_(m.weight)
              torch.nn.init.xavier_normal_(m.weight)
              if m.bias is not None:
                  torch.nn.init.zeros_(m.bias)
  
imports: from typing import Any
  import logging
  from omegaconf.dictconfig import DictConfig
  from omegaconf.listconfig import ListConfig
  from torch.nn import Sequential, Dropout, Linear
  import torch.nn.functional
  from torch import nn
  from .base import Segmentation_MP
  from torch_points3d.core.common_modules import FastBatchNorm1d
  from torch_points3d.modules.PPNet import *
  from torch_points3d.core.base_conv.partial_dense import *
  from torch_points3d.core.common_modules import MultiHeadClassifier, Identity
  from torch_points3d.models.base_model import BaseModel
  from torch_points3d.models.base_architectures.unet import UnwrappedUnetBasedModel
  from torch_points3d.datasets.multiscale_data import MultiScaleBatch
  from torch_points3d.datasets.segmentation import IGNORE_LABEL
label_desc: Use image node_id 6 for calling the PPNet obj's underlying member method code with example usage: obj.init_weights() without return types