Skip to content

Commit b2c31e4

Browse files
committed
fixed protobuf error where for newer protobuf for model size > 2gib , it fails to serialize the model.
Signed-off-by: Hrishith Thadicherla <hthadicherla@nvidia.com>
1 parent 00fa5bd commit b2c31e4

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

modelopt/onnx/utils.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from collections import defaultdict
2424
from typing import Any
2525

26+
import google.protobuf.message
2627
import numpy as np
2728
import onnx
2829
import onnx_graphsurgeon as gs
@@ -650,13 +651,11 @@ def save_onnx(model: onnx.ModelProto, onnx_path: str, save_as_external_data: boo
650651
f"Model size: {model_size} bytes, using external data: {save_as_external_data}"
651652
)
652653

653-
except ValueError as e:
654-
if "Message onnx.ModelProto exceeds maximum protobuf size of 2GB" in str(e):
655-
logger.warning("Model exceeds 2GB limit, switching to external data storage")
656-
save_as_external_data = True
657-
else:
658-
logger.error(f"Failed to serialize model: {e!s}")
659-
raise
654+
except (ValueError, google.protobuf.message.EncodeError) as e:
655+
logger.warning(
656+
"Model exceeds 2GB limit, switching to external data storage. Error message: [%s]", e
657+
)
658+
save_as_external_data = True
660659

661660
# Set ir_version to 10, remove it once ORT supports ir_version 11
662661
model.ir_version = 10

0 commit comments

Comments
 (0)