Automatic Compression

automatic_compression(self, input_model_path: str, output_dir: str, input_shapes: List[Dict[str, int]], framework: Framework = Framework.PYTORCH, compression_ratio: float = 0.5) CompressorMetadata

Compress a model automatically based on the given compression ratio.

Parameters:
  • input_model_path (str) – The file path where the model is located.

  • output_dir (str) – The local path to save the compressed model.

  • input_shapes (List[Dict[str, int]]) – Input shapes of the model.

  • framework (Framework, optional) – The framework of the model.

  • compression_ratio (float, optional) – The compression ratio for automatic compression. Defaults to 0.5.

Raises:

e – If an error occurs while performing automatic compression.

Returns:

Compress metadata.

Return type:

CompressorMetadata

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.

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,
)