From af2ef1f28a0af435374062ffca01ce5d028ad591 Mon Sep 17 00:00:00 2001 From: reuvenp Date: Sun, 10 Mar 2024 15:27:07 +0200 Subject: [PATCH] test --- docsrc/Makefile | 10 + .../classes/DefaultDict.rst | 0 .../classes/FolderImageLoader.rst | 2 +- .../classes/FrameworkInfo.rst | 4 +- .../classes/GradientPTQConfig.rst | 9 - .../api/api_docs/classes/PruningConfig.rst | 9 + .../api/api_docs/classes/PruningInfo.rst | 10 + docsrc/source/api/api_docs/index.rst | 50 +++-- .../get_keras_data_generation_config.rst | 0 .../methods/get_keras_gptq_config.rst | 0 .../get_pytorch_data_generation_config.rst | 0 .../methods/get_pytroch_gptq_config.rst | 0 .../get_target_platform_capabilities.rst | 0 .../keras_data_generation_experimental.rst | 10 + ...ost_training_quantization_experimental.rst | 4 +- ...ta.rst => keras_kpi_data_experimental.rst} | 2 +- .../methods/keras_load_quantizad_model.rst | 0 .../keras_post_training_quantization.rst | 10 - ...ost_training_quantization_experimental.rst | 4 +- ..._training_quantization_mixed_precision.rst | 10 - .../methods/keras_pruning_experimental.rst | 12 ++ ...s_quantization_aware_training_finalize.rst | 4 +- ...keras_quantization_aware_training_init.rst | 4 +- .../pytorch_data_generation_experimental.rst | 0 ...ost_training_quantization_experimental.rst | 4 +- .../api/api_docs/methods/pytorch_kpi_data.rst | 10 - .../methods/pytorch_kpi_data_experimental.rst | 4 +- .../pytorch_post_training_quantization.rst | 10 - ...ost_training_quantization_experimental.rst | 4 +- ..._training_quantization_mixed_precision.rst | 10 - .../methods/pytorch_pruning_experimental.rst | 15 ++ ...h_quantization_aware_training_finalize.rst | 4 +- ...torch_quantization_aware_training_init.rst | 4 +- .../methods/set_logger_path.rst | 0 .../modules/core_config.rst | 0 .../modules/debug_config.rst | 2 +- .../source/api/api_docs/modules/exporter.rst | 199 ++++++++++++++++++ .../modules/layer_filters.rst | 0 .../mixed_precision_quantization_config.rst | 15 +- .../api/api_docs/modules/network_editor.rst | 62 ++++++ .../modules/qat_config.rst | 0 .../modules/quantization_config.rst | 4 +- .../modules/target_platform.rst | 0 .../modules/trainable_infrastructure.rst | 0 .../notes/tpc_note.rst | 0 .../api/experimental_api_docs/index.rst | 70 ------ .../keras_data_generation_experimental.rst | 10 - .../methods/keras_kpi_data_experimental.rst | 10 - .../methods/keras_pruning_experimental.rst | 25 --- .../methods/pytorch_pruning_experimental.rst | 25 --- .../modules/exporter.rst | 41 ---- .../mixed_precision_quantization_config.rst | 26 --- .../modules/network_editor.rst | 62 ------ .../notes/experimental_api_note.rst | 7 - docsrc/source/index.rst | 28 +-- .../fw_agonstic/quantization_format.py | 10 + .../operations_to_layers.py | 6 +- 57 files changed, 423 insertions(+), 398 deletions(-) rename docsrc/source/api/{experimental_api_docs => api_docs}/classes/DefaultDict.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/classes/FolderImageLoader.rst (87%) rename docsrc/source/api/{experimental_api_docs => api_docs}/classes/FrameworkInfo.rst (74%) rename docsrc/source/api/{experimental_api_docs => api_docs}/classes/GradientPTQConfig.rst (64%) create mode 100644 docsrc/source/api/api_docs/classes/PruningConfig.rst create mode 100644 docsrc/source/api/api_docs/classes/PruningInfo.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/get_keras_data_generation_config.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/get_keras_gptq_config.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/get_pytorch_data_generation_config.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/get_pytroch_gptq_config.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/get_target_platform_capabilities.rst (100%) create mode 100644 docsrc/source/api/api_docs/methods/keras_data_generation_experimental.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/keras_gradient_post_training_quantization_experimental.rst (68%) rename docsrc/source/api/api_docs/methods/{keras_kpi_data.rst => keras_kpi_data_experimental.rst} (70%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/keras_load_quantizad_model.rst (100%) delete mode 100644 docsrc/source/api/api_docs/methods/keras_post_training_quantization.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/keras_post_training_quantization_experimental.rst (67%) delete mode 100644 docsrc/source/api/api_docs/methods/keras_post_training_quantization_mixed_precision.rst create mode 100644 docsrc/source/api/api_docs/methods/keras_pruning_experimental.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/keras_quantization_aware_training_finalize.rst (68%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/keras_quantization_aware_training_init.rst (69%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/pytorch_data_generation_experimental.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/pytorch_gradient_post_training_quantization_experimental.rst (68%) delete mode 100644 docsrc/source/api/api_docs/methods/pytorch_kpi_data.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/pytorch_kpi_data_experimental.rst (78%) delete mode 100644 docsrc/source/api/api_docs/methods/pytorch_post_training_quantization.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/pytorch_post_training_quantization_experimental.rst (68%) delete mode 100644 docsrc/source/api/api_docs/methods/pytorch_post_training_quantization_mixed_precision.rst create mode 100644 docsrc/source/api/api_docs/methods/pytorch_pruning_experimental.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/pytorch_quantization_aware_training_finalize.rst (68%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/pytorch_quantization_aware_training_init.rst (68%) rename docsrc/source/api/{experimental_api_docs => api_docs}/methods/set_logger_path.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/modules/core_config.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/modules/debug_config.rst (79%) create mode 100644 docsrc/source/api/api_docs/modules/exporter.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/modules/layer_filters.rst (100%) create mode 100644 docsrc/source/api/api_docs/modules/network_editor.rst rename docsrc/source/api/{experimental_api_docs => api_docs}/modules/qat_config.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/modules/quantization_config.rst (73%) rename docsrc/source/api/{experimental_api_docs => api_docs}/modules/target_platform.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/modules/trainable_infrastructure.rst (100%) rename docsrc/source/api/{experimental_api_docs => api_docs}/notes/tpc_note.rst (100%) delete mode 100644 docsrc/source/api/experimental_api_docs/index.rst delete mode 100644 docsrc/source/api/experimental_api_docs/methods/keras_data_generation_experimental.rst delete mode 100644 docsrc/source/api/experimental_api_docs/methods/keras_kpi_data_experimental.rst delete mode 100644 docsrc/source/api/experimental_api_docs/methods/keras_pruning_experimental.rst delete mode 100644 docsrc/source/api/experimental_api_docs/methods/pytorch_pruning_experimental.rst delete mode 100644 docsrc/source/api/experimental_api_docs/modules/exporter.rst delete mode 100644 docsrc/source/api/experimental_api_docs/modules/mixed_precision_quantization_config.rst delete mode 100644 docsrc/source/api/experimental_api_docs/modules/network_editor.rst delete mode 100644 docsrc/source/api/experimental_api_docs/notes/experimental_api_note.rst diff --git a/docsrc/Makefile b/docsrc/Makefile index a31637a91..b869c2d44 100644 --- a/docsrc/Makefile +++ b/docsrc/Makefile @@ -6,7 +6,17 @@ github: @cp -a ../docs/html/. ../docs @rm -rf ../docs/html/ @rm -rf ../docs/doctrees/ + @find ../docs -type f -exec sed -i 's|_images/|images/|g' {} + + @find ../docs -type f -exec sed -i 's|_static/|static/|g' {} + + @rm -rf ../docs/images + @rm -rf ../docs/static + @mv ../docs/_images/ ../docs/images + @mv ../docs/_static/ ../docs/static + + +#@find ../docs -type f -exec sed -i 's|_images/|images/|g' {} + +#@find ../docs -type f -exec sed -i 's|_static/|static/|g' {} + # rm -rf ../docs/images/ # rm -rf ../docs/statis/ # mv ../docs/_images/ ../docs/images diff --git a/docsrc/source/api/experimental_api_docs/classes/DefaultDict.rst b/docsrc/source/api/api_docs/classes/DefaultDict.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/classes/DefaultDict.rst rename to docsrc/source/api/api_docs/classes/DefaultDict.rst diff --git a/docsrc/source/api/experimental_api_docs/classes/FolderImageLoader.rst b/docsrc/source/api/api_docs/classes/FolderImageLoader.rst similarity index 87% rename from docsrc/source/api/experimental_api_docs/classes/FolderImageLoader.rst rename to docsrc/source/api/api_docs/classes/FolderImageLoader.rst index e9fda9d43..6897e353f 100644 --- a/docsrc/source/api/experimental_api_docs/classes/FolderImageLoader.rst +++ b/docsrc/source/api/api_docs/classes/FolderImageLoader.rst @@ -8,7 +8,7 @@ Folder Image Loader API **The following API can be used to load a folder of images to create a representative dataset for PTQ calibration** -.. autoclass:: model_compression_toolkit.FolderImageLoader +.. autoclass:: model_compression_toolkit.core.FolderImageLoader :members: diff --git a/docsrc/source/api/experimental_api_docs/classes/FrameworkInfo.rst b/docsrc/source/api/api_docs/classes/FrameworkInfo.rst similarity index 74% rename from docsrc/source/api/experimental_api_docs/classes/FrameworkInfo.rst rename to docsrc/source/api/api_docs/classes/FrameworkInfo.rst index 8aa3bcd52..2338a7dd4 100644 --- a/docsrc/source/api/experimental_api_docs/classes/FrameworkInfo.rst +++ b/docsrc/source/api/api_docs/classes/FrameworkInfo.rst @@ -9,7 +9,7 @@ FrameworkInfo Class **The following API can be used to pass MCT framework-related information to use when optimizing the network** -.. autoclass:: model_compression_toolkit.FrameworkInfo +.. autoclass:: model_compression_toolkit.core.FrameworkInfo | @@ -19,5 +19,5 @@ ChannelAxis ========================== **Enum to select the output channels format in the model:** -.. autoclass:: model_compression_toolkit.ChannelAxis +.. autoclass:: model_compression_toolkit.core.ChannelAxis diff --git a/docsrc/source/api/experimental_api_docs/classes/GradientPTQConfig.rst b/docsrc/source/api/api_docs/classes/GradientPTQConfig.rst similarity index 64% rename from docsrc/source/api/experimental_api_docs/classes/GradientPTQConfig.rst rename to docsrc/source/api/api_docs/classes/GradientPTQConfig.rst index caea133e0..11a79e1c8 100644 --- a/docsrc/source/api/experimental_api_docs/classes/GradientPTQConfig.rst +++ b/docsrc/source/api/api_docs/classes/GradientPTQConfig.rst @@ -2,15 +2,6 @@ .. _ug-GradientPTQConfig: -================================= -GradientPTQConfigV2 Class -================================= - -**The following API can be used to create a GradientPTQConfigV2 instance which can be used for post training quantization using knowledge distillation from a teacher (float model) to a student (the quantized model). This is experimental and subject to future changes.** - -.. autoclass:: model_compression_toolkit.gptq.GradientPTQConfigV2 - :members: - ================================= GradientPTQConfig Class diff --git a/docsrc/source/api/api_docs/classes/PruningConfig.rst b/docsrc/source/api/api_docs/classes/PruningConfig.rst new file mode 100644 index 000000000..0b57b743a --- /dev/null +++ b/docsrc/source/api/api_docs/classes/PruningConfig.rst @@ -0,0 +1,9 @@ +:orphan: + +.. _ug-PruningConfig: + +================================================ +Pruning Configuration +================================================ + +.. autofunction:: model_compression_toolkit.pruning.PruningConfig \ No newline at end of file diff --git a/docsrc/source/api/api_docs/classes/PruningInfo.rst b/docsrc/source/api/api_docs/classes/PruningInfo.rst new file mode 100644 index 000000000..7bd02336c --- /dev/null +++ b/docsrc/source/api/api_docs/classes/PruningInfo.rst @@ -0,0 +1,10 @@ +:orphan: + +.. _ug-PruningInfo: + +================================================ +Pruning Information +================================================ + +.. autofunction:: model_compression_toolkit.pruning.PruningInfo + diff --git a/docsrc/source/api/api_docs/index.rst b/docsrc/source/api/api_docs/index.rst index 28f078466..3b8eec621 100644 --- a/docsrc/source/api/api_docs/index.rst +++ b/docsrc/source/api/api_docs/index.rst @@ -7,8 +7,6 @@ API Docs ========= -.. note:: This API will be removed in future releases. Please switch to the :ref:`new API` - **Init module for MCT API.** .. code-block:: python @@ -17,30 +15,56 @@ API Docs | + Functions ========= -- :ref:`pytorch_post_training_quantization`: Function to use for post training quantization of Pytorch models. -- :ref:`pytorch_post_training_quantization_mixed_precision`: Function to use for mixed-precision post training quantization of Pytorch models (experimental). -- :ref:`keras_post_training_quantization`: Function to use for post training quantization of Keras models. -- :ref:`keras_post_training_quantization_mixed_precision`: Function to use for mixed-precision post training quantization of Keras models (experimental). -- :ref:`get_keras_gptq_config`: Function to create a GradientPTQConfig instance to use for Keras models when using GPTQ (experimental). -- :ref:`get_target_platform_capabilities`: Function to get a target platform model for Tensorflow and Pytorch. -- :ref:`keras_kpi_data`: Function to compute KPI data that can be used to calculate the desired target KPI for mixed-precision quantization of Keras models. -- :ref:`pytorch_kpi_data`: Function to compute KPI data that can be used to calculate the desired target KPI for mixed-precision quantization of PyTorch models. +- :ref:`pytorch_post_training_quantization`: A function to use for post training quantization of PyTorch models. +- :ref:`keras_post_training_quantization`: A function to use for post training quantization of Keras models. + +- :ref:`keras_gradient_post_training_quantization`: A function to use for gradient-based post training quantization of Keras models. +- :ref:`get_keras_gptq_config`: A function to create a GradientPTQConfig instance to use for Keras models when using GPTQ. + +- :ref:`pytorch_gradient_post_training_quantization`: A function to use for gradient-based post training quantization of Pytorch models. +- :ref:`get_pytorch_gptq_config`: A function to create a GradientPTQConfig instance to use for Pytorch models when using GPTQ. + +- :ref:`keras_quantization_aware_training_init`: A function to use for preparing a model for Quantization Aware Training (Experimental) +- :ref:`keras_quantization_aware_training_finalize`: A function to finalize a model after Quantization Aware Training to a model without QuantizeWrappers (Experimental) + +- :ref:`keras_data_generation_experimental`: A function to generate data for a Keras model (experimental). +- :ref:`get_keras_data_generation_config`: A function to generate a DataGenerationConfig for Tensorflow data generation(experimental). + +- :ref:`pytorch_data_generation_experimental`: A function to generate data for a Pytorch model (experimental). +- :ref:`get_pytorch_data_generation_config`: A function to load a DataGenerationConfig for Pytorch data generation (experimental). + +- :ref:`keras_pruning_experimental`: A function to apply structured pruning for Keras models (experimental). +- :ref:`pytorch_pruning_experimental`: A function to apply structured pruning for Pytorch models (experimental). + +- :ref:`keras_kpi_data`: A function to compute KPI data that can be used to calculate the desired target KPI for mixed-precision quantization of Keras models. +- :ref:`pytorch_kpi_data`: A function to compute KPI data that can be used to calculate the desired target KPI for mixed-precision quantization of PyTorch models. + +- :ref:`get_target_platform_capabilities`: A function to get a target platform model for Tensorflow and Pytorch. +- :ref:`keras_load_quantized_model`: A function to load a quantized keras model. Modules ========= +- :ref:`core_config`: Module to contain configurations of the optimization process. - :ref:`quantization_config`: Module to configure the quantization process. -- :ref:`mixed_precision_quantization_config`: Module to configure the quantization process when using mixed-precision PTQ. -- :ref:`network_editor`: Module to edit your model during the quantization process. +- :ref:`mixed_precision_quantization_config`: Module to configure the quantization process when using mixed-precision PTQ. +- :ref:`debug_config`: Module to configure options for debugging the optimization process. - :ref:`target_platform`: Module to create and model hardware-related settings to optimize the model according to, by the hardware the optimized model will use during inference. +- :ref:`qat_config`: Module to create quantization configuration for Quantization-aware Training. +- :ref:`exporter`: Module that enables to export a quantized model in different serialization formats. +- :ref:`trainable_infrastructure`: Module that contains quantization abstraction and quantizers for hardware-oriented model optimization tools. Classes ========= -- :ref:`GradientPTQConfig`: Class to configure GradientPTQC options for gradient based post training quantization. +- :ref:`GradientPTQConfig`: Class to configure GradientPTQ options for gradient based post training quantization. - :ref:`FolderImageLoader`: Class to use an images directory as a representative dataset. - :ref:`FrameworkInfo`: Class to wrap framework information to be used by MCT when optimizing models. +- :ref:`PruningConfig`: PruningConfig +- :ref:`PruningInfo`: PruningInfo + Indices and tables ================== diff --git a/docsrc/source/api/experimental_api_docs/methods/get_keras_data_generation_config.rst b/docsrc/source/api/api_docs/methods/get_keras_data_generation_config.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/get_keras_data_generation_config.rst rename to docsrc/source/api/api_docs/methods/get_keras_data_generation_config.rst diff --git a/docsrc/source/api/experimental_api_docs/methods/get_keras_gptq_config.rst b/docsrc/source/api/api_docs/methods/get_keras_gptq_config.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/get_keras_gptq_config.rst rename to docsrc/source/api/api_docs/methods/get_keras_gptq_config.rst diff --git a/docsrc/source/api/experimental_api_docs/methods/get_pytorch_data_generation_config.rst b/docsrc/source/api/api_docs/methods/get_pytorch_data_generation_config.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/get_pytorch_data_generation_config.rst rename to docsrc/source/api/api_docs/methods/get_pytorch_data_generation_config.rst diff --git a/docsrc/source/api/experimental_api_docs/methods/get_pytroch_gptq_config.rst b/docsrc/source/api/api_docs/methods/get_pytroch_gptq_config.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/get_pytroch_gptq_config.rst rename to docsrc/source/api/api_docs/methods/get_pytroch_gptq_config.rst diff --git a/docsrc/source/api/experimental_api_docs/methods/get_target_platform_capabilities.rst b/docsrc/source/api/api_docs/methods/get_target_platform_capabilities.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/get_target_platform_capabilities.rst rename to docsrc/source/api/api_docs/methods/get_target_platform_capabilities.rst diff --git a/docsrc/source/api/api_docs/methods/keras_data_generation_experimental.rst b/docsrc/source/api/api_docs/methods/keras_data_generation_experimental.rst new file mode 100644 index 000000000..66dfa8dcf --- /dev/null +++ b/docsrc/source/api/api_docs/methods/keras_data_generation_experimental.rst @@ -0,0 +1,10 @@ +:orphan: + +.. _ug-keras_data_generation_experimental: + + +===================================== +Keras Data Generation +===================================== + +.. autofunction:: model_compression_toolkit.data_generation.keras_data_generation_experimental diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_gradient_post_training_quantization_experimental.rst b/docsrc/source/api/api_docs/methods/keras_gradient_post_training_quantization_experimental.rst similarity index 68% rename from docsrc/source/api/experimental_api_docs/methods/keras_gradient_post_training_quantization_experimental.rst rename to docsrc/source/api/api_docs/methods/keras_gradient_post_training_quantization_experimental.rst index fa99048f1..afd2eabf6 100644 --- a/docsrc/source/api/experimental_api_docs/methods/keras_gradient_post_training_quantization_experimental.rst +++ b/docsrc/source/api/api_docs/methods/keras_gradient_post_training_quantization_experimental.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-keras_gradient_post_training_quantization_experimental: +.. _ug-keras_gradient_post_training_quantization: ================================================ Keras Gradient Based Post Training Quantization ================================================ -.. autofunction:: model_compression_toolkit.gptq.keras_gradient_post_training_quantization_experimental +.. autofunction:: model_compression_toolkit.gptq.keras_gradient_post_training_quantization diff --git a/docsrc/source/api/api_docs/methods/keras_kpi_data.rst b/docsrc/source/api/api_docs/methods/keras_kpi_data_experimental.rst similarity index 70% rename from docsrc/source/api/api_docs/methods/keras_kpi_data.rst rename to docsrc/source/api/api_docs/methods/keras_kpi_data_experimental.rst index d1af078dc..a0205814f 100644 --- a/docsrc/source/api/api_docs/methods/keras_kpi_data.rst +++ b/docsrc/source/api/api_docs/methods/keras_kpi_data_experimental.rst @@ -7,4 +7,4 @@ Get KPI information for Keras Models ======================================= -.. autofunction:: model_compression_toolkit.keras_kpi_data +.. autofunction:: model_compression_toolkit.core.keras_kpi_data diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_load_quantizad_model.rst b/docsrc/source/api/api_docs/methods/keras_load_quantizad_model.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/keras_load_quantizad_model.rst rename to docsrc/source/api/api_docs/methods/keras_load_quantizad_model.rst diff --git a/docsrc/source/api/api_docs/methods/keras_post_training_quantization.rst b/docsrc/source/api/api_docs/methods/keras_post_training_quantization.rst deleted file mode 100644 index 9a14b4510..000000000 --- a/docsrc/source/api/api_docs/methods/keras_post_training_quantization.rst +++ /dev/null @@ -1,10 +0,0 @@ -:orphan: - -.. _ug-keras_post_training_quantization: - - -================================= -Keras Post Training Quantization -================================= - -.. autofunction:: model_compression_toolkit.keras_post_training_quantization diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_post_training_quantization_experimental.rst b/docsrc/source/api/api_docs/methods/keras_post_training_quantization_experimental.rst similarity index 67% rename from docsrc/source/api/experimental_api_docs/methods/keras_post_training_quantization_experimental.rst rename to docsrc/source/api/api_docs/methods/keras_post_training_quantization_experimental.rst index ca1e912ee..82a351716 100644 --- a/docsrc/source/api/experimental_api_docs/methods/keras_post_training_quantization_experimental.rst +++ b/docsrc/source/api/api_docs/methods/keras_post_training_quantization_experimental.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-keras_post_training_quantization_experimental: +.. _ug-keras_post_training_quantization: ================================= Keras Post Training Quantization ================================= -.. autofunction:: model_compression_toolkit.ptq.keras_post_training_quantization_experimental +.. autofunction:: model_compression_toolkit.ptq.keras_post_training_quantization diff --git a/docsrc/source/api/api_docs/methods/keras_post_training_quantization_mixed_precision.rst b/docsrc/source/api/api_docs/methods/keras_post_training_quantization_mixed_precision.rst deleted file mode 100644 index 650cc4c70..000000000 --- a/docsrc/source/api/api_docs/methods/keras_post_training_quantization_mixed_precision.rst +++ /dev/null @@ -1,10 +0,0 @@ -:orphan: - -.. _ug-keras_post_training_quantization_mixed_precision: - - -================================================================== -Keras Post Training Mixed Precision Quantization -================================================================== - -.. autofunction:: model_compression_toolkit.keras_post_training_quantization_mixed_precision diff --git a/docsrc/source/api/api_docs/methods/keras_pruning_experimental.rst b/docsrc/source/api/api_docs/methods/keras_pruning_experimental.rst new file mode 100644 index 000000000..508a11e47 --- /dev/null +++ b/docsrc/source/api/api_docs/methods/keras_pruning_experimental.rst @@ -0,0 +1,12 @@ +:orphan: + +.. _ug-keras_pruning_experimental: + + +================================================ +Keras Structured Pruning +================================================ + +.. autofunction:: model_compression_toolkit.pruning.keras_pruning_experimental + + diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_quantization_aware_training_finalize.rst b/docsrc/source/api/api_docs/methods/keras_quantization_aware_training_finalize.rst similarity index 68% rename from docsrc/source/api/experimental_api_docs/methods/keras_quantization_aware_training_finalize.rst rename to docsrc/source/api/api_docs/methods/keras_quantization_aware_training_finalize.rst index 1e2bac84a..54ff74a3f 100644 --- a/docsrc/source/api/experimental_api_docs/methods/keras_quantization_aware_training_finalize.rst +++ b/docsrc/source/api/api_docs/methods/keras_quantization_aware_training_finalize.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-keras_quantization_aware_training_finalize: +.. _ug-keras_quantization_aware_training_finalize_experimental: ================================================ Keras Quantization Aware Training Model Finalize ================================================ -.. autofunction:: model_compression_toolkit.qat.keras_quantization_aware_training_finalize +.. autofunction:: model_compression_toolkit.qat.keras_quantization_aware_training_finalize_experimental diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_quantization_aware_training_init.rst b/docsrc/source/api/api_docs/methods/keras_quantization_aware_training_init.rst similarity index 69% rename from docsrc/source/api/experimental_api_docs/methods/keras_quantization_aware_training_init.rst rename to docsrc/source/api/api_docs/methods/keras_quantization_aware_training_init.rst index f055e1621..b89c3367e 100644 --- a/docsrc/source/api/experimental_api_docs/methods/keras_quantization_aware_training_init.rst +++ b/docsrc/source/api/api_docs/methods/keras_quantization_aware_training_init.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-keras_quantization_aware_training_init: +.. _ug-keras_quantization_aware_training_init_experimental: ================================================ Keras Quantization Aware Training Model Init ================================================ -.. autofunction:: model_compression_toolkit.qat.keras_quantization_aware_training_init +.. autofunction:: model_compression_toolkit.qat.keras_quantization_aware_training_init_experimental diff --git a/docsrc/source/api/experimental_api_docs/methods/pytorch_data_generation_experimental.rst b/docsrc/source/api/api_docs/methods/pytorch_data_generation_experimental.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/pytorch_data_generation_experimental.rst rename to docsrc/source/api/api_docs/methods/pytorch_data_generation_experimental.rst diff --git a/docsrc/source/api/experimental_api_docs/methods/pytorch_gradient_post_training_quantization_experimental.rst b/docsrc/source/api/api_docs/methods/pytorch_gradient_post_training_quantization_experimental.rst similarity index 68% rename from docsrc/source/api/experimental_api_docs/methods/pytorch_gradient_post_training_quantization_experimental.rst rename to docsrc/source/api/api_docs/methods/pytorch_gradient_post_training_quantization_experimental.rst index 4c30d210b..95dcf10f0 100644 --- a/docsrc/source/api/experimental_api_docs/methods/pytorch_gradient_post_training_quantization_experimental.rst +++ b/docsrc/source/api/api_docs/methods/pytorch_gradient_post_training_quantization_experimental.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-pytorch_gradient_post_training_quantization_experimental: +.. _ug-pytorch_gradient_post_training_quantization: ==================================================== Pytorch Gradient Based Post Training Quantization ==================================================== -.. autofunction:: model_compression_toolkit.gptq.pytorch_gradient_post_training_quantization_experimental +.. autofunction:: model_compression_toolkit.gptq.pytorch_gradient_post_training_quantization diff --git a/docsrc/source/api/api_docs/methods/pytorch_kpi_data.rst b/docsrc/source/api/api_docs/methods/pytorch_kpi_data.rst deleted file mode 100644 index be83da8d2..000000000 --- a/docsrc/source/api/api_docs/methods/pytorch_kpi_data.rst +++ /dev/null @@ -1,10 +0,0 @@ -:orphan: - -.. _ug-pytorch_kpi_data: - - -======================================= -Get KPI information for PyTorch Models -======================================= - -.. autofunction:: model_compression_toolkit.pytorch_kpi_data diff --git a/docsrc/source/api/experimental_api_docs/methods/pytorch_kpi_data_experimental.rst b/docsrc/source/api/api_docs/methods/pytorch_kpi_data_experimental.rst similarity index 78% rename from docsrc/source/api/experimental_api_docs/methods/pytorch_kpi_data_experimental.rst rename to docsrc/source/api/api_docs/methods/pytorch_kpi_data_experimental.rst index 155a7e1c0..86f512eae 100644 --- a/docsrc/source/api/experimental_api_docs/methods/pytorch_kpi_data_experimental.rst +++ b/docsrc/source/api/api_docs/methods/pytorch_kpi_data_experimental.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-pytorch_kpi_data_experimental: +.. _ug-pytorch_kpi_data: ======================================= Get KPI information for PyTorch Models ======================================= -.. autofunction:: model_compression_toolkit.core.pytorch_kpi_data_experimental +.. autofunction:: model_compression_toolkit.core.pytorch_kpi_data diff --git a/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization.rst b/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization.rst deleted file mode 100644 index e3ddfb201..000000000 --- a/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization.rst +++ /dev/null @@ -1,10 +0,0 @@ -:orphan: - -.. _ug-pytorch_post_training_quantization: - - -===================================== -Pytorch Post Training Quantization -===================================== - -.. autofunction:: model_compression_toolkit.pytorch_post_training_quantization diff --git a/docsrc/source/api/experimental_api_docs/methods/pytorch_post_training_quantization_experimental.rst b/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization_experimental.rst similarity index 68% rename from docsrc/source/api/experimental_api_docs/methods/pytorch_post_training_quantization_experimental.rst rename to docsrc/source/api/api_docs/methods/pytorch_post_training_quantization_experimental.rst index 48fcdfa6f..46feca7ba 100644 --- a/docsrc/source/api/experimental_api_docs/methods/pytorch_post_training_quantization_experimental.rst +++ b/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization_experimental.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-pytorch_post_training_quantization_experimental: +.. _ug-pytorch_post_training_quantization: ===================================== Pytorch Post Training Quantization ===================================== -.. autofunction:: model_compression_toolkit.ptq.pytorch_post_training_quantization_experimental +.. autofunction:: model_compression_toolkit.ptq.pytorch_post_training_quantization diff --git a/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization_mixed_precision.rst b/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization_mixed_precision.rst deleted file mode 100644 index 72d318522..000000000 --- a/docsrc/source/api/api_docs/methods/pytorch_post_training_quantization_mixed_precision.rst +++ /dev/null @@ -1,10 +0,0 @@ -:orphan: - -.. _ug-pytorch_post_training_quantization_mixed_precision: - - -================================================================== -PyTorch Post Training Mixed Precision Quantization -================================================================== - -.. autofunction:: model_compression_toolkit.pytorch_post_training_quantization_mixed_precision diff --git a/docsrc/source/api/api_docs/methods/pytorch_pruning_experimental.rst b/docsrc/source/api/api_docs/methods/pytorch_pruning_experimental.rst new file mode 100644 index 000000000..4f050cfe4 --- /dev/null +++ b/docsrc/source/api/api_docs/methods/pytorch_pruning_experimental.rst @@ -0,0 +1,15 @@ +:orphan: + +.. _ug-pytorch_pruning_experimental: + + +================================================ +Pytorch Structured Pruning +================================================ + +.. autofunction:: model_compression_toolkit.pruning.pytorch_pruning_experimental + + + + + diff --git a/docsrc/source/api/experimental_api_docs/methods/pytorch_quantization_aware_training_finalize.rst b/docsrc/source/api/api_docs/methods/pytorch_quantization_aware_training_finalize.rst similarity index 68% rename from docsrc/source/api/experimental_api_docs/methods/pytorch_quantization_aware_training_finalize.rst rename to docsrc/source/api/api_docs/methods/pytorch_quantization_aware_training_finalize.rst index b1e5dcd8c..e391be8d7 100644 --- a/docsrc/source/api/experimental_api_docs/methods/pytorch_quantization_aware_training_finalize.rst +++ b/docsrc/source/api/api_docs/methods/pytorch_quantization_aware_training_finalize.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-pytorch_quantization_aware_training_finalize: +.. _ug-pytorch_quantization_aware_training_finalize_experimental: =================================================== PyTorch Quantization Aware Training Model Finalize =================================================== -.. autofunction:: model_compression_toolkit.qat.pytorch_quantization_aware_training_finalize +.. autofunction:: model_compression_toolkit.qat.pytorch_quantization_aware_training_finalize_experimental diff --git a/docsrc/source/api/experimental_api_docs/methods/pytorch_quantization_aware_training_init.rst b/docsrc/source/api/api_docs/methods/pytorch_quantization_aware_training_init.rst similarity index 68% rename from docsrc/source/api/experimental_api_docs/methods/pytorch_quantization_aware_training_init.rst rename to docsrc/source/api/api_docs/methods/pytorch_quantization_aware_training_init.rst index 899379d6b..4e14c7478 100644 --- a/docsrc/source/api/experimental_api_docs/methods/pytorch_quantization_aware_training_init.rst +++ b/docsrc/source/api/api_docs/methods/pytorch_quantization_aware_training_init.rst @@ -1,10 +1,10 @@ :orphan: -.. _ug-pytorch_quantization_aware_training_init: +.. _ug-pytorch_quantization_aware_training_init_experimental: ================================================ PyTorch Quantization Aware Training Model Init ================================================ -.. autofunction:: model_compression_toolkit.qat.pytorch_quantization_aware_training_init +.. autofunction:: model_compression_toolkit.qat.pytorch_quantization_aware_training_init_experimental diff --git a/docsrc/source/api/experimental_api_docs/methods/set_logger_path.rst b/docsrc/source/api/api_docs/methods/set_logger_path.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/methods/set_logger_path.rst rename to docsrc/source/api/api_docs/methods/set_logger_path.rst diff --git a/docsrc/source/api/experimental_api_docs/modules/core_config.rst b/docsrc/source/api/api_docs/modules/core_config.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/modules/core_config.rst rename to docsrc/source/api/api_docs/modules/core_config.rst diff --git a/docsrc/source/api/experimental_api_docs/modules/debug_config.rst b/docsrc/source/api/api_docs/modules/debug_config.rst similarity index 79% rename from docsrc/source/api/experimental_api_docs/modules/debug_config.rst rename to docsrc/source/api/api_docs/modules/debug_config.rst index f1da2735b..16654f433 100644 --- a/docsrc/source/api/experimental_api_docs/modules/debug_config.rst +++ b/docsrc/source/api/api_docs/modules/debug_config.rst @@ -12,6 +12,6 @@ DebugConfig ========================== **Class to configure params for debugging purposes:** -.. autoclass:: model_compression_toolkit.DebugConfig +.. autoclass:: model_compression_toolkit.core.DebugConfig diff --git a/docsrc/source/api/api_docs/modules/exporter.rst b/docsrc/source/api/api_docs/modules/exporter.rst new file mode 100644 index 000000000..259fc7a27 --- /dev/null +++ b/docsrc/source/api/api_docs/modules/exporter.rst @@ -0,0 +1,199 @@ +:orphan: + +.. _ug-exporter: + + +================================= +exporter Module +================================= + +Allows to export a quantized model in different serialization formats and quantization formats. +For more details about the export formats and options, please refer to the project's GitHub `README file `_. +If you have any questions or issues, please open an issue in this GitHub repository. + + +QuantizationFormat +========================== + +.. autoclass:: model_compression_toolkit.exporter.QuantizationFormat + + +KerasExportSerializationFormat +================================ +Select the serialization format for exporting a quantized Keras model. + +.. autoclass:: model_compression_toolkit.exporter.KerasExportSerializationFormat + + +keras_export_model +========================== +Allows to export a Keras model that was quantized via MCT. + +.. autoclass:: model_compression_toolkit.exporter.keras_export_model + + +Keras Tutorial +========================== +To export a TensorFlow model as a quantized model, it is necessary to first apply quantization +to the model using MCT: + +.. code-block:: python + + import numpy as np + from keras.applications import ResNet50 + import model_compression_toolkit as mct + + # Create a model + float_model = ResNet50() + # Quantize the model. + # Notice that here the representative dataset is random for demonstration only. + quantized_exportable_model, _ = mct.ptq.keras_post_training_quantization(float_model, + representative_data_gen=lambda: [np.random.random((1, 224, 224, 3))]) + + + +++++++++++++++++++++++++++++ +keras serialization format +++++++++++++++++++++++++++++ +The model will be exported as a tensorflow `.keras` model where weights and activations are quantized but represented using a float32 dtype. +Two optional quantization formats are available: MCTQ and FAKELY_QUANT. + +++++ +MCTQ +++++ + +By default, `mct.exporter.keras_export_model` will export the quantized Keras model to +a .keras model with custom quantizers from mct_quantizers module. + +.. code-block:: python + + import tempfile + + # Path of exported model + _, keras_file_path = tempfile.mkstemp('.keras') + + # Export a keras model with mctq custom quantizers. + mct.exporter.keras_export_model(model=quantized_exportable_model, + save_model_path=keras_file_path) + +Notice that the model has the same size as the quantized exportable model as weights data types are float. + + + +PytorchExportSerializationFormat +================================== +Select the serialization format for exporting a quantized Pytorch model. + +.. autoclass:: model_compression_toolkit.exporter.PytorchExportSerializationFormat + + + + + +pytorch_export_model +========================== +Allows to export a Pytorch model that was quantized via MCT. + +.. autoclass:: model_compression_toolkit.exporter.pytorch_export_model + + + +Pytorch Tutorial +========================== + +In order to export your quantized model to ONNX format, and use it for inference, some additional packages are needed. Notice, this is needed only for models exported to ONNX format, so this part can be skipped if this is not planned: + +.. code-block:: shell + + ! pip install -q onnx onnxruntime onnxruntime-extensions + +Now, let's start the export demonstration by quantizing the model using MCT: + +.. code-block:: python + + import model_compression_toolkit as mct + import numpy as np + import torch + from torchvision.models.mobilenetv2 import mobilenet_v2 + + # Create a model + float_model = mobilenet_v2() + + + # Notice that here the representative dataset is random for demonstration only. + def representative_data_gen(): + yield [np.random.random((1, 3, 224, 224))] + + + quantized_exportable_model, _ = mct.ptq.pytorch_post_training_quantization(float_model, representative_data_gen=representative_data_gen) + + + ++++++++++ +ONNX ++++++++++ + +The model will be exported in ONNX format where weights and activations are represented as float. Notice that `onnx` should be installed in order to export the model to an ONNX model. + +There are two optional formats to choose: MCTQ or FAKELY_QUANT. + ++++++++++++++++++++++++++++ +MCTQ Quantization Format ++++++++++++++++++++++++++++ + +By default, `mct.exporter.pytorch_export_model` will export the quantized pytorch model to +an ONNX model with custom quantizers from mct_quantizers module. + + +.. code-block:: python + + # Path of exported model + onnx_file_path = 'model_format_onnx_mctq.onnx' + + # Export ONNX model with mctq quantizers. + mct.exporter.pytorch_export_model(model=quantized_exportable_model, + save_model_path=onnx_file_path, + repr_dataset=representative_data_gen) + +Notice that the model has the same size as the quantized exportable model as weights data types are float. + ++++++++++++++++++++++++++++ +ONNX opset version ++++++++++++++++++++++++++++ + +By default, the used ONNX opset version is 15, but this can be changed using `onnx_opset_version`: + +.. code-block:: python + + # Export ONNX model with mctq quantizers. + mct.exporter.pytorch_export_model(model=quantized_exportable_model, + save_model_path=onnx_file_path, + repr_dataset=representative_data_gen, + onnx_opset_version=16) + +| + +++++++++++++++++++++++++++++++++++++ +Use exported model for inference +++++++++++++++++++++++++++++++++++++ + +To load and infer using the exported model, which was exported to an ONNX file in MCTQ format, we will use `mct_quantizers` method `get_ort_session_options` during onnxruntime session creation. **Notice**, inference on models that are exported in this format are slowly and suffers from longer latency. However, inference of these models on IMX500 will not suffer from this issue. + +.. code-block:: python + + import mct_quantizers as mctq + import onnxruntime as ort + + sess = ort.InferenceSession(onnx_file_path, + mctq.get_ort_session_options(), + providers=['CUDAExecutionProvider', 'CPUExecutionProvider']) + + _input_data = next(representative_data_gen())[0].astype(np.float32) + _model_output_name = sess.get_outputs()[0].name + _model_input_name = sess.get_inputs()[0].name + + # Run inference + predictions = sess.run([_model_output_name], {_model_input_name: _input_data}) + +| + diff --git a/docsrc/source/api/experimental_api_docs/modules/layer_filters.rst b/docsrc/source/api/api_docs/modules/layer_filters.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/modules/layer_filters.rst rename to docsrc/source/api/api_docs/modules/layer_filters.rst diff --git a/docsrc/source/api/api_docs/modules/mixed_precision_quantization_config.rst b/docsrc/source/api/api_docs/modules/mixed_precision_quantization_config.rst index e48b66381..f3d6aba8c 100644 --- a/docsrc/source/api/api_docs/modules/mixed_precision_quantization_config.rst +++ b/docsrc/source/api/api_docs/modules/mixed_precision_quantization_config.rst @@ -1,27 +1,26 @@ :orphan: -.. _ug-mixed_precision_quantization_config: +.. _ug-mixed_precision_quantization_config_v2: -=========================================== +=========================================================== mixed_precision_quantization_config Module -=========================================== +=========================================================== KPI ================================ **Object to configure resources to use when searching for a mixed-precision configuration for a model:** -.. autoclass:: model_compression_toolkit.KPI - :noindex: +.. autoclass:: model_compression_toolkit.core.KPI | -MixedPrecisionQuantizationConfig -================================= +MixedPrecisionQuantizationConfigV2 +=================================== **Class to configure the quantization process of the model when quantizing in mixed-precision:** -.. autoclass:: model_compression_toolkit.MixedPrecisionQuantizationConfig +.. autoclass:: model_compression_toolkit.core.MixedPrecisionQuantizationConfig diff --git a/docsrc/source/api/api_docs/modules/network_editor.rst b/docsrc/source/api/api_docs/modules/network_editor.rst new file mode 100644 index 000000000..8df62a390 --- /dev/null +++ b/docsrc/source/api/api_docs/modules/network_editor.rst @@ -0,0 +1,62 @@ +:orphan: + +.. _ug-network_editor: + + +================================= +network_editor Module +================================= + +**The model can be edited by a list of EditRules to apply on nodes in a graph that represents the model during the model quantization. Each EditRule is a tuple of a filter and an action, where we apply the action on each node the filter matches** + +EditRule +========== +.. autoclass:: model_compression_toolkit.core.network_editor.EditRule + +Filters +========== + +.. autoclass:: model_compression_toolkit.core.network_editor.NodeTypeFilter + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.NodeNameFilter + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.NodeNameScopeFilter + + +Actions +========== + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeFinalWeightsQuantConfigAttr + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeCandidatesWeightsQuantConfigAttr + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeFinalActivationQuantConfigAttr + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeCandidatesActivationQuantConfigAttr + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeQuantizationParamFunction + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeFinalWeightsQuantizationMethod + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeCandidatesWeightsQuantizationMethod + +| + +.. autoclass:: model_compression_toolkit.core.network_editor.ChangeCandidatesActivationQuantizationMethod + diff --git a/docsrc/source/api/experimental_api_docs/modules/qat_config.rst b/docsrc/source/api/api_docs/modules/qat_config.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/modules/qat_config.rst rename to docsrc/source/api/api_docs/modules/qat_config.rst diff --git a/docsrc/source/api/experimental_api_docs/modules/quantization_config.rst b/docsrc/source/api/api_docs/modules/quantization_config.rst similarity index 73% rename from docsrc/source/api/experimental_api_docs/modules/quantization_config.rst rename to docsrc/source/api/api_docs/modules/quantization_config.rst index 68b9599eb..7997f6f1b 100644 --- a/docsrc/source/api/experimental_api_docs/modules/quantization_config.rst +++ b/docsrc/source/api/api_docs/modules/quantization_config.rst @@ -11,7 +11,7 @@ QuantizationErrorMethod ========================== **Enum to select a method for quantization parameters' selection:** -.. autoclass:: model_compression_toolkit.QuantizationErrorMethod +.. autoclass:: model_compression_toolkit.core.QuantizationErrorMethod | @@ -21,5 +21,5 @@ QuantizationConfig ========================== **Class to configure the quantization process of the model:** -.. autoclass:: model_compression_toolkit.QuantizationConfig +.. autoclass:: model_compression_toolkit.core.QuantizationConfig diff --git a/docsrc/source/api/experimental_api_docs/modules/target_platform.rst b/docsrc/source/api/api_docs/modules/target_platform.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/modules/target_platform.rst rename to docsrc/source/api/api_docs/modules/target_platform.rst diff --git a/docsrc/source/api/experimental_api_docs/modules/trainable_infrastructure.rst b/docsrc/source/api/api_docs/modules/trainable_infrastructure.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/modules/trainable_infrastructure.rst rename to docsrc/source/api/api_docs/modules/trainable_infrastructure.rst diff --git a/docsrc/source/api/experimental_api_docs/notes/tpc_note.rst b/docsrc/source/api/api_docs/notes/tpc_note.rst similarity index 100% rename from docsrc/source/api/experimental_api_docs/notes/tpc_note.rst rename to docsrc/source/api/api_docs/notes/tpc_note.rst diff --git a/docsrc/source/api/experimental_api_docs/index.rst b/docsrc/source/api/experimental_api_docs/index.rst deleted file mode 100644 index 12e023554..000000000 --- a/docsrc/source/api/experimental_api_docs/index.rst +++ /dev/null @@ -1,70 +0,0 @@ -:orphan: - -.. _ug-experimental_api_docs: - - -========= -API Docs -========= - -**Init module for MCT API.** - -.. code-block:: python - - import model_compression_toolkit as mct - -| - -.. include:: ./notes/experimental_api_note.rst - -| - - -Functions -========= -- :ref:`pytorch_post_training_quantization_experimental`: A function to use for post training quantization of PyTorch models (experimental). -- :ref:`keras_post_training_quantization_experimental`: A function to use for post training quantization of Keras models (experimental). -- :ref:`keras_gradient_post_training_quantization_experimental`: A function to use for gradient-based post training quantization of Keras models (experimental). -- :ref:`pytorch_gradient_post_training_quantization_experimental`: A function to use for gradient-based post training quantization of Pytorch models (experimental). -- :ref:`keras_quantization_aware_training_init`: A function to use for preparing a model for Quantization Aware Training (Experimental) -- :ref:`keras_quantization_aware_training_finalize`: A function to finalize a model after Quantization Aware Training to a model without QuantizeWrappers(Experimental) -- :ref:`get_keras_gptq_config`: A function to create a GradientPTQConfig instance to use for Keras models when using GPTQ (experimental). -- :ref:`get_pytorch_gptq_config`: A function to create a GradientPTQConfig instance to use for Pytorch models when using GPTQ (experimental). -- :ref:`get_target_platform_capabilities`: A function to get a target platform model for Tensorflow and Pytorch. -- :ref:`keras_kpi_data_experimental`: A function to compute KPI data that can be used to calculate the desired target KPI for mixed-precision quantization of Keras models (experimental). -- :ref:`pytorch_kpi_data_experimental`: A function to compute KPI data that can be used to calculate the desired target KPI for mixed-precision quantization of PyTorch models (experimental). -- :ref:`keras_load_quantized_model`: A function to load a quantized keras model (experimental). -- :ref:`tensorflow_data_generation_experimental`: A function to generate data for a Keras model (experimental). -- :ref:`get_keras_data_generation_config`: A function to generate a DataGenerationConfig for Tensorflow data generation(experimental). -- :ref:`pytorch_data_generation_experimental`: A function to generate data for a Pytorch model (experimental). -- :ref:`get_pytorch_data_generation_config`: A function to load a DataGenerationConfig for Pytorch data generation (experimental). -- :ref:`keras_pruning_experimental`: A function to apply structured pruning for Keras models (experimental). - - -Modules -========= -- :ref:`core_config`: Module to contain configurations of the optimization process. -- :ref:`quantization_config`: Module to configure the quantization process. -- :ref:`mixed_precision_quantization_config`: Module to configure the quantization process when using mixed-precision PTQ. -- :ref:`debug_config`: Module to configure options for debugging the optimization process. -- :ref:`target_platform`: Module to create and model hardware-related settings to optimize the model according to, by the hardware the optimized model will use during inference. -- :ref:`qat_config`: Module to create quantization configuration for Quantization-aware Training. -- :ref:`exporter`: Module that enables to export a quantized model in different serialization formats. -- :ref:`trainable_infrastructure`: Module that contains quantization abstraction and quantizers for hardware-oriented model optimization tools. - -Classes -========= -- :ref:`GradientPTQConfig`: Class to configure GradientPTQ options for gradient based post training quantization. -- :ref:`FolderImageLoader`: Class to use an images directory as a representative dataset. -- :ref:`FrameworkInfo`: Class to wrap framework information to be used by MCT when optimizing models. - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. note:: This documentation is auto-generated using Sphinx - diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_data_generation_experimental.rst b/docsrc/source/api/experimental_api_docs/methods/keras_data_generation_experimental.rst deleted file mode 100644 index 20865d616..000000000 --- a/docsrc/source/api/experimental_api_docs/methods/keras_data_generation_experimental.rst +++ /dev/null @@ -1,10 +0,0 @@ -:orphan: - -.. _ug-tensorflow_data_generation_experimental: - - -===================================== -Keras Data Generation -===================================== - -.. autofunction:: model_compression_toolkit.data_generation.tensorflow_data_generation_experimental diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_kpi_data_experimental.rst b/docsrc/source/api/experimental_api_docs/methods/keras_kpi_data_experimental.rst deleted file mode 100644 index 608808bca..000000000 --- a/docsrc/source/api/experimental_api_docs/methods/keras_kpi_data_experimental.rst +++ /dev/null @@ -1,10 +0,0 @@ -:orphan: - -.. _ug-keras_kpi_data_experimental: - - -======================================= -Get KPI information for Keras Models -======================================= - -.. autofunction:: model_compression_toolkit.core.keras_kpi_data_experimental diff --git a/docsrc/source/api/experimental_api_docs/methods/keras_pruning_experimental.rst b/docsrc/source/api/experimental_api_docs/methods/keras_pruning_experimental.rst deleted file mode 100644 index 787bb2452..000000000 --- a/docsrc/source/api/experimental_api_docs/methods/keras_pruning_experimental.rst +++ /dev/null @@ -1,25 +0,0 @@ -:orphan: - -.. _ug-keras_pruning_experimental: - - -================================================ -Keras Structured Pruning -================================================ - -.. autofunction:: model_compression_toolkit.pruning.keras_pruning_experimental - -================================================ -Pruning Configuration -================================================ - -.. autofunction:: model_compression_toolkit.pruning.PruningConfig - - - -================================================ -Pruning Information -================================================ - -.. autofunction:: model_compression_toolkit.pruning.PruningInfo - diff --git a/docsrc/source/api/experimental_api_docs/methods/pytorch_pruning_experimental.rst b/docsrc/source/api/experimental_api_docs/methods/pytorch_pruning_experimental.rst deleted file mode 100644 index f52e130f5..000000000 --- a/docsrc/source/api/experimental_api_docs/methods/pytorch_pruning_experimental.rst +++ /dev/null @@ -1,25 +0,0 @@ -:orphan: - -.. _ug-pytorch_pruning_experimental: - - -================================================ -Pytorch Structured Pruning -================================================ - -.. autofunction:: model_compression_toolkit.pruning.pytorch_pruning_experimental - -================================================ -Pruning Configuration -================================================ - -.. autofunction:: model_compression_toolkit.pruning.PruningConfig - - - -================================================ -Pruning Information -================================================ - -.. autofunction:: model_compression_toolkit.pruning.PruningInfo - diff --git a/docsrc/source/api/experimental_api_docs/modules/exporter.rst b/docsrc/source/api/experimental_api_docs/modules/exporter.rst deleted file mode 100644 index 987cbe483..000000000 --- a/docsrc/source/api/experimental_api_docs/modules/exporter.rst +++ /dev/null @@ -1,41 +0,0 @@ -:orphan: - -.. _ug-exporter: - - -================================= -exporter Module -================================= - -Allows to export a quantized model in different serialization formats and quantization formats. -For more details about the export formats and options, please refer to the project's GitHub `README file `_. -Note that this feature is experimental and subject to future changes. If you have any questions or issues, please open an issue in this GitHub repository. - - -KerasExportSerializationFormat -================================ -Select the serialization format for exporting a quantized Keras model. - -.. autoclass:: model_compression_toolkit.exporter.KerasExportSerializationFormat - - -PytorchExportSerializationFormat -================================== -Select the serialization format for exporting a quantized Pytorch model. - -.. autoclass:: model_compression_toolkit.exporter.PytorchExportSerializationFormat - - -keras_export_model -========================== -Allows to export a Keras model that was quantized via MCT. - -.. autoclass:: model_compression_toolkit.exporter.keras_export_model - - -pytorch_export_model -========================== -Allows to export a Pytorch model that was quantized via MCT. - -.. autoclass:: model_compression_toolkit.exporter.pytorch_export_model - diff --git a/docsrc/source/api/experimental_api_docs/modules/mixed_precision_quantization_config.rst b/docsrc/source/api/experimental_api_docs/modules/mixed_precision_quantization_config.rst deleted file mode 100644 index 996479716..000000000 --- a/docsrc/source/api/experimental_api_docs/modules/mixed_precision_quantization_config.rst +++ /dev/null @@ -1,26 +0,0 @@ -:orphan: - -.. _ug-mixed_precision_quantization_config_v2: - - -=========================================================== -mixed_precision_quantization_config Module -=========================================================== - - -KPI -================================ -**Object to configure resources to use when searching for a mixed-precision configuration for a model:** - -.. autoclass:: model_compression_toolkit.KPI - - -| - - -MixedPrecisionQuantizationConfigV2 -=================================== -**Class to configure the quantization process of the model when quantizing in mixed-precision:** - -.. autoclass:: model_compression_toolkit.core.MixedPrecisionQuantizationConfigV2 - diff --git a/docsrc/source/api/experimental_api_docs/modules/network_editor.rst b/docsrc/source/api/experimental_api_docs/modules/network_editor.rst deleted file mode 100644 index a97594e39..000000000 --- a/docsrc/source/api/experimental_api_docs/modules/network_editor.rst +++ /dev/null @@ -1,62 +0,0 @@ -:orphan: - -.. _ug-network_editor: - - -================================= -network_editor Module -================================= - -**The model can be edited by a list of EditRules to apply on nodes in a graph that represents the model during the model quantization. Each EditRule is a tuple of a filter and an action, where we apply the action on each node the filter matches** - -EditRule -========== -.. autoclass:: model_compression_toolkit.network_editor.EditRule - -Filters -========== - -.. autoclass:: model_compression_toolkit.network_editor.NodeTypeFilter - -| - -.. autoclass:: model_compression_toolkit.network_editor.NodeNameFilter - -| - -.. autoclass:: model_compression_toolkit.network_editor.NodeNameScopeFilter - - -Actions -========== - -.. autoclass:: model_compression_toolkit.network_editor.ChangeFinalWeightsQuantConfigAttr - -| - -.. autoclass:: model_compression_toolkit.network_editor.ChangeCandidatesWeightsQuantConfigAttr - -| - -.. autoclass:: model_compression_toolkit.network_editor.ChangeFinalActivationQuantConfigAttr - -| - -.. autoclass:: model_compression_toolkit.network_editor.ChangeCandidatesActivationQuantConfigAttr - -| - -.. autoclass:: model_compression_toolkit.network_editor.ChangeQuantizationParamFunction - -| - -.. autoclass:: model_compression_toolkit.network_editor.ChangeFinalWeightsQuantizationMethod - -| - -.. autoclass:: model_compression_toolkit.network_editor.ChangeCandidatesWeightsQuantizationMethod - -| - -.. autoclass:: model_compression_toolkit.network_editor.ChangeCandidatesActivationQuantizationMethod - diff --git a/docsrc/source/api/experimental_api_docs/notes/experimental_api_note.rst b/docsrc/source/api/experimental_api_docs/notes/experimental_api_note.rst deleted file mode 100644 index 4980a5344..000000000 --- a/docsrc/source/api/experimental_api_docs/notes/experimental_api_note.rst +++ /dev/null @@ -1,7 +0,0 @@ - -.. note:: - This is an experimental new API. The previous API is still available and can be used as before (please - visit :ref:`previous API documentation ` for more information). However, we recommend using the new API as the previous API is deprecated - and will be removed in the future. - - diff --git a/docsrc/source/index.rst b/docsrc/source/index.rst index bd91fe81f..2c4713162 100644 --- a/docsrc/source/index.rst +++ b/docsrc/source/index.rst @@ -41,7 +41,7 @@ A nightly version is also available (unstable): For using with Tensorflow please install the packages: `tensorflow `_ -`tensorflow-model-optimization `_ + For using with Pytorch please install the package: `torch `_ @@ -52,21 +52,21 @@ Supported Features Keras: -* :ref:`Post Training Quantization` [1] -* :ref:`Gradient based post training using knowledge distillation` -* :ref:`Mixed-precision post training quantization` -* :ref:`Init model for Quantization Aware Training` (Experimental) -* :ref:`Finalize model after Quantization Aware Training` (Experimental) -* :ref:`Structured Pruning` (Experimental) +* :ref:`Post Training Quantization` [1] +* :ref:`Gradient based post training using knowledge distillation` +* :ref:`Init model for Quantization Aware Training` (Experimental) +* :ref:`Finalize model after Quantization Aware Training` (Experimental) +* :ref:`Structured pruning` (Experimental) +* :ref:`Data generation` (Experimental) Pytorch: -* :ref:`Post Training Quantization` [1] -* :ref:`Gradient based post training using knowledge distillation` -* :ref:`Mixed-precision post training quantization` -* :ref:`Init model for Quantization Aware Training` (Experimental) -* :ref:`Finalize model after Quantization Aware Training` (Experimental) - +* :ref:`Post Training Quantization` [1] +* :ref:`Gradient based post training using knowledge distillation` +* :ref:`Init model for Quantization Aware Training` (Experimental) +* :ref:`Finalize model after Quantization Aware Training` (Experimental) +* :ref:`Structured pruning` (Experimental) +* :ref:`Data generation` (Experimental) Visualization: @@ -101,7 +101,7 @@ Please visit the MCT API documentation here :titlesonly: :maxdepth: 1 - API Documentation<../api/experimental_api_docs/index> + API Documentation<../api/api_docs/index> Technical Constraints ========================= diff --git a/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py b/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py index dc9c7e965..b6fedc2b2 100644 --- a/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +++ b/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py @@ -16,6 +16,16 @@ class QuantizationFormat(Enum): + """ + Specify which quantization format to use for exporting a quantized model. + + FAKELY_QUANT - Weights and activations are quantized but represented using float data type. + + INT8 - Weights and activations are represented using 8-bit integer data type. + + MCTQ - Weights and activations are quantized using mct_quantizers custom quantizers. + + """ FAKELY_QUANT = 0 INT8 = 1 MCTQ = 2 diff --git a/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py b/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py index 9fdc38dc7..6a1809f12 100644 --- a/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +++ b/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py @@ -35,9 +35,9 @@ def __init__(self, Args: op_set_name (str): Name of OperatorsSet to associate with layers. layers (List[Any]): List of layers/FilterLayerParams to associate with OperatorsSet. - attr_mapping (dict): A mapping between a general attribute name to a DefaultDict that maps a layer -+ type to the layer's framework name of this attribute (the dictionary type is not specified to -+ handle circular dependency). + attr_mapping (dict): A mapping between a general attribute name to a DefaultDict that maps a layer type + to the layer's framework name of this attribute (the dictionary type is not specified to handle circular + dependency). """ self.layers = layers self.attr_mapping = attr_mapping