onnx2keras
ONNX to Keras deep neural network converter.
Requirements
Tensorflow 2.0 (also tested with 1.13).
API
onnx_to_keras(onnx_model, input_names, input_shapes=None, name_policy=None, verbose=True, change_ordering=False)
onnx_model: ONNX model to convert
input_names: list with graph input names
input_shapes: override input shapes (experimental)
name_policy: ['renumerate', 'short', 'default'] override layer names (experimental)
verbose: detailed output
change_ordering change ordering to HWC (experimental)
Return: Keras model
Getting started
ONNX model
import onnx
from onnx2keras import onnx_to_keras
# Load ONNX model
onnx_model = onnx.load('resnet18.onnx')
# Call the converter (input - is the main model input name, can be different for your model)
k_model = onnx_to_keras(onnx_model, ['input'])
Keras model will be stored to the k_model variable. So simple, isn't it?
PyTorch model
Using ONNX as intermediate format, you can convert PyTorch model as well.
import numpy as np
import torch
import onnx
from torchvision.models.resnet import resnet18
from onnx2keras import onnx_to_keras, check_torch_keras_error
if __name__ == '__main__':
model = resnet18()
model.eval()
input_np = np.random.uniform(0, 1, (1, 3, 224, 224))
input_var = torch.FloatTensor(input_np)
output = model(input_var)
torch.onnx.export(model, (input_var), "resnet18.onnx",
verbose=True,
input_names=['input'],
output_names=['output']
)
onnx_model = onnx.load('resnet18.onnx')
k_model = onnx_to_keras(onnx_model, ['input'])
error = check_torch_keras_error(model, k_model, input_np)
print('Error: {0}'.format(error)) # 1e-6 :)
License
This software is covered by MIT License.
Release files for onnx2keras 0.0.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| onnx2keras-0.0.15.tar.gz | 15.0 kB | Details |
Release files / onnx2keras-0.0.15.tar.gz
| Download URL | onnx2keras-0.0.15.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebcb5a1c90cb72aeff7627a41917245ef4745a26b3cfeecb179c2a4216e8be6a
|
|
BLAKE2b-256 checksum How to use checksums |
4419946feab52ea8d50a2efbf5a738054c88abcec2b4c4e249087d242d62bdc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.19.9 CPython/3.6.6
|