Skip to content

[Bug] [Frontend] Matrix C of Gemm operator in ONNX could be optional #7263

Description

@luyaor

Description

When compiling following model with TVM, it will error on parsing. I think it is because matrix C for inputs could be optional by ONNX specification. Check here: https://github.com/onnx/onnx/blob/master/docs/Operators.md#gemm

The model(with ONNX as frontend) with error is as follows, check bug.onnx in bug7.zip.

Error Log

Traceback (most recent call last):
  File "check.py", line 11, in <module>
    mod, params = relay.frontend.from_onnx(onnx_model, {})
  File "/Users/luyaor/Documents/tvm/python/tvm/relay/frontend/onnx.py", line 2806, in from_onnx
    mod, params = g.from_onnx(graph, opset, freeze_params)
  File "/Users/luyaor/Documents/tvm/python/tvm/relay/frontend/onnx.py", line 2613, in from_onnx
    op = self._convert_operator(op_name, inputs, attr, opset)
  File "/Users/luyaor/Documents/tvm/python/tvm/relay/frontend/onnx.py", line 2721, in _convert_operator
    sym = convert_map[op_name](inputs, attrs, self._params)
  File "/Users/luyaor/Documents/tvm/python/tvm/relay/frontend/onnx.py", line 510, in _impl_v1
    assert len(inputs) == 3, "Gemm op take 3 inputs, {} given".format(len(inputs))
AssertionError: Gemm op take 3 inputs, 2 given

How to reproduce

Environment

Python3, with tvm, onnx

tvm version: c31e338 Wed Dec 9 14:52:58 2020 +0900

  1. Download bug7.zip
  2. Run python check.py.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions