class_docstr: Large-scale distributed sampling face recognition training Module, of course sampling is an option,
  There will be no loss of accuracy in sampling in large-scale identities training tasks, uses only
  8 NVIDIA RTX2080Ti to complete classification tasks with 10 millions of identities, 64 NVIDIA
  RTX2080Ti can complete classification tasks with 100 million of identities.
  
  See the original paper:
  https://arxiv.org/abs/2203.15565
  
  Parameters
  ----------
  symbol: Symbol
      Backbone symbol.
  fc7_model: Object
      Object of margin loss.
  memory_bank: Memory bank Object.
      Object of memory bank, which maintain local class centers and their momentum.
  memory_optimizer: Optimizer object.
      The updater of memory bank, default is sgd optimizer.
  logger:
code: def get_ndarray(self, context, name, shape, dtype="float32"):
      key = "%s_%s" % (name, context)
      if key not in self.nd_cache:
          v = nd.zeros(shape=shape, ctx=context, dtype=dtype)
          self.nd_cache[key] = v
      else:
          v = self.nd_cache[key]
      return v
  
imports: import logging
  import warnings
  from collections import namedtuple
  import horovod.mxnet
  import mxnet
  import mxnet.ndarray
  import numpy
  from default import config
  from optimizer import DistributedOptimizer
label_desc: Use image node_id 7 for calling the SampleDistributeModule obj's underlying member method code with example usage: obj.get_ndarray(context, name, shape, dtype) and returns: v