Skip to content

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

@luyaor

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions