which takes quantized module, corresponding float module and logger
   as input, and creates a forward path inside to make the float
   module to shadow quantized module sharing the same input. The
   logger can be customizable, default logger is ShadowLogger and it
   will save the outputs of the quantized module and float module that
   can be used to compute the module level quantization error.
Example usage:
  module_swap_list = [torchvision.models.quantization.resnet.QuantizableBasicBlock]
  ob_dict = compare_model_stub(float_model,qmodel,module_swap_list, data)
  for key in ob_dict:
      print(key, compute_error(ob_dict[key]['float'], ob_dict[key]['quantized'].dequantize()))

Parameters:
      * float_model (Module) -- float model used to generate the
        q_model
  * **q_model** (*Module*) -- model quantized from float_model

  * **module_swap_list** (*Set**[**type**]*) -- list of float
    module types at which shadow modules will be attached.
