Skip to main content

A tool for ONNX model:Shape inference, MACs(FLOPs) counting for each layer, Add any layer's output tensors to model's outputs, Export any weights tensors to numpy file. fp16 conversion included,and any operation you can image with ONNX.

Project description

onnx-tool

A tool for ONNX model:

  • Shape inference.
  • MACs(FLOPs) counting for each layer.
  • Add any layer's output tensors to model's outputs.
  • Export any weights tensors to numpy file. fp16 conversion included.
    ...
    and any operation you can image with ONNX.

Shape inference

how to use: data/Profile.md.


MACs counting for each layer (FLOPs=2*MACs)

how to use: data/Profile.md.


Add any hidden tensors to model's outputs

how to use: data/Profile.md.


Tensor operations

  • Export weight tensors to files
  • Simplify tensor and node names, convert name from a long string to a short string
  • Remove unused tensors, models like vgg19-7.onnx set its static weight tensors as its input tensors
  • Set custom input and output tensors' name and dimension, change model from fixed input to dynamic input
    how to use: data/Tensors.md.

How to install

pip install onnx-tool

OR

pip install --upgrade git+https://github.com/ThanatosShinji/onnx-tool.git

python>=3.6

If pip install onnx-tool failed by onnx's installation, you may try pip install onnx==1.8.1 (a lower version like this) first.
Then pip install onnx-tool again.


Known Issues

  • Loop op is not supported

Results of ONNX Model Zoo and SOTA models

Some models have dynamic input shapes. The MACs varies from input shapes. The input shapes used in these results are writen to data/public/config.py. These onnx models with all tensors' shape can be downloaded: baidu drive(code: p91k) google drive

Model Params(M) MACs(M)
MobileNet v2-1.0-fp32 3.3 300
ResNet50_fp32 25 3868
SqueezeNet 1.0 1.23 351
VGG 19 143.66 19643
AlexNet 60.96 665
GoogleNet 6.99 1606
googlenet_age_adience 5.98 1605
LResNet100E-IR 65.22 12102
BERT-Squad 113.61 22767
BiDAF 18.08 9.87
EfficientNet-Lite4 12.96 1361
Emotion FERPlus 12.95 877
Mask R-CNN R-50-FPN-fp32 46.77 92077
Model Params(M) MACs(M)
rvm_mobilenetv3_fp32.onnx 3.73 4289
yolov4 64.33 33019
ConvNeXt-L 229.79 34872
edgenext_small 5.58 1357
SSD 19.98 216598
RealESRGAN_x4plus.pth 16.69 73551
ShuffleNet-v2-fp32 2.29 146
GPT-2 137.02 1103
T5-encoder 109.62 686
T5-decoder-with-lm-head 162.62 1113
RoBERTa-BASE 124.64 688
Faster R-CNN R-50-FPN-fp32 44.10 46018
FCN ResNet-50 35.29 37056

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

onnx-tool-0.2.2.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onnx_tool-0.2.2-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file onnx-tool-0.2.2.tar.gz.

File metadata

  • Download URL: onnx-tool-0.2.2.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for onnx-tool-0.2.2.tar.gz
Algorithm Hash digest
SHA256 7644860def2ffbe78b705ecdef95c462fef34e244c45b8c28ef0bf187f943502
MD5 504f72f033fb9cc069b5ac3b9ee7208b
BLAKE2b-256 53a5eb19f7c8d9a9c4307d19670eea8367e7d96a3119f59aee4ef0a574e1488b

See more details on using hashes here.

File details

Details for the file onnx_tool-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: onnx_tool-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.4

File hashes

Hashes for onnx_tool-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7761bfc6e25b05f10cbf2d227beca8bdfb977090849492707e7a33a30f8cabd6
MD5 d2d767f8520628c2e16c57479d7f81d5
BLAKE2b-256 f9289a09e2b867a50f9482666ee9b285ab4d5a4f047e862ef02736c2f10e8599

See more details on using hashes here.

Supported by

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