Skip to main content

A very simple tool that compresses the overall size of the ONNX model by aggregating duplicate constant values as much as possible. Simple Constant value Shrink for ONNX.

Project description

scs4onnx

A very simple tool that compresses the overall size of the ONNX model by aggregating duplicate constant values as much as possible. Simple Constant value Shrink for ONNX.

Downloads GitHub PyPI

Key concept

  1. If the same constant tensor is found by scanning the entire graph for Constant values, it is aggregated into a single constant tensor.
  2. Ignore scalar values.
  3. Ignore variables.

1. Setup

### option
$ echo export PATH="~/.local/bin:$PATH" >> ~/.bashrc \
&& source ~/.bashrc

### run
$ pip install -U onnx \
&& python3 -m pip install -U onnx_graphsurgeon --index-url https://pypi.ngc.nvidia.com \
&& pip install -U scs4onnx

2. Usage

$ scs4onnx -h

usage: scs4onnx [-h] onnx_file_path {shrink,npy}

positional arguments:
  onnx_file_path  Input onnx file path.
  {shrink,npy}    Constant Value Compression Mode.
  
                  shrink: Share constant values inside the model as much as possible.
                          The model size is slightly larger because some shared constant values
                          remain inside the model, but performance is maximized.
                  npy:    Outputs constant values used repeatedly in the model to an external
                          file .npy. Instead of the smallest model body size, the file loading
                          overhead is greater.
                  Default: shrink

optional arguments:
  -h, --help      show this help message and exit

3. Execution

$ scs4onnx input.onnx shrink

image

4. Sample

4-1. shrink mode sample

  • 297.8MB -> 67.4MB

    image image

4-2. npy mode sample

  • 297.8MB -> 21.3MB

    image image

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scs4onnx-1.0.1.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

scs4onnx-1.0.1-py3-none-any.whl (5.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page