From 76c271d0d6af7a45715a9446d32374e47974cc25 Mon Sep 17 00:00:00 2001 From: Mohammed Yasin <32206511+Y-T-G@users.noreply.github.com> Date: Mon, 12 Aug 2024 02:45:04 +0800 Subject: [PATCH] `ultralytics 8.2.76` Autobackend TensorRT/Triton Segment metadata fix (#15185) Co-authored-by: Glenn Jocher --- tests/test_python.py | 2 ++ ultralytics/__init__.py | 2 +- ultralytics/nn/autobackend.py | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/test_python.py b/tests/test_python.py index 062716dde..7af4c9f40 100644 --- a/tests/test_python.py +++ b/tests/test_python.py @@ -26,6 +26,7 @@ from ultralytics.utils import ( WEIGHTS_DIR, WINDOWS, checks, + is_github_action_running, ) from ultralytics.utils.downloads import download from ultralytics.utils.torch_utils import TORCH_1_9 @@ -131,6 +132,7 @@ def test_predict_grey_and_4ch(): @pytest.mark.slow @pytest.mark.skipif(not ONLINE, reason="environment is offline") +@pytest.mark.skipif(is_github_action_running(), reason="No auth https://github.com/JuanBindez/pytubefix/issues/166") def test_youtube(): """Test YOLO model on a YouTube video stream, handling potential network-related errors.""" model = YOLO(MODEL) diff --git a/ultralytics/__init__.py b/ultralytics/__init__.py index 39b0aa64d..51f34eb25 100644 --- a/ultralytics/__init__.py +++ b/ultralytics/__init__.py @@ -1,6 +1,6 @@ # Ultralytics YOLO 🚀, AGPL-3.0 license -__version__ = "8.2.75" +__version__ = "8.2.76" import os diff --git a/ultralytics/nn/autobackend.py b/ultralytics/nn/autobackend.py index cde35a577..6a1bfc4ab 100644 --- a/ultralytics/nn/autobackend.py +++ b/ultralytics/nn/autobackend.py @@ -566,10 +566,6 @@ class AutoBackend(nn.Module): y = [y] elif self.pb: # GraphDef y = self.frozen_func(x=self.tf.constant(im)) - if (self.task == "segment" or len(y) == 2) and len(self.names) == 999: # segments and names not defined - ip, ib = (0, 1) if len(y[0].shape) == 4 else (1, 0) # index of protos, boxes - nc = y[ib].shape[1] - y[ip].shape[3] - 4 # y = (1, 160, 160, 32), (1, 116, 8400) - self.names = {i: f"class{i}" for i in range(nc)} else: # Lite or Edge TPU details = self.input_details[0] is_int = details["dtype"] in {np.int8, np.int16} # is TFLite quantized int8 or int16 model @@ -607,6 +603,10 @@ class AutoBackend(nn.Module): # for x in y: # print(type(x), len(x)) if isinstance(x, (list, tuple)) else print(type(x), x.shape) # debug shapes if isinstance(y, (list, tuple)): + if len(self.names) == 999 and (self.task == "segment" or len(y) == 2): # segments and names not defined + ip, ib = (0, 1) if len(y[0].shape) == 4 else (1, 0) # index of protos, boxes + nc = y[ib].shape[1] - y[ip].shape[3] - 4 # y = (1, 160, 160, 32), (1, 116, 8400) + self.names = {i: f"class{i}" for i in range(nc)} return self.from_numpy(y[0]) if len(y) == 1 else [self.from_numpy(x) for x in y] else: return self.from_numpy(y)