__init__.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # mypy: allow-untyped-defs
  2. from .fake_quantize import * # noqa: F403
  3. from .fuse_modules import fuse_modules
  4. from .fuser_method_mappings import * # noqa: F403
  5. from .observer import * # noqa: F403
  6. from .qconfig import * # noqa: F403
  7. from .quant_type import * # noqa: F403
  8. from .quantization_mappings import * # noqa: F403
  9. from .quantize import * # noqa: F403
  10. from .quantize_jit import * # noqa: F403
  11. from .stubs import * # noqa: F403
  12. def default_eval_fn(model, calib_data):
  13. r"""
  14. Default evaluation function takes a torch.utils.data.Dataset or a list of
  15. input Tensors and run the model on the dataset
  16. """
  17. for data, _target in calib_data:
  18. model(data)
  19. __all__ = [
  20. "QuantWrapper",
  21. "QuantStub",
  22. "DeQuantStub",
  23. # Top level API for eager mode quantization
  24. "quantize",
  25. "quantize_dynamic",
  26. "quantize_qat",
  27. "prepare",
  28. "convert",
  29. "prepare_qat",
  30. # Top level API for graph mode quantization on TorchScript
  31. "quantize_jit",
  32. "quantize_dynamic_jit",
  33. "_prepare_ondevice_dynamic_jit",
  34. "_convert_ondevice_dynamic_jit",
  35. "_quantize_ondevice_dynamic_jit",
  36. # Top level API for graph mode quantization on GraphModule(torch.fx)
  37. # 'fuse_fx', 'quantize_fx', # TODO: add quantize_dynamic_fx
  38. # 'prepare_fx', 'prepare_dynamic_fx', 'convert_fx',
  39. "QuantType", # quantization type
  40. # custom module APIs
  41. "get_default_static_quant_module_mappings",
  42. "get_static_quant_module_class",
  43. "get_default_dynamic_quant_module_mappings",
  44. "get_default_qat_module_mappings",
  45. "get_default_qconfig_propagation_list",
  46. "get_default_compare_output_module_list",
  47. "get_quantized_operator",
  48. "get_fuser_method",
  49. # Sub functions for `prepare` and `swap_module`
  50. "propagate_qconfig_",
  51. "add_quant_dequant",
  52. "swap_module",
  53. "default_eval_fn",
  54. # Observers
  55. "ObserverBase",
  56. "WeightObserver",
  57. "HistogramObserver",
  58. "observer",
  59. "default_observer",
  60. "default_weight_observer",
  61. "default_placeholder_observer",
  62. "default_per_channel_weight_observer",
  63. # FakeQuantize (for qat)
  64. "default_fake_quant",
  65. "default_weight_fake_quant",
  66. "default_fixed_qparams_range_neg1to1_fake_quant",
  67. "default_fixed_qparams_range_0to1_fake_quant",
  68. "default_per_channel_weight_fake_quant",
  69. "default_histogram_fake_quant",
  70. # QConfig
  71. "QConfig",
  72. "default_qconfig",
  73. "default_dynamic_qconfig",
  74. "float16_dynamic_qconfig",
  75. "float_qparams_weight_only_qconfig",
  76. # QAT utilities
  77. "default_qat_qconfig",
  78. "prepare_qat",
  79. "quantize_qat",
  80. # module transformations
  81. "fuse_modules",
  82. ]