Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def generate_tpc_func(device_type: str) -> Callable:
device_type (str): The type of device for the target platform.

Returns:
A function that generates target platform capabilities models.
Callable: A function that generates target platform capabilities models.
"""

# Organize all device types into device_type_dict.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_target_platform_capabilities(tpc_version: str = '1.0',
device_type (str): The type of device for the target platform.

Returns:
The TargetPlatformCapabilities object.
TargetPlatformCapabilities: The TargetPlatformCapabilities object.
"""
# Generate a function containing tpc configurations for the specified device type.
tpc_func = generate_tpc_func(device_type=device_type)
Expand All @@ -44,11 +44,11 @@ def get_tpc_model(name: str, tpc: TargetPlatformCapabilities):
This is a utility method that just returns the TargetPlatformCapabilities that it receives, to support existing TPC API.

Args:
name: the name of the TargetPlatformCapabilities (not used in this function).
tpc: a TargetPlatformCapabilities to return.
name (str): the name of the TargetPlatformCapabilities (not used in this function).
tpc (TargetPlatformCapabilities): a TargetPlatformCapabilities to return.

Returns:
The given TargetPlatformCapabilities object.
TargetPlatformCapabilities: The given TargetPlatformCapabilities object.

"""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def generate_imx500_tpc(tpc_version: str) -> TargetPlatformCapabilities:
tpc_version (str): The version of the TPC to use.

Returns:
None (TargetPlatformCapabilities): The TargetPlatformCapabilities object based on the specified version.
TargetPlatformCapabilities: The TargetPlatformCapabilities object based on the specified version.
"""

# Organize all tpc versions into tpcs_dict.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ def get_tpc() -> TargetPlatformCapabilities:
(for tests, experiments, etc.), use this method implementation as a test-case, i.e., override the
'get_op_quantization_configs' method and use its output to call 'generate_tpc' with your configurations.

Returns: A TargetPlatformCapabilities object.
Returns:
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
base_config, mixed_precision_cfg_list, default_config = get_op_quantization_configs()
Expand All @@ -48,7 +49,9 @@ def get_op_quantization_configs() -> Tuple[OpQuantizationConfig, List[OpQuantiza
In addition, creates a default configuration objects list (with 8, 4 and 2 bit quantization) to be used as
default configuration for mixed-precision quantization.

Returns: An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.
Returns:
Tuple[OpQuantizationConfig, List[OpQuantizationConfig], OpQuantizationConfig]:
An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.

"""

Expand Down Expand Up @@ -138,14 +141,15 @@ def generate_tpc(default_config: OpQuantizationConfig,
Generates TargetPlatformCapabilities with default defined Operators Sets, based on the given base configuration and
mixed-precision configurations options list.

Args
default_config: A default OpQuantizationConfig to set as the TP model default configuration.
base_config: An OpQuantizationConfig to set as the TargetPlatformCapabilities base configuration for mixed-precision purposes only.
mixed_precision_cfg_list: A list of OpQuantizationConfig to be used as the TP model mixed-precision
quantization configuration options.
name: The name of the TargetPlatformCapabilities.
Args:
default_config (OpQuantizationConfig): A default OpQuantizationConfig to set as the TP model default configuration.
base_config (OpQuantizationConfig): An OpQuantizationConfig to set as the TargetPlatformCapabilities base configuration for mixed-precision purposes only.
mixed_precision_cfg_list (List[OpQuantizationConfig]): A list of OpQuantizationConfig to be used as the TP model mixed-precision
quantization configuration options.
name (str): The name of the TargetPlatformCapabilities.

Returns: A TargetPlatformCapabilities object.
Returns:
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
# Create a QuantizationConfigOptions, which defines a set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def get_tpc() -> TargetPlatformCapabilities:
'get_op_quantization_configs' method and use its output to call 'generate_tpc' with your configurations.

Returns:
None (TargetPlatformCapabilities): A TargetPlatformCapabilities object.
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
base_config, mixed_precision_cfg_list, default_config = get_op_quantization_configs()
Expand All @@ -49,10 +49,8 @@ def get_op_quantization_configs() -> Tuple[OpQuantizationConfig, List[OpQuantiza
default configuration for mixed-precision quantization.

Returns:
linear_eight_bits (OpQuantizationConfig),
mixed_precision_cfg_list (List[OpQuantizationConfig]),
eight_bits_default (OpQuantizationConfig)
: An OpQuantizationConfig object and a list of OpQuantizationConfig objects.
Tuple[OpQuantizationConfig, List[OpQuantizationConfig], OpQuantizationConfig]:
An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.

"""

Expand Down Expand Up @@ -150,7 +148,7 @@ def generate_tpc(default_config: OpQuantizationConfig,
name (str): The name of the TargetPlatformCapabilities.

Returns:
generated_tpc (TargetPlatformCapabilities): A TargetPlatformCapabilities object.
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
# Create a QuantizationConfigOptions, which defines a set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def get_tpc() -> TargetPlatformCapabilities:
'get_op_quantization_configs' method and use its output to call 'generate_tpc' with your configurations.

Returns:
None (TargetPlatformCapabilities): A TargetPlatformCapabilities object.
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
base_config, mixed_precision_cfg_list, default_config = get_op_quantization_configs()
Expand All @@ -49,10 +49,8 @@ def get_op_quantization_configs() -> Tuple[OpQuantizationConfig, List[OpQuantiza
default configuration for mixed-precision quantization.

Returns:
linear_eight_bits (OpQuantizationConfig),
mixed_precision_cfg_list (List[OpQuantizationConfig]),
eight_bits_default (OpQuantizationConfig)
: An OpQuantizationConfig object and a list of OpQuantizationConfig objects.
Tuple[OpQuantizationConfig, List[OpQuantizationConfig], OpQuantizationConfig]:
An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.

"""

Expand Down Expand Up @@ -150,7 +148,7 @@ def generate_tpc(default_config: OpQuantizationConfig,
name (str): The name of the TargetPlatformCapabilities.

Returns:
generated_tpc (TargetPlatformCapabilities): A TargetPlatformCapabilities object.
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
# Create a QuantizationConfigOptions, which defines a set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def get_tpc() -> TargetPlatformCapabilities:
'get_op_quantization_configs' method and use its output to call 'generate_tpc' with your configurations.

Returns:
None (TargetPlatformCapabilities): A TargetPlatformCapabilities object.
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
base_config, mixed_precision_cfg_list, default_config = get_op_quantization_configs()
Expand All @@ -49,10 +49,8 @@ def get_op_quantization_configs() -> Tuple[OpQuantizationConfig, List[OpQuantiza
default configuration for mixed-precision quantization.

Returns:
linear_eight_bits (OpQuantizationConfig),
mixed_precision_cfg_list (List[OpQuantizationConfig]),
eight_bits_default (OpQuantizationConfig)
: An OpQuantizationConfig object and a list of OpQuantizationConfig objects.
Tuple[OpQuantizationConfig, List[OpQuantizationConfig], OpQuantizationConfig]:
An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.

"""

Expand Down Expand Up @@ -150,7 +148,7 @@ def generate_tpc(default_config: OpQuantizationConfig,
name (str): The name of the TargetPlatformCapabilities.

Returns:
generated_tpc (TargetPlatformCapabilities): A TargetPlatformCapabilities object.
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
# Create a QuantizationConfigOptions, which defines a set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def generate_qnnpack_tpc(tpc_version: str) -> TargetPlatformCapabilities:
tpc_version (str): The version of the TPC to use.

Returns:
The TargetPlatformCapabilities object based on the specified version.
TargetPlatformCapabilities: The TargetPlatformCapabilities object based on the specified version.
"""

# Organize all tpc versions into tpcs_dict.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ def get_tpc() -> TargetPlatformCapabilities:
(for tests, experiments, etc.), use this method implementation as a test-case, i.e., override the
'get_op_quantization_configs' method and use its output to call 'generate_tpc' with your configurations.

Returns: A TargetPlatformCapabilities object.
Returns:
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
base_config, mixed_precision_cfg_list, default_config = get_op_quantization_configs()
Expand All @@ -49,7 +50,9 @@ def get_op_quantization_configs() -> Tuple[OpQuantizationConfig, List[OpQuantiza
In addition, creates a default configuration objects list (with 8, 4 and 2 bit quantization) to be used as
default configuration for mixed-precision quantization.

Returns: An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.
Returns:
Tuple[OpQuantizationConfig, List[OpQuantizationConfig], OpQuantizationConfig]:
An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.

"""

Expand Down Expand Up @@ -125,14 +128,15 @@ def generate_tpc(default_config: OpQuantizationConfig,
Generates TargetPlatformCapabilities with default defined Operators Sets, based on the given base configuration and
mixed-precision configurations options list.

Args
default_config: A default OpQuantizationConfig to set as the TP model default configuration.
base_config: An OpQuantizationConfig to set as the TargetPlatformCapabilities base configuration for mixed-precision purposes only.
mixed_precision_cfg_list: A list of OpQuantizationConfig to be used as the TP model mixed-precision
Args:
default_config (OpQuantizationConfig): A default OpQuantizationConfig to set as the TP model default configuration.
base_config (OpQuantizationConfig): An OpQuantizationConfig to set as the TargetPlatformCapabilities base configuration for mixed-precision purposes only.
mixed_precision_cfg_list (List[OpQuantizationConfig]): A list of OpQuantizationConfig to be used as the TP model mixed-precision
quantization configuration options.
name: The name of the TargetPlatformCapabilities.
name (str): The name of the TargetPlatformCapabilities.

Returns: A TargetPlatformCapabilities object.
Returns:
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
# Create a QuantizationConfigOptions, which defines a set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def generate_tflite_tpc(tpc_version: str) -> TargetPlatformCapabilities:
tpc_version (str): The version of the TPC to use.

Returns:
The TargetPlatformCapabilities object based on the specified version.
TargetPlatformCapabilities: The TargetPlatformCapabilities object based on the specified version.
"""

# Organize all tpc versions into tpcs_dict.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ def get_tpc() -> TargetPlatformCapabilities:
(for tests, experiments, etc.), use this method implementation as a test-case, i.e., override the
'get_op_quantization_configs' method and use its output to call 'generate_tpc' with your configurations.

Returns: A TargetPlatformCapabilities object.
Returns:
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
base_config, mixed_precision_cfg_list, default_config = get_op_quantization_configs()
Expand All @@ -48,7 +49,9 @@ def get_op_quantization_configs() -> Tuple[OpQuantizationConfig, List[OpQuantiza
In addition, creates a default configuration objects list (with 8, 4 and 2 bit quantization) to be used as
default configuration for mixed-precision quantization.

Returns: An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.
Returns:
Tuple[OpQuantizationConfig, List[OpQuantizationConfig], OpQuantizationConfig]:
An OpQuantizationConfig config object and a list of OpQuantizationConfig objects.

"""

Expand Down Expand Up @@ -122,14 +125,15 @@ def generate_tpc(default_config: OpQuantizationConfig,
Generates TargetPlatformCapabilities with default defined Operators Sets, based on the given base configuration and
mixed-precision configurations options list.

Args
default_config: A default OpQuantizationConfig to set as the TP model default configuration.
base_config: An OpQuantizationConfig to set as the TargetPlatformCapabilities base configuration for mixed-precision purposes only.
mixed_precision_cfg_list: A list of OpQuantizationConfig to be used as the TP model mixed-precision
Args:
default_config (OpQuantizationConfig): A default OpQuantizationConfig to set as the TP model default configuration.
base_config (OpQuantizationConfig): An OpQuantizationConfig to set as the TargetPlatformCapabilities base configuration for mixed-precision purposes only.
mixed_precision_cfg_list (List[OpQuantizationConfig]): A list of OpQuantizationConfig to be used as the TP model mixed-precision
quantization configuration options.
name: The name of the TargetPlatformCapabilities.
name (str): The name of the TargetPlatformCapabilities.

Returns: A TargetPlatformCapabilities object.
Returns:
TargetPlatformCapabilities: A TargetPlatformCapabilities object.

"""
# Create a QuantizationConfigOptions, which defines a set
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2025 Sony Semiconductor Solutions, Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
from model_compression_toolkit import get_target_platform_capabilities


def test_take():

tpc = get_target_platform_capabilities(tpc_version='6.0', device_type='imx500')
assert 'Take' in [opset.name for opset in tpc.operator_set]

for opset in tpc.operator_set:
if opset.name == 'Take':
for qc in opset.qc_options.quantization_configurations:
assert qc.default_weight_attr_config.enable_weights_quantization == False
assert qc.enable_activation_quantization == False
assert qc.quantization_preserving == True
assert qc.supported_input_activation_n_bits == (8, 16)
Loading
Loading