__init__.py 2.6 KB

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