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.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

scs4onnx-1.0.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file scs4onnx-1.0.0.tar.gz.

File metadata

  • Download URL: scs4onnx-1.0.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for scs4onnx-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a716db317dbb6be0aec8fd52421e44a1b693f8f097e44a3c3d8d1f3a7d108cc8
MD5 0e754e8bff8c33da8acb13aec61baf6d
BLAKE2b-256 9102f2407133bf83c994230740ed22bd12f6403f89e0cc232263d99ad1fec9ef

See more details on using hashes here.

File details

Details for the file scs4onnx-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: scs4onnx-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.2

File hashes

Hashes for scs4onnx-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c2bf0e26b790f43623c3281a49c6ba31dd05b13ac1920907fb9cf72130737a4
MD5 beca9cb35031aeecd3179d421bea9193
BLAKE2b-256 86af2c8848553b1155a11f8aa00fbe208619057b61b0b9593341e0a6a3db5759

See more details on using hashes here.

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