class_docstr: A mutable module is a module that supports variable input data.
  
  Parameters
  ----------
  symbol : Symbol
  data_names : list of str
  label_names : list of str
  logger : Logger
  context : Context or list of Context
  work_load_list : list of number
  max_data_shapes : list of (name, shape) tuple, designating inputs whose shape vary
  max_label_shapes : list of (name, shape) tuple, designating inputs whose shape vary
  fixed_param_prefix : list of str, indicating fixed parameters
code: def bind(
      self,
      data_shapes,
      label_shapes=None,
      for_training=True,
      inputs_need_grad=False,
      force_rebind=False,
      shared_module=None,
  ):
      # in case we already initialized params, keep it
      if self.params_initialized:
          arg_params, aux_params = self.get_params()
  
      # force rebinding is typically used when one want to switch from
      # training to prediction phase.
      if force_rebind:
          self._reset_bind()
  
      if self.binded:
          self.logger.warning("Already binded, ignoring bind()")
          return
  
      assert (
          shared_module is None
      ), "shared_module for MutableModule is not supported"
  
      self.for_training = for_training
      self.inputs_need_grad = inputs_need_grad
      self.binded = True
  
      max_shapes_dict = dict()
      if self._max_data_shapes is not None:
          max_shapes_dict.update(dict(self._max_data_shapes))
      if self._max_label_shapes is not None:
          max_shapes_dict.update(dict(self._max_label_shapes))
  
      max_data_shapes = list()
      for name, shape in data_shapes:
          if name in max_shapes_dict:
              max_data_shapes.append((name, max_shapes_dict[name]))
          else:
              max_data_shapes.append((name, shape))
  
      max_label_shapes = list()
      if label_shapes is not None:
          for name, shape in label_shapes:
              if name in max_shapes_dict:
                  max_label_shapes.append((name, max_shapes_dict[name]))
              else:
                  max_label_shapes.append((name, shape))
  
      if len(max_label_shapes) == 0:
          max_label_shapes = None
  
      module = Module(
          self._symbol,
          self._data_names,
          self._label_names,
          logger=self.logger,
          context=self._context,
          work_load_list=self._work_load_list,
          fixed_param_names=self._fixed_param_names,
      )
      module.bind(
          max_data_shapes,
          max_label_shapes,
          for_training,
          inputs_need_grad,
          force_rebind=False,
          shared_module=None,
      )
      self._curr_module = module
  
      # copy back saved params, if already initialized
      if self.params_initialized:
          self.set_params(arg_params, aux_params)
  
imports: import logging
  from mxnet import context
  from mxnet.initializer import Uniform
  from mxnet.module.base_module import BaseModule
  from mxnet.module.module import Module
label_desc: Use image node_id 10 for calling the MutableModule obj's underlying member method code with example usage: obj.bind(data_shapes, label_shapes, for_training, inputs_need_grad, force_rebind, shared_module) without return types