Automatic Compression¶
Description¶
netspresso.compressor.v2.compressor.CompressorV2.automatic_compression(input_model_path, output_dir, input_shapes, framework=Framework.PYTORCH, compression_ratio=0.5)
¶
Compress a model automatically based on the given compression ratio.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
input_model_path |
str
|
The file path where the model is located. |
required |
output_dir |
str
|
The local path to save the compressed model. |
required |
input_shapes |
List[Dict[str, int]]
|
Input shapes of the model. |
required |
framework |
Framework
|
The framework of the model. |
PYTORCH
|
compression_ratio |
float
|
The compression ratio for automatic compression. Defaults to 0.5. |
0.5
|
Raises:
Type | Description |
---|---|
e
|
If an error occurs while performing automatic compression. |
Returns:
Name | Type | Description |
---|---|---|
CompressorMetadata |
CompressorMetadata
|
Compress metadata. |
Details of Parameters¶
Compression Ratio¶
Note
- As the compression ratio increases, you can get more lighter and faster compressed models, but with greater lost of accuracy.
- Therefore, it is necessary to find an appropriate ratio for your requirements. It might require a few trials and errors.
- The range of available values is as follows.
\[0 < \text{ratio} < 1\]
Example¶
from netspresso import NetsPresso
netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD")
compressor = netspresso.compressor_v2()
compressed_model = compressor.automatic_compression(
input_shapes=[{"batch": 1, "channel": 3, "dimension": [224, 224]}],
input_model_path="./examples/sample_models/graphmodule.pt",
output_dir="./outputs/compressed/pytorch_automatic_compression_1",
compression_ratio=0.5,
)