Skip to content

Commit 83f6441

Browse files
author
Thiago Crepaldi
committed
Fix use of ONNX optimizer by Caffe2 backend
1 parent 3471b0e commit 83f6441

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

caffe2/python/onnx/backend.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,13 @@ def optimize_onnx(input, init=False, predict=False):
651651
passes.append('split_init')
652652
if predict:
653653
passes.append('split_predict')
654-
out = onnx.optimizer.optimize(input, passes)
654+
try:
655+
out = onnx.optimizer.optimize(input, passes)
656+
except AttributeError:
657+
warnings.warn("OptimizerWarning: optimizer module not found in ONNX version {}".format(onnx.__version__))
658+
# ONNX does no ship onnx.optimizer since version 1.9+
659+
import onnxoptimizer
660+
out = onnxoptimizer.optimize(input, passes)
655661
return out
656662

657663
@classmethod
@@ -881,8 +887,9 @@ def _onnx_model_to_caffe2_net(cls, onnx_model, device, opset_version, include_in
881887
try:
882888
init_model = cls.optimize_onnx(onnx_model, init=True)
883889
pred_model = cls.optimize_onnx(onnx_model, predict=True)
884-
except AttributeError:
885-
warnings.warn("OptimizerWarning: optimizer module not found in ONNX version {}".format(onnx.__version__))
890+
except ModuleNotFoundError:
891+
warnings.warn("OptimizerWarning: onnxoptimizer module not installed. "
892+
"init_model and pred_model models will not be splitted, which can cause a runtime error")
886893
init_model = onnx_model
887894
pred_model = onnx_model
888895

0 commit comments

Comments
 (0)