Skip to main content

Convert a Chainer model into ONNX

Project description

ONNX-Chainer

PyPI GitHub license Build Status codecov Documentation Status

This is an add-on package for ONNX support by Chainer.

Tested environment

  • Python 3.5.5, 3.6.7, 3.7.2
  • ONNX 1.4.1, 1.5.0
    • opset version 7, 8, 9, 10
  • Chainer stable, preview
  • ONNX-Runtime 0.4.0

(You can still specify all opset versions <= 9, but please noted that opset versions <= 6 are not tested)

Installation

pip install onnx-chainer

Run Test

1. Install test modules

$ pip install onnx-chainer[test-cpu]

Or, on GPU environment

$ pip install cupy  # or cupy-cudaXX is useful
$ pip install onnx-chainer[test-gpu]

2. Run tests

$ pytest -m "not gpu"

Or, on GPU environment

$ pytest

Quick Start

First, install ChainerCV to get the pre-trained models.

import numpy as np

import chainer
import chainercv.links as C
import onnx_chainer

model = C.VGG16(pretrained_model='imagenet')

# Pseudo input
x = np.zeros((1, 3, 224, 224), dtype=np.float32)

onnx_chainer.export(model, x, filename='vgg16.onnx')

Supported Functions

Currently 84 Chainer Functions are supported to export in ONNX format.

Activation

  • ClippedReLU
  • ELU
  • HardSigmoid
  • LeakyReLU
  • LogSoftmax
  • PReLUFunction
  • ReLU
  • Selu
  • Sigmoid
  • Softmax
  • Softplus
  • Tanh

Array

  • Cast
  • Concat
  • Copy
  • Depth2Space
  • Dstack
  • ExpandDims
  • GetItem
  • Hstack
  • Pad 12
  • Repeat
  • Reshape
  • ResizeImages
  • Separate
  • Shape 5
  • Space2Depth
  • SplitAxis
  • Squeeze
  • Stack
  • Swapaxes
  • Tile
  • Transpose
  • Vstack
  • Where

Connection

  • Convolution2DFunction
  • ConvolutionND
  • Deconvolution2DFunction
  • DeconvolutionND
  • EmbedIDFunction 3
  • LinearFunction

Loss

  • SoftmaxCrossEntropy

Math

  • Absolute
  • Add
  • AddConstant
  • ArcCos
  • ArcSin
  • ArcTan
  • ArgMax
  • ArgMin
  • BroadcastTo
  • Cos
  • Cosh
  • Clip
  • Div
  • DivFromConstant
  • Exp
  • Identity
  • LinearInterpolate
  • Log
  • LogSumExp
  • MatMul
  • Max
  • Maximum
  • Mean
  • Min
  • Minimum
  • Mul
  • MulConstant
  • Neg
  • PowConstVar
  • PowVarConst
  • PowVarVar
  • Prod
  • RsqrtGPU
  • Sin
  • Sinh
  • Sqrt
  • Square
  • Sub
  • SubFromConstant
  • Sum
  • Tan

Noise

  • Dropout 4

Normalization

  • BatchNormalization
  • FixedBatchNormalization
  • LocalResponseNormalization
  • NormalizeL2

Pooling

  • AveragePooling2D
  • AveragePoolingND
  • MaxPooling2D
  • MaxPoolingND
  • ROIPooling2D
  • Unpooling2D

Contribution

Any contribution to ONNX-Chainer is welcome!


1: mode should be either 'constant', 'reflect', or 'edge'
2: ONNX doesn't support multiple constant values for Pad operation
3: Current ONNX doesn't support ignore_label for EmbedID
4: In test mode, all dropout layers aren't included in the exported file
5: Chainer doesn't support Shape function

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-chainer-1.5.1a2.tar.gz (30.6 kB view details)

Uploaded Source

File details

Details for the file onnx-chainer-1.5.1a2.tar.gz.

File metadata

  • Download URL: onnx-chainer-1.5.1a2.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.1

File hashes

Hashes for onnx-chainer-1.5.1a2.tar.gz
Algorithm Hash digest
SHA256 4ba6689c4ec232ee17e837aceb12b593ef3a708bf1459617bad37c572c1e922e
MD5 a0dcf44dedfb5a675dca2220209bb2fb
BLAKE2b-256 082df9c073bdb9a4a61b4afbc76d8953d719c09937b92c273f5ea47ac16a9800

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