onnx / models

A collection of pre-trained, state-of-the-art models in the ONNX format
http://onnx.ai/models/
Apache License 2.0
7.73k stars 1.38k forks source link

Deprecated old models may need to be updated #439

Open YuhengHuang42 opened 3 years ago

YuhengHuang42 commented 3 years ago

Bug Report

Which model does this pertain to?

A bunch of models can't be run by ONNX Runtime. Some ops are not supported by ONNX runtime for now.

As this repo is strongly connected with ONNX, I think it may be necessary to upgrade the models here.

Describe the bug

All error begin with:

[ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node XXXX

I will list the models and their corresponding error, with format:

error:
model:
# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Block386:Div(1)
# model: models/vision/classification/mnist/model/mnist-1.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Gemm(6)
# model: models/vision/classification/rcnn_ilsvrc13/model/rcnn-ilsvrc13-6.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Relu(1)
# models/vision/classification/squeezenet/model/squeezenet1.0-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node BatchNormalization(1)
# models/vision/classification/resnet/model/resnet50-caffe2-v1-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node BatchNormalization(6)
# models/vision/classification/resnet/model/resnet50-caffe2-v1-6.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Relu(1)
# models/vision/classification/vgg/model/vgg19-caffe2-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Gemm(6)
# models/vision/classification/vgg/model/vgg19-caffe2-6.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node BatchNormalization(1)
# models/vision/classification/densenet-121/model/densenet-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node BatchNormalization(6)
# models/vision/classification/shufflenet/model/shufflenet-8.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node BatchNormalization(1)
# models/vision/classification/shufflenet/model/shufflenet-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Relu(1)
# models/vision/classification/alexnet/model/bvlcalexnet-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Gemm(6)
# models/vision/classification/alexnet/model/bvlcalexnet-6.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Relu(1)
# models/vision/classification/caffenet/model/caffenet-6.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Gemm(6)
# models/vision/classification/caffenet/model/caffenet-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Gemm(6)
# models/vision/classification/zfnet-512/model/zfnet512-6.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Relu(1)
# models/vision/classification/zfnet-512/model/zfnet512-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node AveragePool(1)
# models/vision/classification/inception_and_googlenet/inception_v1/model/inception-v1-6.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node Relu(1)
# models/vision/classification/inception_and_googlenet/inception_v1/model/inception-v1-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node BatchNormalization(1)
# models/vision/classification/inception_and_googlenet/inception_v2/model/inception-v2-3.onnx

# [ONNXRuntimeError] : 9 : NOT_IMPLEMENTED : Could not find an implementation for the node BatchNormalization(6)
# models/vision/classification/inception_and_googlenet/inception_v2/model/inception-v2-6.onnx

Reproduction instructions

Use model path mentioned above

import onnxruntime as rt
sess = rt.InferenceSession(model_path)

System Information

OS Platform and Distribution : Linux Ubuntu 20.04 ONNX version: 1.8.1 Backend/Runtime version: onnxruntime 1.7.0

wenbingl commented 3 years ago

@YuhengHuang42 , Thanks for reporting the issue. These model most are legal while ONNXRuntime doesn't support some old opset for sake of its binary size. So actually it's ONNXRuntime issue.

Can you help me understand why these old model bother you, misleading or something else? Then we can have a solution

YuhengHuang42 commented 3 years ago

@YuhengHuang42 , Thanks for reporting the issue. These model most are legal while ONNXRuntime doesn't support some old opset for sake of its binary size. So actually it's ONNXRuntime issue.

Can you help me understand why these old model bother you, misleading or something else? Then we can have a solution

@wenbingl, Thanks for your quick reply!

From your description, I think change the ONNX runtime to some old version might solve my problem. Thanks!

And the original idea for reporting this is: models in Model Zoo should synchronize with the latest version of ONNX, just like models in torchvision. However, I understand this may take effort to finish and yes maybe few of users would care about these old models. So please feel free to ignore this problem if you are busy.