code: def init_params(
      self,
      initializer=Uniform(0.01),
      arg_params=None,
      aux_params=None,
      allow_missing=False,
      force_init=False,
      allow_extra=False,
  ):
      if self.params_initialized and not force_init:
          return
      assert self.binded, "call bind before initializing the parameters"
      # TODO init the same weights with all work nodes
      self._curr_module.init_params(
          initializer=initializer,
          arg_params=None,
          aux_params=None,
          allow_missing=allow_missing,
          force_init=force_init,
          allow_extra=allow_extra,
      )
      for _module in self._arcface_modules:
          # _initializer = initializer
          _initializer = mx.init.Normal(0.01)
          _module.init_params(
              initializer=_initializer,
              arg_params=None,
              aux_params=None,
              allow_missing=allow_missing,
              force_init=force_init,
              allow_extra=allow_extra,
          )
      self.params_initialized = True
  
imports: import logging
  import copy
  import time
  import os
  import mxnet
  import numpy
  from mxnet import context
  from mxnet.initializer import Uniform
  from mxnet.module.base_module import BaseModule
  from mxnet.module.module import Module
  from mxnet import metric
  from mxnet.model import BatchEndParam
  from mxnet import io
  import mxnet.ndarray
  from config import config
label_desc: Use image node_id 11 for calling the ParallModule obj's underlying member method code with example usage: obj.init_params(initializer, arg_params, aux_params, allow_missing, force_init, allow_extra) without return types