Giter Site home page Giter Site logo

onnx-docker's Introduction

[Notice] We have stopped development of onnx-docker. This repo and related DockerHub won't be updated anymore. To install newer ONNX, you can get it from PyPI or conda-forge. For more installation details, please check the README.md in the onnx repo.

What is this repository for?

To store the docker BUILD scripts of ONNX related docker images.

  • onnx-base: Use published ONNX package from PyPi with minimal dependencies.
  • onnx-dev: Build ONNX from source with minimal dependencies.
  • onnx-ecosystem: Jupyter notebook environment for getting started quickly with ONNX models, ONNX converters, and inference using ONNX Runtime.

Docker Image Workflow

  1. Obtain the Docker images

You can clone this repository and build your desired image.

# onnx-base container
cd onnx-base
docker build . -t onnx-base

# onnx-developer container
cd onnx-dev
docker build . -t onnx-dev

# onnx-ecosystem container
cd onnx-ecosystem
docker build . -t onnx-ecosystem

Alternatively, you can pull a pre-built image from DockerHub.

docker pull onnx/onnx-base
docker pull onnx/onnx-dev
docker pull onnx/onnx-ecosystem
  1. Run the images
docker images

docker run -it onnx-base
docker run -it onnx-dev
docker run -p 8888:8888 onnx-ecosystem

onnx-docker's People

Contributors

askhade avatar bowenbao avatar dependabot[bot] avatar faxu avatar gantman avatar happybrown avatar houseroad avatar jcwchen avatar kmkwon94 avatar linkerzhang avatar navanchauhan avatar prasanthpul avatar pridkett avatar randyshuai avatar rorlich avatar serkansokmen avatar snnn avatar szha avatar vinitra avatar vinitra-zz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

onnx-docker's Issues

Navigation

I am new to docker and onnx. I am converting from Caffe to another format. I read this line:

"Navigate to the converter_scripts folder in the container and edit the appropriate notebook to convert your model to ONNX, or test the accuracy of the conversion using ONNX Runtime."

I do not know how to navigate to the converter scripts. Is there a link or small contribution that could be made explaining this point? There could be more explanation in general to this point.

cant open caffe model in converting caffe model to ONNX

I am using the prebuilt docker to convert a Caffe model to ONNX and i faced this problem when trying with my model or the Alexnet model for testing.

`RuntimeError Traceback (most recent call last)
in
1 # Convert Caffe model to CoreML
----> 2 coreml_model = coremltools.converters.caffe.convert((caffe_model, proto_file))
3
4 # Save CoreML model
5 coreml_model.save(output_coreml_model)

/usr/local/lib/python3.5/dist-packages/coremltools/converters/caffe/_caffe_converter.py in convert(model, image_input_names, is_bgr, red_bias, blue_bias, green_bias, gray_bias, image_scale, class_labels, predicted_feature_name, model_precision)
189 blue_bias,
190 green_bias, gray_bias, image_scale, class_labels,
--> 191 predicted_feature_name)
192 model = MLModel(model_path)
193

/usr/local/lib/python3.5/dist-packages/coremltools/converters/caffe/_caffe_converter.py in _export(filename, model, image_input_names, is_bgr, red_bias, blue_bias, green_bias, gray_bias, image_scale, class_labels, predicted_feature_name)
253 prototxt_path,
254 class_labels,
--> 255 predicted_feature_name)

RuntimeError: Unable to open caffe model provided in the source model path: alex1.caffemodel`

I am :
1- runing ubuntu 16.04 (Virtual box) on windows 10.
2- Tried to rename the caffe model and prototxt to ' model, model1' and ' model.caffemodel, model .ptrototxt' . Also, I already put two copies of each network in Scripts and /scripts /converter-scripts and still doesnt work.

this is how I implemented the code:
`import coremltools
import onnxmltools

Update your input name and path for your caffe model

proto_file = 'alex.prototxt'
input_caffe_path = 'alex1.caffemodel'

Update the output name and path for intermediate coreml model, or leave as is

output_coreml_model = 'model.mlmodel'

Change this path to the output name and path for the onnx model

output_onnx_model = 'model.onnx'

Convert Caffe model to CoreML

coreml_model = coremltools.converters.caffe.convert((input_caffe_path, proto_file))

Save CoreML model

coreml_model.save(output_coreml_model)

Load a Core ML model

coreml_model = coremltools.utils.load_spec(output_coreml_model)

Convert the Core ML model into ONNX

onnx_model = onnxmltools.convert_coreml(coreml_model)

Save as protobuf

onnxmltools.utils.save_model(onnx_model, output_onnx_model)`

i hope you have seen such a thing before and can help me .

Correct model name in inference_demos

Please correct the model name in the jupyter notebook "yoloV3_object_detection_onnxruntime_inference" inside jupyter demos:
The model file is named: yolov3.onnx and not model.onnx

Bug in onnx-docker/onnx-ecosystem/converter_scripts/lightgbm_onnx.ipynb

When I execute the playbook, it raises ValueError:

Initial types are required. See usage of convert(...) in onnxmltools.convert.lightgbm.convert for details

My versions:
onnxmltools==1.6.0
The reason may be the old API compatibility issue. I notice there are many changes in latest onnxmltools version.

Report typo.

Hello,

Report typo

image

I think it should be changed to accessibility.

thank you.

Wrong python3 package specification in onnx-ecosystem Dockerfile

Problem description:

  • The python3 package name argument to apt contains a typo: python 3.6 - notice the space:

    python 3.6 python3-pip \

  • As a result, python 2.7 is installed. Python 3 (3.5) is being pulled in by python3-dev.

  • Worse, 3.6 is being interpreted as a wildcard matching 1301 packages, most likely unintended and causing image bloat.

Proposed fix:

  • Updating the base image to ubuntu:18.04, the latest LTS, would solve the issue, since python 3.6 is the default python version (currently 3.6.9-1~18.04) - assuming Python 3.6 is required. Ubuntu 16.04 provides only Python 3.5.
  • For being explicit about 3.6, python3-dev could be replaced with python3.6-dev, too.

Error while building docker onnx/onnx-ecosystem

Trying to build docker according to docs with command docker build . -t onnx/onnx-ecosystem got following error:
Downloading skl2onnx-1.4.4.2.tar.gz (522 kB)

ERROR: Command errored out with exit status 1:
  command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jq5wgppw/skl2onnx_663c886148fb4540809230a21e152fac/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jq5wgppw/skl2onnx_663c886148fb4540809230a21e152fac/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-yqb5_6fq
      cwd: /tmp/pip-install-jq5wgppw/skl2onnx_663c886148fb4540809230a21e152fac/
 Complete output (5 lines):
 Traceback (most recent call last):
   File "<string>", line 1, in <module>
   File "/tmp/pip-install-jq5wgppw/skl2onnx_663c886148fb4540809230a21e152fac/setup.py", line 35, in <module>
     import pypandoc
 ModuleNotFoundError: No module named 'pypandoc'
 ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Could Kashgari model which inherits from Keras be converted to onnx model?

import onnxmltools
from keras.models import load_model
import kashgari
input_keras_model = 'E:\KG\kashgari/train\gonghang_2020_12_10'

Change this path to the output name and path for the ONNX model

output_onnx_model = 'kashgari_model.onnx'

Load your Keras model

loaded_model = kashgari.utils.load_model(input_keras_model)

onnx_model = onnxmltools.convert_keras(loaded_model.tf_model)

Save as protobuf

onnxmltools.utils.save_model(onnx_model, output_onnx_model)

This is a bug as follows:
ValueError: Input 0 of node TFNodes50/Embedding-Token/embedding_lookup was passed float from TFNodes50/Embedding-Token/embeddings:0 incompatible with expected resource.

Process finished with exit code 1

libcaffeconverter import error

HI! I watched the tutorial, on it installed windows and one coremltools/onnxmltools. However, when you run the example, it take me error:

from ... import libcaffeconverter
ImportError: cannot import name 'libcaffeconverter'

Torchvision can't import PILLOW VERSION

ImportError Traceback (most recent call last)
in
2 from torch.autograd import Variable
3 import torch.onnx
----> 4 import torchvision

/usr/local/lib/python3.6/dist-packages/torchvision/init.py in
1 from torchvision import models
----> 2 from torchvision import datasets
3 from torchvision import transforms
4 from torchvision import utils
5

/usr/local/lib/python3.6/dist-packages/torchvision/datasets/init.py in
7 from .svhn import SVHN
8 from .phototour import PhotoTour
----> 9 from .fakedata import FakeData
10 from .semeion import SEMEION
11 from .omniglot import Omniglot

/usr/local/lib/python3.6/dist-packages/torchvision/datasets/fakedata.py in
1 import torch
2 import torch.utils.data as data
----> 3 from .. import transforms
4
5

/usr/local/lib/python3.6/dist-packages/torchvision/transforms/init.py in
----> 1 from .transforms import *

/usr/local/lib/python3.6/dist-packages/torchvision/transforms/transforms.py in
14 import warnings
15
---> 16 from . import functional as F
17
18 all = ["Compose", "ToTensor", "ToPILImage", "Normalize", "Resize", "Scale", "CenterCrop", "Pad",

/usr/local/lib/python3.6/dist-packages/torchvision/transforms/functional.py in
3 import math
4 import random
----> 5 from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION
6 try:
7 import accimage

ImportError: cannot import name 'PILLOW_VERSION'

pytorch to onnx notebook fails on imports

ImportError                               Traceback (most recent call last)
<ipython-input-1-cc8851f7a7c0> in <module>
      2 from torch.autograd import Variable
      3 import torch.onnx
----> 4 import torchvision

/usr/local/lib/python3.6/dist-packages/torchvision/__init__.py in <module>
      1 from torchvision import models
----> 2 from torchvision import datasets
      3 from torchvision import transforms
      4 from torchvision import utils
      5 

/usr/local/lib/python3.6/dist-packages/torchvision/datasets/__init__.py in <module>
      7 from .svhn import SVHN
      8 from .phototour import PhotoTour
----> 9 from .fakedata import FakeData
     10 from .semeion import SEMEION
     11 from .omniglot import Omniglot

/usr/local/lib/python3.6/dist-packages/torchvision/datasets/fakedata.py in <module>
      1 import torch
      2 import torch.utils.data as data
----> 3 from .. import transforms
      4 
      5 

/usr/local/lib/python3.6/dist-packages/torchvision/transforms/__init__.py in <module>
----> 1 from .transforms import *

/usr/local/lib/python3.6/dist-packages/torchvision/transforms/transforms.py in <module>
     14 import warnings
     15 
---> 16 from . import functional as F
     17 
     18 __all__ = ["Compose", "ToTensor", "ToPILImage", "Normalize", "Resize", "Scale", "CenterCrop", "Pad",

/usr/local/lib/python3.6/dist-packages/torchvision/transforms/functional.py in <module>
      3 import math
      4 import random
----> 5 from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION
      6 try:
      7     import accimage

ImportError: cannot import name 'PILLOW_VERSION'``

lightgbm prediction varies very slightly as other model don't?

I have a lightgbm classifier,

the model predict_proba returns

{"0": "0.0003362529475889886", "1": "0.999663747052411"}

with ONNX model

#saving model
initial_type = [('float_input', FloatTensorType([1, input_shape]))]
onnx_model = convert_lightgbm(lgbmmodel, initial_types=initial_type) 
with open('lgbmONNX.onnx', "wb") as f: f.write(onnx_model.SerializeToString())
content = onnx_model.SerializeToString()
sess = onnxruntime.InferenceSession(content)
input_name = sess.get_inputs()[0].name
label_name = sess.get_outputs()[0].name
output_proba_name = sess.get_outputs()[1].name

prediction on that

#prediction
ONNXContent = lgbmONNX.SerializeToString()
ONNXSess = onnxruntime.InferenceSession(ONNXContent)
OnnxPrediction = ONNXSess.run([label_name, output_proba_name], {input_name: PayLoad}) 
OnnxPrediction
[array([1], dtype=int64), [{0: 0.0003362894058227539, 1: 0.9996637105941772}]]

not concerned about the decimal variation, just to confirm the steps are right, Thanks

ImportError: cannot import name 'libcaffeconverter' from 'coremltools'

Hi I'm using the https://github.com/onnx/onnx-docker/blob/master/onnx-ecosystem/converter_scripts/caffe_coreml_onnx.ipynb tutorial.
But, when I run it I get the ImportError. It's because the coremltools/converters/_cafe_converter.convert() method tries to import libcaffeconverter from coremltools but the coremltools library directory doesn't have libcaffeconverter.

Someone else had raised the same issue but it wasn't really solved and was closed.

Cannot start container

I ran the following command:
docker run --rm -it --name onnx --gpus all onnx/onnx-ecosystem /bin/bash
which complainted:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overlay2/97a44c71fcaa06bb83388796dbcd0c03943a442693da8a6acf0dfd1f3889e9e7/merged/usr/bin/nvidia-smi: file exists\\\\n\\\"\"": unknown.

NVIDIA/nvidia-docker#825 saids that the reason is that nvidia driver e.g. nvidia-smi is in the image.
I have installed nvidia driver on the host.
Is it intended to not install nvidia driver on the host when using onnx-runtime container?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.