ultralytics 8.2.76 Autobackend TensorRT/Triton Segment metadata fix (#15185)
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
This commit is contained in:
parent
4d35458e7c
commit
76c271d0d6
3 changed files with 7 additions and 5 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
||||
|
||||
__version__ = "8.2.75"
|
||||
__version__ = "8.2.76"
|
||||
|
||||
import os
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue