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 82 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
  • PowVarConst
  • 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.1a1.tar.gz (30.3 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: onnx-chainer-1.5.1a1.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.1

File hashes

Hashes for onnx-chainer-1.5.1a1.tar.gz
Algorithm Hash digest
SHA256 bf764107f9262955e06fc2beb4129b4e5415a4140996da3be67d8fd4c22f60bc
MD5 f8fa890c0b56e82e219ddd1853b5ab23
BLAKE2b-256 ee7945dc125e3031597319fc3ed6fa1f91adb2fb04779a6c4cd50313d3fa2659

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