onnx-tensorflow
onnx-tensorflow copied to clipboard
KeyError: 'ai.onnx.ml' while converting lightgbm model to tensorflow
Exception*
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-52-1f2c0e94cbb7> in <module>
1 warnings.filterwarnings('ignore') # Ignore all the warning messages in this tutorial
2
----> 3 tf_rep = prepare(onnx_model) # Import the ONNX model to Tensorflow
/opt/conda/lib/python3.7/site-packages/onnx_tf/backend.py in prepare(cls, model, device, strict, **kwargs)
53 super(TensorflowBackend, cls).prepare(model, device, **kwargs)
54
---> 55 return cls.onnx_model_to_tensorflow_rep(model, strict)
56
57 @classmethod
/opt/conda/lib/python3.7/site-packages/onnx_tf/backend.py in onnx_model_to_tensorflow_rep(cls, model, strict)
73 else:
74 opset_import = model.opset_import
---> 75 return cls._onnx_graph_to_tensorflow_rep(model.graph, opset_import, strict)
76
77 @classmethod
/opt/conda/lib/python3.7/site-packages/onnx_tf/backend.py in _onnx_graph_to_tensorflow_rep(cls, graph_def, opset, strict)
127 onnx_node = OnnxNode(node)
128 output_ops = cls._onnx_node_to_tensorflow_op(
--> 129 onnx_node, tensor_dict, handlers, opset=opset, strict=strict)
130 curr_node_output_map = dict(zip(onnx_node.outputs, output_ops))
131 tensor_dict.update(curr_node_output_map)
/opt/conda/lib/python3.7/site-packages/onnx_tf/backend.py in _onnx_node_to_tensorflow_op(cls, node, tensor_dict, handlers, opset, strict)
220 """
221 handlers = handlers or cls._get_handlers(opset)
--> 222 handler = handlers[node.domain].get(node.op_type, None)
223 if handler:
224 return handler.handle(node, tensor_dict=tensor_dict, strict=strict)
KeyError: 'ai.onnx.ml'
To Reproduce
!pip install onnxmltools onnx-tf lightgbm
from lightgbm import LGBMClassifier, LGBMRegressor
import numpy
import tensorflow
import onnxmltools
from onnxmltools.convert.common.data_types import FloatTensorType
import onnx
from onnx_tf.backend import prepare
model = LGBMRegressor(n_estimators=1, min_child_samples=1)
X = [[0, 1], [1, 1], [2, 0]]
X = numpy.array(X, dtype=numpy.float32)
y = numpy.array([100, -10, 50], dtype=numpy.float32)
model.fit(X, y)
onnx_model = onnxmltools.convert_lightgbm(model, initial_types=[('input', FloatTensorType([1, 2]))])
tf_rep = prepare(onnx_model) # Import the ONNX model to Tensorflow
Python, ONNX, ONNX-TF, Tensorflow version
This section can be obtained by running get_version.py
from util folder.
- Python version: 3.7.3
- ONNX version: 1.5.0
- ONNX-TF version: 1.3.0
- Tensorflow version: 1.13.1