mct-nightly 1.11.0.20240320.400__tar.gz → 1.11.0.20240322.404__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.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/PKG-INFO +17 -9
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/README.md +16 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/mct_nightly.egg-info/PKG-INFO +17 -9
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/mct_nightly.egg-info/SOURCES.txt +8 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/__init__.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/constants.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/__init__.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/collectors/base_collector.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/data_loader.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/base_graph.py +10 -13
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/base_node.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/edge.py +2 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/memory_graph/bipartite_graph.py +2 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/virtual_activation_weights_node.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/hessian/hessian_info_service.py +2 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/hessian/trace_hessian_calculator.py +3 -5
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/bit_width_setter.py +1 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_facade.py +24 -23
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_manager.py +110 -112
- mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py +114 -0
- mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_data.py → mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py +19 -19
- mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_aggregation_methods.py +105 -0
- mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_functions_mapping.py +26 -0
- mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_methods.py → mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py +61 -61
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py +75 -71
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py +2 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py +34 -34
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/model_collector.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/network_editors/actions.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/greedy_mask_calculator.py +12 -12
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/importance_metrics/lfh_importance_metric.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/mask/per_channel_mask.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/mask/per_simd_group_mask.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/memory_calculator.py +7 -7
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/prune_graph.py +2 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/pruner.py +7 -7
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/pruning_config.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/pruning_info.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/candidate_node_quantization_config.py +7 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/node_quantization_config.py +3 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_fn_selection.py +4 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_fn_selection.py +4 -6
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/lut_kmeans_params.py +2 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantizers/quantizers_helpers.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantizers/uniform_quantizers.py +8 -6
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/set_node_quantization_config.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/statistics_correction/compute_bias_correction_of_graph.py +4 -6
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/batchnorm_refusing.py +4 -7
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/shift_negative_activation.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/virtual_activation_weights_composition.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/weights_activation_split.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/user_info.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/back2framework/factory_model_builder.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/back2framework/instance_builder.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/back2framework/mixed_precision_model_builder.py +4 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/input_scaling.py +3 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/linear_collapsing.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/matmul_substitution.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/multi_head_attention_decomposition.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/residual_collapsing.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/hessian/activation_trace_hessian_calculator_keras.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/hessian/trace_hessian_calculator_keras.py +1 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/hessian/weights_trace_hessian_calculator_keras.py +5 -6
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/keras_implementation.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/mixed_precision/configurable_activation_quantizer.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/mixed_precision/configurable_weights_quantizer.py +2 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/pruning/pruning_keras_implementation.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/quantizer/fake_quant_builder.py +7 -7
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/common.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/node_builder.py +1 -1
- mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/keras/kpi_data_facade.py → mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/keras/resource_utilization_data_facade.py +25 -24
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/tf_tensor_numpy.py +4 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/mixed_precision_model_builder.py +6 -11
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/const_holder_conv.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_batch_norm.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/linear_collapsing.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/multi_head_attention_decomposition.py +5 -5
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/reshape_with_static_shapes.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/residual_collapsing.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/hessian/activation_trace_hessian_calculator_pytorch.py +3 -7
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/hessian/trace_hessian_calculator_pytorch.py +1 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/hessian/weights_trace_hessian_calculator_pytorch.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_activation_quantizer.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/mixed_precision/configurable_weights_quantizer.py +1 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/pruning/pruning_pytorch_implementation.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/pytorch_implementation.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/reader/graph_builders.py +5 -7
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/reader/reader.py +2 -2
- mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/pytorch/kpi_data_facade.py → mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py +24 -22
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/utils.py +3 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/runner.py +43 -42
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/data_generation.py +18 -18
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/model_info_exctractors.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/keras_data_generation.py +7 -10
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/model_info_exctractors.py +2 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/optimization_functions/image_initilization.py +2 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/optimization_functions/output_loss_functions.py +2 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/model_info_exctractors.py +2 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/pytorch_data_generation.py +8 -11
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_keras_exporter.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/keras_export_facade.py +2 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/pytorch/pytorch_export_facade.py +2 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/keras/builder/fully_quantized_model_builder.py +8 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/keras/builder/node_to_quantizer.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/keras/validate_layer.py +7 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/fully_quantized_model_builder.py +19 -12
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/node_to_quantizer.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/pytorch/validate_layer.py +10 -11
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/common/gptq_graph.py +3 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/common/gptq_training.py +14 -12
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/gptq_training.py +10 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/graph_info.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantization_facade.py +15 -17
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/base_keras_gptq_quantizer.py +4 -5
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/quantization_builder.py +1 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/gptq_training.py +10 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/graph_info.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantization_facade.py +11 -13
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/base_pytorch_gptq_quantizer.py +3 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/quantization_builder.py +1 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/logger.py +1 -13
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/pruning/keras/pruning_facade.py +11 -12
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/pruning/pytorch/pruning_facade.py +11 -12
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/ptq/keras/quantization_facade.py +13 -14
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/ptq/pytorch/quantization_facade.py +7 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantization_facade.py +20 -22
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/base_keras_qat_quantizer.py +2 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/quantization_builder.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantization_facade.py +12 -14
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/base_pytorch_qat_quantizer.py +2 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/quantization_builder.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/immutable.py +4 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/__init__.py +4 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/current_tp_model.py +1 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/fusing.py +43 -8
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/op_quantization_config.py +13 -18
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/attribute_filter.py +2 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/current_tpc.py +2 -1
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/operations_to_layers.py +5 -5
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities.py +1 -2
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/common/base_trainable_quantizer.py +13 -13
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/common/get_quantizer_config.py +14 -7
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/common/get_quantizers.py +5 -5
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/keras/base_keras_quantizer.py +2 -3
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/keras/load_model.py +4 -5
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/keras/quantize_wrapper.py +3 -4
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/pytorch/base_pytorch_quantizer.py +3 -3
- mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi.py +0 -112
- mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_aggregation_methods.py +0 -105
- mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/common/mixed_precision/kpi_tools/kpi_functions_mapping.py +0 -26
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/LICENSE.md +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/mct_nightly.egg-info/dependency_links.txt +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/mct_nightly.egg-info/requires.txt +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/mct_nightly.egg-info/top_level.txt +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/analyzer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/back2framework/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/back2framework/base_model_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/base_substitutions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/collectors/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/collectors/histogram_collector.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/collectors/mean_collector.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/collectors/min_max_per_channel_collector.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/collectors/statistics_collector.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/framework_implementation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/framework_info.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/fusion/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/fusion/layer_fusing.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/functional_node.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/graph_matchers.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/graph_searches.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/memory_graph/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/memory_graph/compute_graph_max_cut.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/memory_graph/cut.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/memory_graph/max_cut_astar.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/memory_graph/memory_element.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/graph/memory_graph/memory_graph.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/hessian/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/hessian/hessian_info_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/hessian/trace_hessian_request.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/matchers/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/matchers/base_graph_filter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/matchers/base_matcher.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/matchers/edge_matcher.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/matchers/function.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/matchers/node_matcher.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/matchers/walk_matcher.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/memory_computation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/configurable_quant_id.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/configurable_quantizer_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/distance_weighting.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/mixed_precision_quantization_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400/model_compression_toolkit/core/common/mixed_precision/kpi_tools → mct-nightly-1.11.0.20240322.404/model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools}/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/model_builder_mode.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/model_validation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/network_editors/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/network_editors/edit_network.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/network_editors/node_filters.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/node_prior_info.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/channels_grouping.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/importance_metrics/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/importance_metrics/base_importance_metric.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/importance_metrics/importance_metric_factory.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/mask/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/pruning_framework_implementation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/pruning/pruning_section.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/core_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/debug_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/filter_nodes_candidates.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/error_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/outlier_filter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/power_of_two_selection.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_activations_computation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_computation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_search.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/qparams_weights_computation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/symmetric_selection.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantization_params_generation/uniform_selection.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantize_graph_weights.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantize_node.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantizers/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/quantization/quantizers/lut_kmeans_quantizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/similarity_analyzer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/statistics_correction/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/statistics_correction/apply_bias_correction_to_graph.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/statistics_correction/apply_second_moment_correction_to_graph.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/statistics_correction/statistics_correction.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/apply_substitutions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/batchnorm_folding.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/batchnorm_reconstruction.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/linear_collapsing.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/linear_collapsing_substitution.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/residual_collapsing.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/scale_equalization.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/substitutions/softmax_shift.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/visualization/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/visualization/final_config_visualizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/visualization/nn_visualizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/common/visualization/tensorboard_writer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/graph_prep_runner.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/back2framework/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/back2framework/float_model_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/back2framework/keras_model_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/back2framework/quantized_model_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/custom_layer_validation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/default_framework_info.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/activation_decomposition.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/dwconv_to_conv.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/relu_bound_to_power_of_2.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/remove_relu_upper_bound.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/separableconv_decomposition.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/hessian/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/keras_model_validation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/keras_node_prior_info.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/mixed_precision/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/pruning/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/quantizer/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/quantizer/base_quantizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/quantizer/lut_fake_quant.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/connectivity_handler.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/nested_model/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/nested_model/edges_merger.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/nested_model/nested_model_handler.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/nested_model/nodes_merger.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/nested_model/outputs_merger.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/reader/reader.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/statistics_correction/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/keras/visualization/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/float_model_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/instance_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/pytorch_model_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/quantized_layer_wrapper.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/quantization_wrapper/wrapper_quantize_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/back2framework/quantized_model_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/default_framework_info.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_folding.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_reconstruction.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/batchnorm_refusing.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/functional_layer_norm.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/permute_call_method.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/scale_equalization.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/shift_negative_activation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/softmax_shift.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/virtual_activation_weights_composition.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/graph_substitutions/substitutions/weights_activation_split.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/hessian/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/mixed_precision/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/pruning/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/pytorch_device_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/quantizer/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/quantizer/fake_quant_builder.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/quantizer/lut_fake_quant.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/reader/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/reader/node_holders.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/statistics_correction/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/pytorch/statistics_correction/apply_second_moment_correction.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/core/quantization_prep_runner.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/data_generation_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/enums.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/image_pipeline.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/common/optimization_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/image_pipeline.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/optimization_functions/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/optimization_functions/scheduler_step_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/keras/optimization_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/image_pipeline.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/optimization_functions/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/optimization_functions/batchnorm_alignment_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/optimization_functions/bn_layer_weighting_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/optimization_functions/image_initilization.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/optimization_functions/output_loss_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/optimization_functions/scheduler_step_functions.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/data_generation/pytorch/optimization_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/defaultdict.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/fw_agonstic/quantization_format.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/base_keras_exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/export_serialization_format.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/fakely_quant_tflite_exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/int8_tflite_exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/keras/mctq_keras_exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/pytorch/base_pytorch_exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/pytorch/export_serialization_format.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_onnx_pytorch_exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_exporter/pytorch/fakely_quant_torchscript_pytorch_exporter.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/fw_agnostic/get_inferable_quantizers.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/keras/builder/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/exporter/model_wrapper/pytorch/builder/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/common/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/common/gptq_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/common/gptq_constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/common/gptq_framework_implementation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/gptq_keras_implementation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/gptq_loss.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/quant_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/regularization_factory.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/gptq_loss.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/gptq_pytorch_implementation.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/quant_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/regularization_factory.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/soft_quantizer_reg.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/symmetric_soft_quantizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/soft_rounding/uniform_soft_quantizer.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/gptq/runner.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/pruning/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/pruning/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/pruning/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/ptq/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/ptq/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/ptq/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/ptq/runner.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/common/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/common/qat_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/lsq/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/lsq/uniform_lsq.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/quant_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/keras/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/lsq/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/lsq/symmetric_lsq.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/lsq/uniform_lsq.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/quantizer_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/symmetric_ste.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/qat/pytorch/quantizer/ste_rounding/uniform_ste.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/operators.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/target_platform_model_component.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/layer_filter_params.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/target_platform/targetplatform2framework/target_platform_capabilities_component.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/get_target_platform_capabilities.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/latest/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/target_platform_capabilities.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tp_model.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_keras.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1/tpc_pytorch.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tp_model.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_keras.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_lut/tpc_pytorch.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tp_model.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_keras.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/imx500_tpc/v1_pot/tpc_pytorch.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/latest/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/target_platform_capabilities.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tp_model.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_keras.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/qnnpack_tpc/v1/tpc_pytorch.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/latest/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/target_platform_capabilities.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tp_model.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_keras.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/target_platform_capabilities/tpc_models/tflite_tpc/v1/tpc_pytorch.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/common/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/common/constants.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/common/quant_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/common/trainable_quantizer_config.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/keras/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/keras/config_serialization.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/keras/quantizer_utils.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/model_compression_toolkit/trainable_infrastructure/pytorch/__init__.py +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/setup.cfg +0 -0
- {mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mct-nightly
|
|
3
|
-
Version: 1.11.0.
|
|
3
|
+
Version: 1.11.0.20240322.404
|
|
4
4
|
Summary: A Model Compression Toolkit for neural networks
|
|
5
5
|
Home-page: UNKNOWN
|
|
6
6
|
License: UNKNOWN
|
|
@@ -23,6 +23,7 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
23
23
|
- [Getting Started](#getting-started)
|
|
24
24
|
- [Supported features](#supported-features)
|
|
25
25
|
- [Results](#results)
|
|
26
|
+
- [Troubleshooting](#trouble-shooting)
|
|
26
27
|
- [Contributions](#contributions)
|
|
27
28
|
- [License](#license)
|
|
28
29
|
|
|
@@ -43,15 +44,16 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
43
44
|
|
|
44
45
|
### Quick start & tutorials
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
* [MobileNet with Tensorflow](tutorials/notebooks/keras/ptq/example_keras_mobilenet.py).
|
|
52
|
-
* [MobileNetV2 with PyTorch](tutorials/notebooks/pytorch/ptq/example_pytorch_mobilenet_v2.py).
|
|
47
|
+
Explore the Model Compression Toolkit (MCT) through our tutorials,
|
|
48
|
+
covering compression techniques for Keras and PyTorch models. Access interactive [notebooks](tutorials/README.md)
|
|
49
|
+
for hands-on learning. For example:
|
|
50
|
+
* [Keras MobileNetV2 post training quantization](tutorials/notebooks/keras/ptq/example_keras_imagenet.ipynb)
|
|
51
|
+
* [Post training quantization with PyTorch](tutorials/notebooks/pytorch/ptq/example_pytorch_quantization_mnist.ipynb)
|
|
53
52
|
* [Data Generation for ResNet18 with PyTorch](tutorials/notebooks/pytorch/data_generation/example_pytorch_data_generation.ipynb).
|
|
54
53
|
|
|
54
|
+
Additionally, for quick quantization of a variety of models from well-known collections,
|
|
55
|
+
visit the [quick-start page](tutorials/quick_start/README.md) and the
|
|
56
|
+
[results CSV](tutorials/quick_start/results/model_quantization_results.csv).
|
|
55
57
|
|
|
56
58
|
### Supported Versions
|
|
57
59
|
|
|
@@ -123,7 +125,7 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
123
125
|
taking into account the target platform's Single Instruction, Multiple Data (SIMD) capabilities.
|
|
124
126
|
By pruning groups of channels (SIMD groups), our approach not only reduces model size
|
|
125
127
|
and complexity, but ensures that better utilization of channels is in line with the SIMD architecture
|
|
126
|
-
for a target
|
|
128
|
+
for a target Resource Utilization of weights memory footprint.
|
|
127
129
|
[Keras API](https://sony.github.io/model_optimization/docs/api/experimental_api_docs/methods/keras_pruning_experimental.html)
|
|
128
130
|
[Pytorch API](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/pruning/pytorch/pruning_facade.py#L43)
|
|
129
131
|
|
|
@@ -166,6 +168,12 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
166
168
|
| DenseNet121 [3] | 74.44 | 71.71 |
|
|
167
169
|
|
|
168
170
|
|
|
171
|
+
## Trouble Shooting
|
|
172
|
+
|
|
173
|
+
If the accuracy degradation of the quantized model is too large for your application, check out the [Quantization Troubleshooting](https://github.com/sony/model_optimization/tree/main/quantization_troubleshooting.md)
|
|
174
|
+
for common pitfalls and some tools to improve quantization accuracy.
|
|
175
|
+
|
|
176
|
+
Check out the [FAQ](https://github.com/sony/model_optimization/tree/main/FAQ.md) for common issues.
|
|
169
177
|
|
|
170
178
|
|
|
171
179
|
## Contributions
|
|
@@ -17,6 +17,7 @@ MCT is developed by researchers and engineers working at Sony Semiconductor Isra
|
|
|
17
17
|
- [Getting Started](#getting-started)
|
|
18
18
|
- [Supported features](#supported-features)
|
|
19
19
|
- [Results](#results)
|
|
20
|
+
- [Troubleshooting](#trouble-shooting)
|
|
20
21
|
- [Contributions](#contributions)
|
|
21
22
|
- [License](#license)
|
|
22
23
|
|
|
@@ -37,15 +38,16 @@ For installing the nightly version or installing from source, refer to the [inst
|
|
|
37
38
|
|
|
38
39
|
### Quick start & tutorials
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* [MobileNet with Tensorflow](tutorials/notebooks/keras/ptq/example_keras_mobilenet.py).
|
|
46
|
-
* [MobileNetV2 with PyTorch](tutorials/notebooks/pytorch/ptq/example_pytorch_mobilenet_v2.py).
|
|
41
|
+
Explore the Model Compression Toolkit (MCT) through our tutorials,
|
|
42
|
+
covering compression techniques for Keras and PyTorch models. Access interactive [notebooks](tutorials/README.md)
|
|
43
|
+
for hands-on learning. For example:
|
|
44
|
+
* [Keras MobileNetV2 post training quantization](tutorials/notebooks/keras/ptq/example_keras_imagenet.ipynb)
|
|
45
|
+
* [Post training quantization with PyTorch](tutorials/notebooks/pytorch/ptq/example_pytorch_quantization_mnist.ipynb)
|
|
47
46
|
* [Data Generation for ResNet18 with PyTorch](tutorials/notebooks/pytorch/data_generation/example_pytorch_data_generation.ipynb).
|
|
48
47
|
|
|
48
|
+
Additionally, for quick quantization of a variety of models from well-known collections,
|
|
49
|
+
visit the [quick-start page](tutorials/quick_start/README.md) and the
|
|
50
|
+
[results CSV](tutorials/quick_start/results/model_quantization_results.csv).
|
|
49
51
|
|
|
50
52
|
### Supported Versions
|
|
51
53
|
|
|
@@ -117,7 +119,7 @@ This pruning technique is designed to compress models for specific hardware arch
|
|
|
117
119
|
taking into account the target platform's Single Instruction, Multiple Data (SIMD) capabilities.
|
|
118
120
|
By pruning groups of channels (SIMD groups), our approach not only reduces model size
|
|
119
121
|
and complexity, but ensures that better utilization of channels is in line with the SIMD architecture
|
|
120
|
-
for a target
|
|
122
|
+
for a target Resource Utilization of weights memory footprint.
|
|
121
123
|
[Keras API](https://sony.github.io/model_optimization/docs/api/experimental_api_docs/methods/keras_pruning_experimental.html)
|
|
122
124
|
[Pytorch API](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/pruning/pytorch/pruning_facade.py#L43)
|
|
123
125
|
|
|
@@ -160,6 +162,12 @@ Results for applying pruning to reduce the parameters of the following models by
|
|
|
160
162
|
| DenseNet121 [3] | 74.44 | 71.71 |
|
|
161
163
|
|
|
162
164
|
|
|
165
|
+
## Trouble Shooting
|
|
166
|
+
|
|
167
|
+
If the accuracy degradation of the quantized model is too large for your application, check out the [Quantization Troubleshooting](https://github.com/sony/model_optimization/tree/main/quantization_troubleshooting.md)
|
|
168
|
+
for common pitfalls and some tools to improve quantization accuracy.
|
|
169
|
+
|
|
170
|
+
Check out the [FAQ](https://github.com/sony/model_optimization/tree/main/FAQ.md) for common issues.
|
|
163
171
|
|
|
164
172
|
|
|
165
173
|
## Contributions
|
{mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/mct_nightly.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mct-nightly
|
|
3
|
-
Version: 1.11.0.
|
|
3
|
+
Version: 1.11.0.20240322.404
|
|
4
4
|
Summary: A Model Compression Toolkit for neural networks
|
|
5
5
|
Home-page: UNKNOWN
|
|
6
6
|
License: UNKNOWN
|
|
@@ -23,6 +23,7 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
23
23
|
- [Getting Started](#getting-started)
|
|
24
24
|
- [Supported features](#supported-features)
|
|
25
25
|
- [Results](#results)
|
|
26
|
+
- [Troubleshooting](#trouble-shooting)
|
|
26
27
|
- [Contributions](#contributions)
|
|
27
28
|
- [License](#license)
|
|
28
29
|
|
|
@@ -43,15 +44,16 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
43
44
|
|
|
44
45
|
### Quick start & tutorials
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
* [MobileNet with Tensorflow](tutorials/notebooks/keras/ptq/example_keras_mobilenet.py).
|
|
52
|
-
* [MobileNetV2 with PyTorch](tutorials/notebooks/pytorch/ptq/example_pytorch_mobilenet_v2.py).
|
|
47
|
+
Explore the Model Compression Toolkit (MCT) through our tutorials,
|
|
48
|
+
covering compression techniques for Keras and PyTorch models. Access interactive [notebooks](tutorials/README.md)
|
|
49
|
+
for hands-on learning. For example:
|
|
50
|
+
* [Keras MobileNetV2 post training quantization](tutorials/notebooks/keras/ptq/example_keras_imagenet.ipynb)
|
|
51
|
+
* [Post training quantization with PyTorch](tutorials/notebooks/pytorch/ptq/example_pytorch_quantization_mnist.ipynb)
|
|
53
52
|
* [Data Generation for ResNet18 with PyTorch](tutorials/notebooks/pytorch/data_generation/example_pytorch_data_generation.ipynb).
|
|
54
53
|
|
|
54
|
+
Additionally, for quick quantization of a variety of models from well-known collections,
|
|
55
|
+
visit the [quick-start page](tutorials/quick_start/README.md) and the
|
|
56
|
+
[results CSV](tutorials/quick_start/results/model_quantization_results.csv).
|
|
55
57
|
|
|
56
58
|
### Supported Versions
|
|
57
59
|
|
|
@@ -123,7 +125,7 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
123
125
|
taking into account the target platform's Single Instruction, Multiple Data (SIMD) capabilities.
|
|
124
126
|
By pruning groups of channels (SIMD groups), our approach not only reduces model size
|
|
125
127
|
and complexity, but ensures that better utilization of channels is in line with the SIMD architecture
|
|
126
|
-
for a target
|
|
128
|
+
for a target Resource Utilization of weights memory footprint.
|
|
127
129
|
[Keras API](https://sony.github.io/model_optimization/docs/api/experimental_api_docs/methods/keras_pruning_experimental.html)
|
|
128
130
|
[Pytorch API](https://github.com/sony/model_optimization/blob/main/model_compression_toolkit/pruning/pytorch/pruning_facade.py#L43)
|
|
129
131
|
|
|
@@ -166,6 +168,12 @@ Description: # Model Compression Toolkit (MCT)
|
|
|
166
168
|
| DenseNet121 [3] | 74.44 | 71.71 |
|
|
167
169
|
|
|
168
170
|
|
|
171
|
+
## Trouble Shooting
|
|
172
|
+
|
|
173
|
+
If the accuracy degradation of the quantized model is too large for your application, check out the [Quantization Troubleshooting](https://github.com/sony/model_optimization/tree/main/quantization_troubleshooting.md)
|
|
174
|
+
for common pitfalls and some tools to improve quantization accuracy.
|
|
175
|
+
|
|
176
|
+
Check out the [FAQ](https://github.com/sony/model_optimization/tree/main/FAQ.md) for common issues.
|
|
169
177
|
|
|
170
178
|
|
|
171
179
|
## Contributions
|
{mct-nightly-1.11.0.20240320.400 → mct-nightly-1.11.0.20240322.404}/mct_nightly.egg-info/SOURCES.txt
RENAMED
|
@@ -77,12 +77,12 @@ model_compression_toolkit/core/common/mixed_precision/mixed_precision_search_man
|
|
|
77
77
|
model_compression_toolkit/core/common/mixed_precision/sensitivity_evaluation.py
|
|
78
78
|
model_compression_toolkit/core/common/mixed_precision/set_layer_to_bitwidth.py
|
|
79
79
|
model_compression_toolkit/core/common/mixed_precision/solution_refinement_procedure.py
|
|
80
|
-
model_compression_toolkit/core/common/mixed_precision/
|
|
81
|
-
model_compression_toolkit/core/common/mixed_precision/
|
|
82
|
-
model_compression_toolkit/core/common/mixed_precision/
|
|
83
|
-
model_compression_toolkit/core/common/mixed_precision/
|
|
84
|
-
model_compression_toolkit/core/common/mixed_precision/
|
|
85
|
-
model_compression_toolkit/core/common/mixed_precision/
|
|
80
|
+
model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/__init__.py
|
|
81
|
+
model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization.py
|
|
82
|
+
model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/resource_utilization_data.py
|
|
83
|
+
model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_aggregation_methods.py
|
|
84
|
+
model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_functions_mapping.py
|
|
85
|
+
model_compression_toolkit/core/common/mixed_precision/resource_utilization_tools/ru_methods.py
|
|
86
86
|
model_compression_toolkit/core/common/mixed_precision/search_methods/__init__.py
|
|
87
87
|
model_compression_toolkit/core/common/mixed_precision/search_methods/linear_programming.py
|
|
88
88
|
model_compression_toolkit/core/common/network_editors/__init__.py
|
|
@@ -162,7 +162,7 @@ model_compression_toolkit/core/keras/default_framework_info.py
|
|
|
162
162
|
model_compression_toolkit/core/keras/keras_implementation.py
|
|
163
163
|
model_compression_toolkit/core/keras/keras_model_validation.py
|
|
164
164
|
model_compression_toolkit/core/keras/keras_node_prior_info.py
|
|
165
|
-
model_compression_toolkit/core/keras/
|
|
165
|
+
model_compression_toolkit/core/keras/resource_utilization_data_facade.py
|
|
166
166
|
model_compression_toolkit/core/keras/tf_tensor_numpy.py
|
|
167
167
|
model_compression_toolkit/core/keras/back2framework/__init__.py
|
|
168
168
|
model_compression_toolkit/core/keras/back2framework/factory_model_builder.py
|
|
@@ -220,10 +220,10 @@ model_compression_toolkit/core/keras/visualization/__init__.py
|
|
|
220
220
|
model_compression_toolkit/core/pytorch/__init__.py
|
|
221
221
|
model_compression_toolkit/core/pytorch/constants.py
|
|
222
222
|
model_compression_toolkit/core/pytorch/default_framework_info.py
|
|
223
|
-
model_compression_toolkit/core/pytorch/kpi_data_facade.py
|
|
224
223
|
model_compression_toolkit/core/pytorch/pytorch_device_config.py
|
|
225
224
|
model_compression_toolkit/core/pytorch/pytorch_implementation.py
|
|
226
225
|
model_compression_toolkit/core/pytorch/pytorch_node_prior_info.py
|
|
226
|
+
model_compression_toolkit/core/pytorch/resource_utilization_data_facade.py
|
|
227
227
|
model_compression_toolkit/core/pytorch/utils.py
|
|
228
228
|
model_compression_toolkit/core/pytorch/back2framework/__init__.py
|
|
229
229
|
model_compression_toolkit/core/pytorch/back2framework/factory_model_builder.py
|
|
@@ -27,4 +27,4 @@ from model_compression_toolkit import data_generation
|
|
|
27
27
|
from model_compression_toolkit import pruning
|
|
28
28
|
from model_compression_toolkit.trainable_infrastructure.keras.load_model import keras_load_quantized_model
|
|
29
29
|
|
|
30
|
-
__version__ = "1.11.0.
|
|
30
|
+
__version__ = "1.11.0.20240322.000404"
|
|
@@ -21,9 +21,9 @@ from model_compression_toolkit.core.common.quantization import quantization_conf
|
|
|
21
21
|
from model_compression_toolkit.core.common.mixed_precision import mixed_precision_quantization_config
|
|
22
22
|
from model_compression_toolkit.core.common.quantization.quantization_config import QuantizationConfig, QuantizationErrorMethod, DEFAULTCONFIG
|
|
23
23
|
from model_compression_toolkit.core.common.quantization.core_config import CoreConfig
|
|
24
|
-
from model_compression_toolkit.core.common.mixed_precision.
|
|
24
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization
|
|
25
25
|
from model_compression_toolkit.core.common.mixed_precision.mixed_precision_quantization_config import MixedPrecisionQuantizationConfig
|
|
26
|
-
from model_compression_toolkit.core.keras.
|
|
27
|
-
from model_compression_toolkit.core.pytorch.
|
|
26
|
+
from model_compression_toolkit.core.keras.resource_utilization_data_facade import keras_resource_utilization_data
|
|
27
|
+
from model_compression_toolkit.core.pytorch.resource_utilization_data_facade import pytorch_resource_utilization_data
|
|
28
28
|
from model_compression_toolkit.core.common.mixed_precision.distance_weighting import MpDistanceWeighting
|
|
29
29
|
|
|
@@ -66,5 +66,5 @@ class BaseCollector(object):
|
|
|
66
66
|
"""
|
|
67
67
|
|
|
68
68
|
if not self.is_legal:
|
|
69
|
-
Logger.
|
|
70
|
-
|
|
69
|
+
Logger.critical('The data is invalid.'
|
|
70
|
+
f'{self.__class__.__name__} was collected per-tensor but received data manipulated per-channel.') # pragma: no cover
|
|
@@ -66,7 +66,7 @@ class FolderImageLoader(object):
|
|
|
66
66
|
|
|
67
67
|
self.folder = folder
|
|
68
68
|
self.image_list = []
|
|
69
|
-
|
|
69
|
+
Logger.info(f"Starting Scanning Disk: {self.folder}")
|
|
70
70
|
for root, dirs, files in os.walk(self.folder):
|
|
71
71
|
for file in files:
|
|
72
72
|
file_type = file.split('.')[-1].lower()
|
|
@@ -74,8 +74,8 @@ class FolderImageLoader(object):
|
|
|
74
74
|
self.image_list.append(os.path.join(root, file))
|
|
75
75
|
self.n_files = len(self.image_list)
|
|
76
76
|
if self.n_files == 0:
|
|
77
|
-
Logger.
|
|
78
|
-
|
|
77
|
+
Logger.critical(f"Expected files of type {FILETYPES}. No files of type {FILETYPES} were found.") # pragma: no cover
|
|
78
|
+
Logger.info(f"Finished Disk Scanning: Found {self.n_files} files")
|
|
79
79
|
self.preprocessing = preprocessing
|
|
80
80
|
self.batch_size = batch_size
|
|
81
81
|
|
|
@@ -102,10 +102,10 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
|
102
102
|
for filtered_layer in tpc_filtered_layers])
|
|
103
103
|
if n.is_custom:
|
|
104
104
|
if not is_node_in_tpc:
|
|
105
|
-
Logger.
|
|
106
|
-
f'Please add the custom layer to TPC or file a feature request or an issue if you believe this
|
|
105
|
+
Logger.critical(f'MCT does not support optimizing Keras custom layers. Found a layer of type {n.type}. '
|
|
106
|
+
f' Please add the custom layer to Target Platform Capabilities (TPC), or file a feature request or an issue if you believe this should be supported.')
|
|
107
107
|
if any([qc.default_weight_attr_config.enable_weights_quantization for qc in n.get_qco(tpc).quantization_config_list]):
|
|
108
|
-
Logger.
|
|
108
|
+
Logger.critical(f'Layer identified: {n.type}. MCT does not support weight quantization for Keras custom layers.')
|
|
109
109
|
|
|
110
110
|
self.tpc = tpc
|
|
111
111
|
|
|
@@ -231,7 +231,7 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
|
231
231
|
|
|
232
232
|
sc = self.node_to_in_stats_collector.get(n)
|
|
233
233
|
if sc is None:
|
|
234
|
-
Logger.
|
|
234
|
+
Logger.critical(f'No input statistics collector found for node {n.name}.') # pragma: no cover
|
|
235
235
|
return sc
|
|
236
236
|
|
|
237
237
|
def scale_stats_collector(self,
|
|
@@ -370,8 +370,7 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
|
370
370
|
input_nodes_output_index = [0] * len(input_nodes)
|
|
371
371
|
|
|
372
372
|
if len(input_nodes_output_index) != len(input_nodes):
|
|
373
|
-
Logger.
|
|
374
|
-
'length') # pragma: no cover
|
|
373
|
+
Logger.critical('The number of input nodes and their corresponding output indices must be equal. Found mismatched lengths.') # pragma: no cover
|
|
375
374
|
|
|
376
375
|
self.add_node(new_node)
|
|
377
376
|
for sink_index, (in_node, source_index) in enumerate(zip(input_nodes, input_nodes_output_index)):
|
|
@@ -414,7 +413,7 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
|
414
413
|
|
|
415
414
|
"""
|
|
416
415
|
if new_node is None:
|
|
417
|
-
Logger.
|
|
416
|
+
Logger.critical("Cannot replace input node with a None value; new input node is required.")
|
|
418
417
|
|
|
419
418
|
graph_inputs = self.get_inputs()
|
|
420
419
|
new_graph_inputs = copy(graph_inputs)
|
|
@@ -442,13 +441,13 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
|
442
441
|
if node_to_remove in output_nodes: # If node is in the graph's outputs, the outputs should be updated
|
|
443
442
|
if new_graph_outputs is None:
|
|
444
443
|
Logger.critical(
|
|
445
|
-
f
|
|
444
|
+
f"{node_to_remove.name} is among the graph outputs; however, it cannot be removed without providing a new output.") # pragma: no cover
|
|
446
445
|
self.set_outputs(new_graph_outputs)
|
|
447
446
|
|
|
448
447
|
if node_to_remove in self.get_inputs(): # If node is in the graph's inputs, the inputs should be updated
|
|
449
448
|
if new_graph_inputs is None:
|
|
450
449
|
Logger.critical(
|
|
451
|
-
f'{node_to_remove.name}
|
|
450
|
+
f'{node_to_remove.name} s among the graph inputs; however, it cannot be removed without providing a new input.') # pragma: no cover
|
|
452
451
|
self.set_inputs(new_graph_inputs)
|
|
453
452
|
|
|
454
453
|
# Make sure there are no connected edges left to the node before removing it.
|
|
@@ -828,14 +827,12 @@ class Graph(nx.MultiDiGraph, GraphSearches):
|
|
|
828
827
|
|
|
829
828
|
"""
|
|
830
829
|
if not fw_impl.is_node_entry_node(entry_node):
|
|
831
|
-
Logger.
|
|
832
|
-
f"but node {entry_node} is not an entry node.")
|
|
830
|
+
Logger.critical(f"Node {entry_node} is not a valid entry node for creating a pruning section")
|
|
833
831
|
|
|
834
832
|
intermediate_nodes, exit_node = self._find_intermediate_and_exit_nodes(entry_node, fw_impl)
|
|
835
833
|
|
|
836
834
|
if not fw_impl.is_node_exit_node(exit_node, entry_node, self.fw_info):
|
|
837
|
-
Logger.
|
|
838
|
-
f"but node {exit_node} is not an exit node.")
|
|
835
|
+
Logger.critical(f"Node {exit_node} is not a valid exit node for the pruning section starting with {entry_node}.")
|
|
839
836
|
|
|
840
837
|
return PruningSection(entry_node=entry_node,
|
|
841
838
|
intermediate_nodes=intermediate_nodes,
|
|
@@ -547,7 +547,7 @@ class BaseNode:
|
|
|
547
547
|
"""
|
|
548
548
|
|
|
549
549
|
if tpc is None:
|
|
550
|
-
Logger.
|
|
550
|
+
Logger.critical(f'Can not retrieve QC options for None TPC') # pragma: no cover
|
|
551
551
|
|
|
552
552
|
for fl, qco in tpc.filterlayer2qco.items():
|
|
553
553
|
if self.is_match_filter_params(fl):
|
|
@@ -617,10 +617,10 @@ class BaseNode:
|
|
|
617
617
|
Logger.warning(f"More than one pruning SIMD option is available."
|
|
618
618
|
f" Min SIMD is used: {min(simd_list)}")
|
|
619
619
|
if len(simd_list) == 0:
|
|
620
|
-
Logger.
|
|
620
|
+
Logger.critical(f"No SIMD option is available for {self}")
|
|
621
621
|
_simd = min(simd_list)
|
|
622
622
|
if _simd <= 0 or int(_simd) != _simd:
|
|
623
|
-
Logger.
|
|
623
|
+
Logger.critical(f"SIMD is expected to be a non-positive integer but found: {_simd}")
|
|
624
624
|
return _simd
|
|
625
625
|
|
|
626
626
|
def sort_node_candidates(self, fw_info):
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
from typing import Any, Dict
|
|
18
18
|
|
|
19
19
|
from model_compression_toolkit.core.common.graph.base_node import BaseNode
|
|
20
|
+
from model_compression_toolkit.logger import Logger
|
|
20
21
|
|
|
21
22
|
# Edge attributes:
|
|
22
23
|
EDGE_SOURCE_INDEX = 'source_index'
|
|
@@ -108,4 +109,4 @@ def convert_to_edge(edge: Any) -> Edge:
|
|
|
108
109
|
elif isinstance(edge, Edge): # it's already an Edge and no change need to be done
|
|
109
110
|
return edge
|
|
110
111
|
|
|
111
|
-
|
|
112
|
+
Logger.critical('Edge conversion failed: unrecognized edge format encountered.')
|
|
@@ -75,10 +75,8 @@ class DirectedBipartiteGraph(nx.DiGraph):
|
|
|
75
75
|
edges_list: A list of edges to verify their correction.
|
|
76
76
|
"""
|
|
77
77
|
for n1, n2 in edges_list:
|
|
78
|
-
if n1 in self.a_nodes and n2 in self.a_nodes:
|
|
79
|
-
Logger.critical(f"
|
|
80
|
-
if n1 in self.b_nodes and n2 in self.b_nodes:
|
|
81
|
-
Logger.critical(f"Can't add an edge {(n1, n2)} between two nodes in size B of a bipartite graph.")
|
|
78
|
+
if (n1 in self.a_nodes and n2 in self.a_nodes) or (n1 in self.b_nodes and n2 in self.b_nodes):
|
|
79
|
+
Logger.critical(f"Attempted to add edge {(n1, n2)} between nodes of the same partition in a bipartite graph, violating bipartite properties.")
|
|
82
80
|
|
|
83
81
|
def add_nodes_to_a(self, new_nodes: List[Any]):
|
|
84
82
|
"""
|
|
@@ -113,14 +113,14 @@ class VirtualSplitActivationNode(VirtualSplitNode):
|
|
|
113
113
|
class VirtualActivationWeightsNode(BaseNode):
|
|
114
114
|
"""
|
|
115
115
|
A node that represents a composition of pair of sequential activation node and weights (kernel) node.
|
|
116
|
-
This structure is used for mixed-precision search with bit-operation
|
|
116
|
+
This structure is used for mixed-precision search with bit-operation constraint.
|
|
117
117
|
The node's candidates are the cartesian product of both nodes' candidates.
|
|
118
118
|
|
|
119
119
|
Important: note that not like regular BaseNode or FunctionalNode, in VirtualActivationWeightsNode the activation
|
|
120
120
|
candidates config refer to the quantization config of the activation that precedes the linear operation! instead of
|
|
121
121
|
the output of the linear operation.
|
|
122
122
|
It is ok, since this node is not meant to be used in a graph for creating an actual model, but only a virtual
|
|
123
|
-
representation of the model's graph only for allowing to compute the bit-operations
|
|
123
|
+
representation of the model's graph only for allowing to compute the bit-operations constraint in mixed-precision.
|
|
124
124
|
"""
|
|
125
125
|
|
|
126
126
|
def __init__(self,
|
|
@@ -72,7 +72,7 @@ class HessianInfoService:
|
|
|
72
72
|
"""
|
|
73
73
|
images = next(representative_dataset())
|
|
74
74
|
if not isinstance(images, list):
|
|
75
|
-
Logger.
|
|
75
|
+
Logger.critical(f'Expected images to be a list; found type: {type(images)}.')
|
|
76
76
|
|
|
77
77
|
# Ensure each image is a single sample, if not, take the first sample
|
|
78
78
|
return [image[0:1, ...] if image.shape[0] != 1 else image for image in images]
|
|
@@ -176,8 +176,7 @@ class HessianInfoService:
|
|
|
176
176
|
"""
|
|
177
177
|
father_nodes = [n for n in self.graph.nodes if not n.reuse and n.reuse_group==trace_hessian_request.target_node.reuse_group]
|
|
178
178
|
if len(father_nodes)!=1:
|
|
179
|
-
Logger.
|
|
180
|
-
f" reused but found {len(father_nodes)}")
|
|
179
|
+
Logger.critical(f"Expected a single non-reused node in the reused group, but found {len(father_nodes)}.")
|
|
181
180
|
reused_group_request = TraceHessianRequest(target_node=father_nodes[0],
|
|
182
181
|
granularity=trace_hessian_request.granularity,
|
|
183
182
|
mode=trace_hessian_request.mode)
|
|
@@ -50,21 +50,19 @@ class TraceHessianCalculator(ABC):
|
|
|
50
50
|
|
|
51
51
|
for output_node in graph.get_outputs():
|
|
52
52
|
if not fw_impl.is_output_node_compatible_for_hessian_score_computation(output_node.node):
|
|
53
|
-
Logger.
|
|
54
|
-
f"was found with layer type {output_node.node.type}. "
|
|
55
|
-
f"Try to run MCT without Hessian info computation.")
|
|
53
|
+
Logger.critical(f"All graph outputs must support Hessian score computation. Incompatible node: {output_node.node}, layer type: {output_node.node.type}. Consider disabling Hessian info computation.")
|
|
56
54
|
|
|
57
55
|
self.input_images = fw_impl.to_tensor(input_images)
|
|
58
56
|
self.num_iterations_for_approximation = num_iterations_for_approximation
|
|
59
57
|
|
|
60
58
|
# Validate representative dataset has same inputs as graph
|
|
61
59
|
if len(self.input_images)!=len(graph.get_inputs()):
|
|
62
|
-
Logger.
|
|
60
|
+
Logger.critical(f"The graph requires {len(graph.get_inputs())} inputs, but the provided representative dataset contains {len(self.input_images)} inputs.")
|
|
63
61
|
|
|
64
62
|
# Assert all inputs have a batch size of 1
|
|
65
63
|
for image in self.input_images:
|
|
66
64
|
if image.shape[0]!=1:
|
|
67
|
-
Logger.
|
|
65
|
+
Logger.critical(f"Hessian calculations are restricted to a single-image per input. Found input with shape: {image.shape}.")
|
|
68
66
|
|
|
69
67
|
self.fw_impl = fw_impl
|
|
70
68
|
self.hessian_request = trace_hessian_request
|
|
@@ -116,8 +116,7 @@ def _get_node_qc_by_bit_widths(node: BaseNode,
|
|
|
116
116
|
|
|
117
117
|
return qc
|
|
118
118
|
|
|
119
|
-
Logger.critical(f'
|
|
120
|
-
f' was not found in candidates configurations.')
|
|
119
|
+
Logger.critical(f"Quantization configuration for node '{node.name}' not found in candidate configurations.") # pragma: no cover
|
|
121
120
|
|
|
122
121
|
|
|
123
122
|
def _set_node_final_qc(bit_width_cfg: List[int],
|
|
@@ -21,8 +21,8 @@ from typing import List, Callable, Dict
|
|
|
21
21
|
from model_compression_toolkit.core import MixedPrecisionQuantizationConfig
|
|
22
22
|
from model_compression_toolkit.core.common import Graph
|
|
23
23
|
from model_compression_toolkit.core.common.hessian import HessianInfoService
|
|
24
|
-
from model_compression_toolkit.core.common.mixed_precision.
|
|
25
|
-
from model_compression_toolkit.core.common.mixed_precision.
|
|
24
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.resource_utilization import ResourceUtilization, RUTarget
|
|
25
|
+
from model_compression_toolkit.core.common.mixed_precision.resource_utilization_tools.ru_functions_mapping import ru_functions_mapping
|
|
26
26
|
from model_compression_toolkit.core.common.framework_implementation import FrameworkImplementation
|
|
27
27
|
from model_compression_toolkit.core.common.mixed_precision.mixed_precision_search_manager import MixedPrecisionSearchManager
|
|
28
28
|
from model_compression_toolkit.core.common.mixed_precision.search_methods.linear_programming import \
|
|
@@ -47,7 +47,7 @@ search_methods = {
|
|
|
47
47
|
def search_bit_width(graph_to_search_cfg: Graph,
|
|
48
48
|
fw_info: FrameworkInfo,
|
|
49
49
|
fw_impl: FrameworkImplementation,
|
|
50
|
-
|
|
50
|
+
target_resource_utilization: ResourceUtilization,
|
|
51
51
|
mp_config: MixedPrecisionQuantizationConfig,
|
|
52
52
|
representative_data_gen: Callable,
|
|
53
53
|
search_method: BitWidthSearchMethod = BitWidthSearchMethod.INTEGER_PROGRAMMING,
|
|
@@ -56,15 +56,15 @@ def search_bit_width(graph_to_search_cfg: Graph,
|
|
|
56
56
|
Search for an MP configuration for a given graph. Given a search_method method (by default, it's linear
|
|
57
57
|
programming), we use the sensitivity_evaluator object that provides a function to compute an
|
|
58
58
|
evaluation for the expected sensitivity for a bit-width configuration.
|
|
59
|
-
Then, and after computing the
|
|
60
|
-
we search for the optimal solution, given some
|
|
61
|
-
|
|
59
|
+
Then, and after computing the resource utilization for each node in the graph for each bit-width in the search space,
|
|
60
|
+
we search for the optimal solution, given some target_resource_utilization, the solution should fit.
|
|
61
|
+
target_resource_utilization have to be passed. If it was not passed, the facade is not supposed to get here by now.
|
|
62
62
|
|
|
63
63
|
Args:
|
|
64
64
|
graph_to_search_cfg: Graph to search a MP configuration for.
|
|
65
65
|
fw_info: FrameworkInfo object about the specific framework (e.g., attributes of different layers' weights to quantize).
|
|
66
66
|
fw_impl: FrameworkImplementation object with specific framework methods implementation.
|
|
67
|
-
|
|
67
|
+
target_resource_utilization: Target Resource Utilization to bound our feasible solution space s.t the configuration does not violate it.
|
|
68
68
|
mp_config: Mixed-precision quantization configuration.
|
|
69
69
|
representative_data_gen: Dataset to use for retrieving images for the models inputs.
|
|
70
70
|
search_method: BitWidthSearchMethod to define which searching method to use.
|
|
@@ -77,25 +77,25 @@ def search_bit_width(graph_to_search_cfg: Graph,
|
|
|
77
77
|
|
|
78
78
|
"""
|
|
79
79
|
|
|
80
|
-
#
|
|
81
|
-
if
|
|
82
|
-
Logger.critical(
|
|
80
|
+
# target_resource_utilization have to be passed. If it was not passed, the facade is not supposed to get here by now.
|
|
81
|
+
if target_resource_utilization is None:
|
|
82
|
+
Logger.critical("Target ResourceUtilization is required for the bit-width search method's configuration.") # pragma: no cover
|
|
83
83
|
|
|
84
84
|
# Set graph for MP search
|
|
85
85
|
graph = copy.deepcopy(graph_to_search_cfg) # Copy graph before searching
|
|
86
|
-
if
|
|
87
|
-
# Since Bit-operations count target
|
|
86
|
+
if target_resource_utilization.bops < np.inf:
|
|
87
|
+
# Since Bit-operations count target resource utilization is set, we need to reconstruct the graph for the MP search
|
|
88
88
|
graph = substitute(graph, fw_impl.get_substitutions_virtual_weights_activation_coupling())
|
|
89
89
|
|
|
90
90
|
# If we only run weights compression with MP than no need to consider activation quantization when computing the
|
|
91
91
|
# MP metric (it adds noise to the computation)
|
|
92
|
-
disable_activation_for_metric = (
|
|
93
|
-
(
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
disable_activation_for_metric = (target_resource_utilization.weights_memory < np.inf and
|
|
93
|
+
(target_resource_utilization.activation_memory == np.inf and
|
|
94
|
+
target_resource_utilization.total_memory == np.inf and
|
|
95
|
+
target_resource_utilization.bops == np.inf)) or graph_to_search_cfg.is_single_activation_cfg()
|
|
96
96
|
|
|
97
97
|
# Set Sensitivity Evaluator for MP search. It should always work with the original MP graph,
|
|
98
|
-
# even if a virtual graph was created (and is used only for BOPS
|
|
98
|
+
# even if a virtual graph was created (and is used only for BOPS utilization computation purposes)
|
|
99
99
|
se = fw_impl.get_sensitivity_evaluator(
|
|
100
100
|
graph_to_search_cfg,
|
|
101
101
|
mp_config,
|
|
@@ -104,16 +104,17 @@ def search_bit_width(graph_to_search_cfg: Graph,
|
|
|
104
104
|
disable_activation_for_metric=disable_activation_for_metric,
|
|
105
105
|
hessian_info_service=hessian_info_service)
|
|
106
106
|
|
|
107
|
-
# Each pair of (
|
|
108
|
-
|
|
107
|
+
# Each pair of (resource utilization method, resource utilization aggregation) should match to a specific
|
|
108
|
+
# provided target resource utilization
|
|
109
|
+
ru_functions = ru_functions_mapping
|
|
109
110
|
|
|
110
111
|
# Instantiate a manager object
|
|
111
112
|
search_manager = MixedPrecisionSearchManager(graph,
|
|
112
113
|
fw_info,
|
|
113
114
|
fw_impl,
|
|
114
115
|
se,
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
ru_functions,
|
|
117
|
+
target_resource_utilization,
|
|
117
118
|
original_graph=graph_to_search_cfg)
|
|
118
119
|
|
|
119
120
|
if search_method in search_methods: # Get a specific search function
|
|
@@ -123,9 +124,9 @@ def search_bit_width(graph_to_search_cfg: Graph,
|
|
|
123
124
|
|
|
124
125
|
# Search for the desired mixed-precision configuration
|
|
125
126
|
result_bit_cfg = search_method_fn(search_manager,
|
|
126
|
-
|
|
127
|
+
target_resource_utilization)
|
|
127
128
|
|
|
128
129
|
if mp_config.refine_mp_solution:
|
|
129
|
-
result_bit_cfg = greedy_solution_refinement_procedure(result_bit_cfg, search_manager,
|
|
130
|
+
result_bit_cfg = greedy_solution_refinement_procedure(result_bit_cfg, search_manager, target_resource_utilization)
|
|
130
131
|
|
|
131
132
|
return result_bit_cfg
|