From 5e99506c0fdfa90f1abddf4b979635eb948dc7a1 Mon Sep 17 00:00:00 2001 From: Nazmi Date: Fri, 19 Apr 2024 02:27:03 +0100 Subject: [PATCH] Allow TensorRT inference without metadata (#10152) Co-authored-by: Glenn Jocher --- ultralytics/nn/autobackend.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ultralytics/nn/autobackend.py b/ultralytics/nn/autobackend.py index 3cea3111..bd07d1d4 100644 --- a/ultralytics/nn/autobackend.py +++ b/ultralytics/nn/autobackend.py @@ -234,8 +234,11 @@ class AutoBackend(nn.Module): logger = trt.Logger(trt.Logger.INFO) # Read file with open(w, "rb") as f, trt.Runtime(logger) as runtime: - meta_len = int.from_bytes(f.read(4), byteorder="little") # read metadata length - metadata = json.loads(f.read(meta_len).decode("utf-8")) # read metadata + try: + meta_len = int.from_bytes(f.read(4), byteorder="little") # read metadata length + metadata = json.loads(f.read(meta_len).decode("utf-8")) # read metadata + except UnicodeDecodeError: + f.seek(0) # engine file may lack embedded Ultralytics metadata model = runtime.deserialize_cuda_engine(f.read()) # read engine # Model context