mct-nightly 1.9.0.20230812.post349__tar.gz → 1.9.0.20230814.post352__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/PKG-INFO +1 -1
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/mct_nightly.egg-info/PKG-INFO +1 -1
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/constants.py +2 -2
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/kmeans_params.py +2 -2
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +11 -11
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantizers/kmeans_quantizer.py +4 -4
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +9 -9
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +4 -4
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +10 -10
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +9 -9
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +3 -3
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +6 -6
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +1 -1
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/setup.cfg +1 -1
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/LICENSE.md +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/README.md +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/mct_nightly.egg-info/SOURCES.txt +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/mct_nightly.egg-info/dependency_links.txt +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/mct_nightly.egg-info/requires.txt +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/mct_nightly.egg-info/top_level.txt +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/analyzer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/collectors/base_collector.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/collectors/statistics_collector_generator.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/data_loader.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/defaultdict.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/framework_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/base_graph.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/base_node.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/edge.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/matchers/function.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/memory_computation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_aggregation_methods.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_data.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_functions_mapping.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_methods.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/model_collector.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/model_validation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/network_editors/actions.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_analyzer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/user_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/model_gradients.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/constants.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_relu_upper_bound.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/keras_implementation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/kpi_data_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/common.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/node_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/model_gradients.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/constants.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/permute_call_method.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/kpi_data_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/reader/reader.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/pytorch/utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/core/runner.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizers.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizers.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/common/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/common/gptq_graph.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/common/gptq_training.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/gptq_training.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/graph_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/gptq_training.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/graph_info.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/gptq/runner.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/legacy/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/legacy/keras_quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/legacy/pytorch_quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/logger.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/ptq/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/ptq/keras/quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/ptq/runner.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/common/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/common/qat_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantization_facade.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/immutable.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/quantization_format.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/latest/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/target_platform_capabilities.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v1/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v1/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v1/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v1/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v2/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v2/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v2/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v2/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3_lut/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3_lut/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3_lut/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v3_lut/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4_lut/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4_lut/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4_lut/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v4_lut/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v5/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v5/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v5/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/default_tpc/v5/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +0 -0
- {mct-nightly-1.9.0.20230812.post349 → mct-nightly-1.9.0.20230814.post352}/setup.py +0 -0
|
@@ -27,13 +27,13 @@ WEIGHTS_SIGNED = True
|
|
|
27
27
|
# Minimal threshold to use for quantization ranges:
|
|
28
28
|
MIN_THRESHOLD = (2 ** -16)
|
|
29
29
|
EPS = 1e-8
|
|
30
|
-
|
|
30
|
+
LUT_VALUES_BITWIDTH = 8
|
|
31
31
|
|
|
32
32
|
# Quantization attributes:
|
|
33
33
|
OUTPUT_SCALE = 'output_scale'
|
|
34
34
|
THRESHOLD = 'threshold'
|
|
35
35
|
SIGNED = 'is_signed'
|
|
36
|
-
|
|
36
|
+
LUT_VALUES = 'lut_values'
|
|
37
37
|
SCALE_PER_CHANNEL = 'scale_per_channel'
|
|
38
38
|
RANGE_MIN = 'range_min'
|
|
39
39
|
RANGE_MAX = 'range_max'
|
|
@@ -17,7 +17,7 @@ import numpy as np
|
|
|
17
17
|
from sklearn.cluster import KMeans
|
|
18
18
|
|
|
19
19
|
import model_compression_toolkit.core.common.quantization.quantization_config as qc
|
|
20
|
-
from model_compression_toolkit.constants import
|
|
20
|
+
from model_compression_toolkit.constants import LUT_VALUES, SCALE_PER_CHANNEL, MIN_THRESHOLD, EPS
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def kmeans_tensor(tensor_data: np.ndarray,
|
|
@@ -59,6 +59,6 @@ def kmeans_tensor(tensor_data: np.ndarray,
|
|
|
59
59
|
tensor_for_kmeans = (tensor_data / (scales_per_channel + EPS))
|
|
60
60
|
kmeans.fit(tensor_for_kmeans.reshape(-1, 1))
|
|
61
61
|
|
|
62
|
-
return {
|
|
62
|
+
return {LUT_VALUES: kmeans.cluster_centers_,
|
|
63
63
|
SCALE_PER_CHANNEL: scales_per_channel,
|
|
64
64
|
}
|
|
@@ -17,8 +17,8 @@ import numpy as np
|
|
|
17
17
|
from sklearn.cluster import KMeans
|
|
18
18
|
|
|
19
19
|
import model_compression_toolkit.core.common.quantization.quantization_config as qc
|
|
20
|
-
from model_compression_toolkit.constants import
|
|
21
|
-
|
|
20
|
+
from model_compression_toolkit.constants import LUT_VALUES, MIN_THRESHOLD, SCALE_PER_CHANNEL, \
|
|
21
|
+
LUT_VALUES_BITWIDTH, THRESHOLD
|
|
22
22
|
from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import \
|
|
23
23
|
max_power_of_two, int_quantization_with_threshold
|
|
24
24
|
from model_compression_toolkit.core.common.quantization.quantization_params_generation.symmetric_selection import \
|
|
@@ -41,7 +41,7 @@ def lut_kmeans_tensor(tensor_data: np.ndarray,
|
|
|
41
41
|
"""
|
|
42
42
|
The quantizer first finds the closest max value per channel of tensor_data.
|
|
43
43
|
Now, we divide tensor_data with the threshold vector per channel. In addition, we scale the result to the range
|
|
44
|
-
[-2^(
|
|
44
|
+
[-2^(LUT_VALUES_BITWIDTH-1), 2^(LUT_VALUES_BITWIDTH-1)-1].
|
|
45
45
|
Next, we take the scaled tensor_data and perform k-means clustering with 2^nbit clusters.
|
|
46
46
|
We return the rounded cluster centers, and threshold per channel. We use these to quantize the data.
|
|
47
47
|
Args:
|
|
@@ -59,9 +59,9 @@ def lut_kmeans_tensor(tensor_data: np.ndarray,
|
|
|
59
59
|
A dictionary containing the cluster assignments according to the k-means algorithm,
|
|
60
60
|
the thresholds per channel and the multiplier num bits.
|
|
61
61
|
"""
|
|
62
|
-
if n_bits >=
|
|
62
|
+
if n_bits >= LUT_VALUES_BITWIDTH:
|
|
63
63
|
Logger.critical(f'Look-Up-Table bit configuration has {n_bits} bits, but must be less than '
|
|
64
|
-
f'{
|
|
64
|
+
f'{LUT_VALUES_BITWIDTH}') # pragma: no cover
|
|
65
65
|
# TODO: need to set this externally
|
|
66
66
|
if len(np.unique(tensor_data.flatten())) < 2 ** n_bits:
|
|
67
67
|
n_clusters = len(np.unique(tensor_data.flatten()))
|
|
@@ -74,10 +74,10 @@ def lut_kmeans_tensor(tensor_data: np.ndarray,
|
|
|
74
74
|
channel_axis, n_iter, min_threshold,
|
|
75
75
|
qc.QuantizationErrorMethod.NOCLIPPING)[THRESHOLD]
|
|
76
76
|
|
|
77
|
-
tensor_for_kmeans = int_quantization_with_threshold(tensor_data, thresholds_per_channel,
|
|
77
|
+
tensor_for_kmeans = int_quantization_with_threshold(tensor_data, thresholds_per_channel, LUT_VALUES_BITWIDTH)
|
|
78
78
|
kmeans.fit(tensor_for_kmeans.reshape(-1, 1))
|
|
79
79
|
|
|
80
|
-
return {
|
|
80
|
+
return {LUT_VALUES: np.round(kmeans.cluster_centers_),
|
|
81
81
|
SCALE_PER_CHANNEL: thresholds_per_channel}
|
|
82
82
|
|
|
83
83
|
|
|
@@ -115,9 +115,9 @@ def lut_kmeans_histogram(bins: np.ndarray,
|
|
|
115
115
|
the threshold for pre-clustering quantization.
|
|
116
116
|
"""
|
|
117
117
|
|
|
118
|
-
if n_bits >=
|
|
118
|
+
if n_bits >= LUT_VALUES_BITWIDTH:
|
|
119
119
|
Logger.critical(f'Look-Up-Table bit configuration has {n_bits} bits. It must be less then '
|
|
120
|
-
f'{
|
|
120
|
+
f'{LUT_VALUES_BITWIDTH}') # pragma: no cover
|
|
121
121
|
|
|
122
122
|
bins_with_values = np.abs(bins)[1:][counts > 0]
|
|
123
123
|
if len(np.unique(bins_with_values.flatten())) < 2 ** n_bits:
|
|
@@ -130,8 +130,8 @@ def lut_kmeans_histogram(bins: np.ndarray,
|
|
|
130
130
|
threshold = max_power_of_two(tensor_max, min_threshold)
|
|
131
131
|
|
|
132
132
|
signed = np.any(bins[:-1][counts != 0] < 0) # Whether histogram contains negative values or not.
|
|
133
|
-
tensor_for_kmeans = int_quantization_with_threshold(data=bins, threshold=threshold, n_bits=
|
|
133
|
+
tensor_for_kmeans = int_quantization_with_threshold(data=bins, threshold=threshold, n_bits=LUT_VALUES_BITWIDTH, signed=signed)
|
|
134
134
|
kmeans.fit(tensor_for_kmeans.reshape(-1, 1), sample_weight=np.insert(counts, 0, 0))
|
|
135
135
|
|
|
136
|
-
return {
|
|
136
|
+
return {LUT_VALUES: np.float32(np.round(kmeans.cluster_centers_)),
|
|
137
137
|
THRESHOLD: threshold}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
from sklearn.cluster import KMeans
|
|
17
17
|
import numpy as np
|
|
18
18
|
|
|
19
|
-
from model_compression_toolkit.constants import
|
|
19
|
+
from model_compression_toolkit.constants import LUT_VALUES, MIN_THRESHOLD, SCALE_PER_CHANNEL
|
|
20
20
|
from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import kmeans_assign_clusters
|
|
21
21
|
|
|
22
22
|
|
|
@@ -42,12 +42,12 @@ def kmeans_quantizer(tensor_data: np.ndarray,
|
|
|
42
42
|
Quantized data.
|
|
43
43
|
"""
|
|
44
44
|
eps = 1e-8
|
|
45
|
-
|
|
45
|
+
lut_values = quantization_params[LUT_VALUES]
|
|
46
46
|
scales_per_channel = quantization_params[SCALE_PER_CHANNEL]
|
|
47
47
|
tensor = (tensor_data / (scales_per_channel + eps))
|
|
48
48
|
shape_before_kmeans = tensor.shape
|
|
49
|
-
cluster_assignments = kmeans_assign_clusters(
|
|
50
|
-
quant_tensor =
|
|
49
|
+
cluster_assignments = kmeans_assign_clusters(lut_values, tensor.reshape(-1, 1))
|
|
50
|
+
quant_tensor = lut_values[cluster_assignments].reshape(shape_before_kmeans)
|
|
51
51
|
if per_channel:
|
|
52
52
|
quant_tensor = (quant_tensor * scales_per_channel)
|
|
53
53
|
return quant_tensor
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
import numpy as np
|
|
17
17
|
|
|
18
|
-
from model_compression_toolkit.constants import
|
|
19
|
-
|
|
18
|
+
from model_compression_toolkit.constants import LUT_VALUES, SCALE_PER_CHANNEL, \
|
|
19
|
+
LUT_VALUES_BITWIDTH
|
|
20
20
|
from model_compression_toolkit.core.common.quantization.quantizers.quantizers_helpers import kmeans_assign_clusters, \
|
|
21
21
|
get_quantized_tensor, int_quantization_with_threshold
|
|
22
22
|
|
|
@@ -30,8 +30,8 @@ def lut_kmeans_quantizer(tensor_data: np.ndarray,
|
|
|
30
30
|
"""
|
|
31
31
|
Quantize a tensor with given cluster centers and thresholds-per-channel vector.
|
|
32
32
|
1. We divide tensor_data with the scale vector per channel.
|
|
33
|
-
2. We scale the result to the range [-2^(
|
|
34
|
-
3. We assign cluster centers to every value, multiply by thresholds_per_channel and divide by 2^(
|
|
33
|
+
2. We scale the result to the range [-2^(LUT_VALUES_BITWIDTH-1), 2^(LUT_VALUES_BITWIDTH-1)-1].
|
|
34
|
+
3. We assign cluster centers to every value, multiply by thresholds_per_channel and divide by 2^(LUT_VALUES_BITWIDTH-1).
|
|
35
35
|
The result is the quantized tensor.
|
|
36
36
|
|
|
37
37
|
|
|
@@ -46,12 +46,12 @@ def lut_kmeans_quantizer(tensor_data: np.ndarray,
|
|
|
46
46
|
Returns:
|
|
47
47
|
Quantized data.
|
|
48
48
|
"""
|
|
49
|
-
|
|
49
|
+
lut_values = quantization_params[LUT_VALUES]
|
|
50
50
|
thresholds_per_channel = quantization_params[SCALE_PER_CHANNEL]
|
|
51
|
-
tensor = int_quantization_with_threshold(tensor_data, thresholds_per_channel,
|
|
51
|
+
tensor = int_quantization_with_threshold(tensor_data, thresholds_per_channel, LUT_VALUES_BITWIDTH)
|
|
52
52
|
shape_before_kmeans = tensor.shape
|
|
53
|
-
cluster_assignments = kmeans_assign_clusters(
|
|
54
|
-
quant_tensor = get_quantized_tensor(
|
|
53
|
+
cluster_assignments = kmeans_assign_clusters(lut_values, tensor.reshape(-1, 1))
|
|
54
|
+
quant_tensor = get_quantized_tensor(lut_values[cluster_assignments].reshape(shape_before_kmeans),
|
|
55
55
|
thresholds_per_channel,
|
|
56
|
-
|
|
56
|
+
LUT_VALUES_BITWIDTH)
|
|
57
57
|
return quant_tensor
|
|
@@ -151,12 +151,12 @@ def uniform_quantize_tensor(tensor_data: np.ndarray,
|
|
|
151
151
|
return q
|
|
152
152
|
|
|
153
153
|
|
|
154
|
-
def kmeans_assign_clusters(
|
|
154
|
+
def kmeans_assign_clusters(lut_values: np.ndarray,
|
|
155
155
|
query: np.ndarray) -> np.ndarray:
|
|
156
156
|
"""
|
|
157
157
|
Assign each data value in query with its closest cluster center point.
|
|
158
158
|
Args:
|
|
159
|
-
|
|
159
|
+
lut_values: the cluster centers to assign the query values.
|
|
160
160
|
query: values for which to assign cluster centers.
|
|
161
161
|
|
|
162
162
|
Returns: A tensor of indexes to the cluster centers that where assigned to each value in
|
|
@@ -164,9 +164,9 @@ def kmeans_assign_clusters(cluster_centers: np.ndarray,
|
|
|
164
164
|
|
|
165
165
|
"""
|
|
166
166
|
d0 = query.shape[0]
|
|
167
|
-
d1 =
|
|
167
|
+
d1 = lut_values.shape[0]
|
|
168
168
|
query_ = query.repeat(d1).reshape(d0, d1)
|
|
169
|
-
cluster_centers_ =
|
|
169
|
+
cluster_centers_ = lut_values.repeat(d0).reshape(d1, d0).transpose(1, 0)
|
|
170
170
|
return np.argmin(np.abs(query_ - cluster_centers_), axis=1)
|
|
171
171
|
|
|
172
172
|
|
|
@@ -5,8 +5,8 @@ import tensorflow as tf
|
|
|
5
5
|
from keras.layers import Layer
|
|
6
6
|
from tensorflow.python.util.object_identity import Reference as TFReference
|
|
7
7
|
|
|
8
|
-
from model_compression_toolkit.constants import SIGNED,
|
|
9
|
-
|
|
8
|
+
from model_compression_toolkit.constants import SIGNED, LUT_VALUES, EPS, \
|
|
9
|
+
LUT_VALUES_BITWIDTH, THRESHOLD
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def activation_lut_kmean_quantizer(activation_n_bits: int,
|
|
@@ -29,14 +29,14 @@ def activation_lut_kmean_quantizer(activation_n_bits: int,
|
|
|
29
29
|
|
|
30
30
|
class LUTFakeQuant(Layer):
|
|
31
31
|
"""
|
|
32
|
-
A custom Keras layer for quantizing activation tensor with non-uniform quantization (using lookup table
|
|
32
|
+
A custom Keras layer for quantizing activation tensor with non-uniform quantization (using lookup table values).
|
|
33
33
|
"""
|
|
34
34
|
|
|
35
35
|
def __init__(self, quantization_params: Dict[str, np.ndarray], **kwargs):
|
|
36
36
|
super(LUTFakeQuant, self).__init__(**kwargs)
|
|
37
37
|
self.quantization_params = quantization_params
|
|
38
38
|
self.activation_is_signed = self.quantization_params.get(SIGNED)
|
|
39
|
-
self.
|
|
39
|
+
self.lut_values = self.quantization_params.get(LUT_VALUES)
|
|
40
40
|
self.threshold = self.quantization_params.get(THRESHOLD)
|
|
41
41
|
|
|
42
42
|
def build(self, input_shape: Tuple[int]):
|
|
@@ -59,7 +59,7 @@ class LUTFakeQuant(Layer):
|
|
|
59
59
|
Returns: KerasTensor after applying a non-uniform fake quantization.
|
|
60
60
|
|
|
61
61
|
"""
|
|
62
|
-
if self.activation_is_signed is None or self.
|
|
62
|
+
if self.activation_is_signed is None or self.lut_values is None or self.threshold is None:
|
|
63
63
|
return None # pragma: no cover
|
|
64
64
|
|
|
65
65
|
_quant_output = self.lut_kmeans_quantizer(input_data)
|
|
@@ -79,14 +79,14 @@ class LUTFakeQuant(Layer):
|
|
|
79
79
|
Returns: Quantized tensor.
|
|
80
80
|
"""
|
|
81
81
|
|
|
82
|
-
tensor = self.int_quantization_with_threshold(tensor_data,
|
|
82
|
+
tensor = self.int_quantization_with_threshold(tensor_data, LUT_VALUES_BITWIDTH)
|
|
83
83
|
tensor = tf.expand_dims(tensor, -1)
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
centers = tf.gather(self.
|
|
85
|
+
expanded_lut_values = self.lut_values.reshape([*[1 for _ in range(len(tensor.shape)-1)], -1])
|
|
86
|
+
lut_values_assignments = tf.argmin(tf.abs(tensor - expanded_lut_values), axis=-1)
|
|
87
|
+
centers = tf.gather(self.lut_values.flatten(), lut_values_assignments)
|
|
88
88
|
|
|
89
|
-
quant_tensor = (centers / (2 ** (
|
|
89
|
+
quant_tensor = (centers / (2 ** (LUT_VALUES_BITWIDTH - int(self.activation_is_signed)))) * self.threshold
|
|
90
90
|
|
|
91
91
|
return quant_tensor
|
|
92
92
|
|
|
@@ -3,7 +3,7 @@ from typing import Dict, Callable
|
|
|
3
3
|
import torch
|
|
4
4
|
import numpy as np
|
|
5
5
|
|
|
6
|
-
from model_compression_toolkit.constants import SIGNED,
|
|
6
|
+
from model_compression_toolkit.constants import SIGNED, LUT_VALUES, THRESHOLD, LUT_VALUES_BITWIDTH, EPS
|
|
7
7
|
from model_compression_toolkit.core.pytorch.utils import to_torch_tensor
|
|
8
8
|
|
|
9
9
|
|
|
@@ -27,7 +27,7 @@ def activation_lut_kmean_quantizer(activation_n_bits: int,
|
|
|
27
27
|
|
|
28
28
|
class PytorchLUTFakeQuant(torch.nn.Module):
|
|
29
29
|
"""
|
|
30
|
-
A custom PyTorch layer for quantizing activation tensor with non-uniform quantization (using lookup table
|
|
30
|
+
A custom PyTorch layer for quantizing activation tensor with non-uniform quantization (using lookup table values).
|
|
31
31
|
"""
|
|
32
32
|
|
|
33
33
|
def __init__(self,
|
|
@@ -43,7 +43,7 @@ class PytorchLUTFakeQuant(torch.nn.Module):
|
|
|
43
43
|
|
|
44
44
|
self.quantization_params = quantization_params
|
|
45
45
|
self.activation_is_signed = self.quantization_params.get(SIGNED)
|
|
46
|
-
self.
|
|
46
|
+
self.lut_values = to_torch_tensor(self.quantization_params.get(LUT_VALUES))
|
|
47
47
|
self.threshold = self.quantization_params.get(THRESHOLD)
|
|
48
48
|
|
|
49
49
|
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
|
@@ -56,7 +56,7 @@ class PytorchLUTFakeQuant(torch.nn.Module):
|
|
|
56
56
|
Returns:
|
|
57
57
|
Quantized torch Tensor.
|
|
58
58
|
"""
|
|
59
|
-
if self.activation_is_signed is None or self.
|
|
59
|
+
if self.activation_is_signed is None or self.lut_values is None or self.threshold is None:
|
|
60
60
|
return None # pragma: no cover
|
|
61
61
|
|
|
62
62
|
_quant_output = self.lut_kmeans_quantizer(x)
|
|
@@ -76,14 +76,14 @@ class PytorchLUTFakeQuant(torch.nn.Module):
|
|
|
76
76
|
Returns: Quantized tensor.
|
|
77
77
|
"""
|
|
78
78
|
|
|
79
|
-
tensor = self.int_quantization_with_threshold(tensor_data,
|
|
79
|
+
tensor = self.int_quantization_with_threshold(tensor_data, LUT_VALUES_BITWIDTH)
|
|
80
80
|
tensor = tensor.unsqueeze(-1)
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
centers = self.
|
|
82
|
+
expanded_lut_values = self.lut_values.reshape([*[1 for _ in range(len(tensor.shape) - 1)], -1])
|
|
83
|
+
lut_values_assignments = torch.argmin(torch.abs(tensor - expanded_lut_values), dim=-1)
|
|
84
|
+
centers = self.lut_values.flatten()[lut_values_assignments]
|
|
85
85
|
|
|
86
|
-
quant_tensor = (centers / (2 ** (
|
|
86
|
+
quant_tensor = (centers / (2 ** (LUT_VALUES_BITWIDTH - int(self.activation_is_signed)))) * self.threshold
|
|
87
87
|
|
|
88
88
|
return quant_tensor
|
|
89
89
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
from typing import Dict, Any
|
|
16
16
|
|
|
17
17
|
from model_compression_toolkit.core.common import BaseNode
|
|
18
|
-
from model_compression_toolkit.constants import THRESHOLD, RANGE_MIN, RANGE_MAX, SIGNED,
|
|
18
|
+
from model_compression_toolkit.constants import THRESHOLD, RANGE_MIN, RANGE_MAX, SIGNED, LUT_VALUES, SCALE_PER_CHANNEL
|
|
19
19
|
from model_compression_toolkit.core.common.quantization.node_quantization_config import BaseNodeQuantizationConfig, \
|
|
20
20
|
NodeWeightsQuantizationConfig, NodeActivationQuantizationConfig
|
|
21
21
|
|
|
@@ -66,7 +66,7 @@ def get_inferable_quantizer_kwargs(node_qc: BaseNodeQuantizationConfig,
|
|
|
66
66
|
elif quantization_method in [QuantizationMethod.LUT_SYM_QUANTIZER, QuantizationMethod.LUT_POT_QUANTIZER]:
|
|
67
67
|
return {qi_keras_consts.NUM_BITS: node_qc.weights_n_bits,
|
|
68
68
|
qi_keras_consts.PER_CHANNEL: node_qc.weights_per_channel_threshold,
|
|
69
|
-
qi_keras_consts.
|
|
69
|
+
qi_keras_consts.LUT_VALUES: list(node_qc.weights_quantization_params[LUT_VALUES].flatten()),
|
|
70
70
|
qi_keras_consts.THRESHOLD: list(node_qc.weights_quantization_params[SCALE_PER_CHANNEL].flatten()),
|
|
71
71
|
qi_keras_consts.CHANNEL_AXIS: node_qc.weights_channels_axis,
|
|
72
72
|
# TODO: how to pass multiplier nbits and eps for a specific node?
|
|
@@ -98,7 +98,7 @@ def get_inferable_quantizer_kwargs(node_qc: BaseNodeQuantizationConfig,
|
|
|
98
98
|
elif quantization_method in [QuantizationMethod.LUT_POT_QUANTIZER]:
|
|
99
99
|
return {qi_keras_consts.NUM_BITS: node_qc.activation_n_bits,
|
|
100
100
|
qi_keras_consts.SIGNED: node_qc.activation_quantization_params[SIGNED],
|
|
101
|
-
qi_keras_consts.
|
|
101
|
+
qi_keras_consts.LUT_VALUES: node_qc.activation_quantization_params[LUT_VALUES],
|
|
102
102
|
qi_keras_consts.THRESHOLD: [node_qc.activation_quantization_params[THRESHOLD]]
|
|
103
103
|
# TODO: how to pass multiplier nbits and eps for a specific node?
|
|
104
104
|
}
|
|
@@ -17,7 +17,7 @@ from typing import Dict, Any
|
|
|
17
17
|
|
|
18
18
|
from model_compression_toolkit.core.common import BaseNode
|
|
19
19
|
from model_compression_toolkit.constants import THRESHOLD, SIGNED, RANGE_MIN, RANGE_MAX, \
|
|
20
|
-
SCALE_PER_CHANNEL,
|
|
20
|
+
SCALE_PER_CHANNEL, LUT_VALUES
|
|
21
21
|
from model_compression_toolkit.core.common.quantization.node_quantization_config import BaseNodeQuantizationConfig, \
|
|
22
22
|
NodeWeightsQuantizationConfig, NodeActivationQuantizationConfig
|
|
23
23
|
from model_compression_toolkit.logger import Logger
|
|
@@ -64,11 +64,11 @@ def get_weights_inferable_quantizer_kwargs(node_qc: NodeWeightsQuantizationConfi
|
|
|
64
64
|
|
|
65
65
|
elif quantization_method in [QuantizationMethod.LUT_POT_QUANTIZER, QuantizationMethod.LUT_SYM_QUANTIZER]:
|
|
66
66
|
return {qi_inferable_quantizers_constants.NUM_BITS: node_qc.weights_n_bits,
|
|
67
|
-
qi_inferable_quantizers_constants.
|
|
67
|
+
qi_inferable_quantizers_constants.LUT_VALUES: node_qc.weights_quantization_params[LUT_VALUES].flatten(),
|
|
68
68
|
qi_inferable_quantizers_constants.THRESHOLD: node_qc.weights_quantization_params[SCALE_PER_CHANNEL].flatten(),
|
|
69
69
|
qi_inferable_quantizers_constants.PER_CHANNEL: node_qc.weights_per_channel_threshold,
|
|
70
70
|
qi_inferable_quantizers_constants.CHANNEL_AXIS: node_qc.weights_channels_axis}
|
|
71
|
-
# TODO: Add
|
|
71
|
+
# TODO: Add LUT_VALUES_BITWIDTH & EPS to node quantization config
|
|
72
72
|
|
|
73
73
|
else:
|
|
74
74
|
Logger.critical(f'Not supported quantization method for weights inferable quantizers.') # pragma: no cover
|
|
@@ -106,12 +106,12 @@ def get_activation_inferable_quantizer_kwargs(node_qc: NodeActivationQuantizatio
|
|
|
106
106
|
|
|
107
107
|
elif quantization_method in [QuantizationMethod.LUT_POT_QUANTIZER]:
|
|
108
108
|
return {qi_inferable_quantizers_constants.NUM_BITS: node_qc.activation_n_bits,
|
|
109
|
-
qi_inferable_quantizers_constants.
|
|
110
|
-
[node_qc.activation_quantization_params[
|
|
109
|
+
qi_inferable_quantizers_constants.LUT_VALUES: np.asarray(
|
|
110
|
+
[node_qc.activation_quantization_params[LUT_VALUES]]),
|
|
111
111
|
qi_inferable_quantizers_constants.THRESHOLD: np.asarray(
|
|
112
112
|
[node_qc.activation_quantization_params[THRESHOLD]]),
|
|
113
113
|
qi_inferable_quantizers_constants.SIGNED: node_qc.activation_quantization_params.get(SIGNED)}
|
|
114
|
-
# TODO: Add
|
|
114
|
+
# TODO: Add LUT_VALUES_BITWIDTH & EPS to node quantization config
|
|
115
115
|
else:
|
|
116
116
|
Logger.critical(f'Not supported quantization method for inferable quantizers.') # pragma: no cover
|
|
117
117
|
|
|
@@ -63,7 +63,7 @@ class OpQuantizationConfig:
|
|
|
63
63
|
self.quantization_preserving = quantization_preserving
|
|
64
64
|
self.fixed_scale = fixed_scale
|
|
65
65
|
self.fixed_zero_point = fixed_zero_point
|
|
66
|
-
self.
|
|
66
|
+
self.eights_lut_values_bitwidth = weights_multiplier_nbits
|
|
67
67
|
|
|
68
68
|
def get_info(self):
|
|
69
69
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|