`ultralytics 8.2.86` Windows `torch==2.4.0` patch (#15942)

Signed-off-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
action-recog
Glenn Jocher 6 months ago committed by fcakyon
parent c500545c40
commit 90a1062b7d
  1. 2
      .github/workflows/ci.yaml
  2. 1
      pyproject.toml
  3. 2
      tests/test_python.py
  4. 2
      ultralytics/__init__.py
  5. 11
      ultralytics/utils/checks.py
  6. 7
      ultralytics/utils/torch_utils.py

@ -156,7 +156,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-14]
os: [ubuntu-latest, macos-14, windows-latest]
python-version: ["3.11"]
torch: [latest]
include:

@ -71,6 +71,7 @@ dependencies = [
"pyyaml>=5.3.1",
"requests>=2.23.0",
"scipy>=1.4.1",
"torch>=1.8.0,<2.4.0; sys_platform == 'win32'", # Windows CPU errors https://github.com/ultralytics/ultralytics/issues/15049
"torch>=1.8.0",
"torchvision>=0.9.0",
"tqdm>=4.64.0", # progress bars

@ -252,6 +252,8 @@ def test_labels_and_crops():
for r in results:
im_name = Path(r.path).stem
cls_idxs = r.boxes.cls.int().tolist()
# Check correct detections
assert cls_idxs == ([0, 0, 5, 0, 7] if r.path.endswith("bus.jpg") else [0, 0]) # bus.jpg and zidane.jpg classes
# Check label path
labels = save_path / f"labels/{im_name}.txt"
assert labels.exists()

@ -1,6 +1,6 @@
# Ultralytics YOLO 🚀, AGPL-3.0 license
__version__ = "8.2.85"
__version__ = "8.2.86"
import os

@ -29,11 +29,13 @@ from ultralytics.utils import (
IS_PIP_PACKAGE,
LINUX,
LOGGER,
MACOS,
ONLINE,
PYTHON_VERSION,
ROOT,
TORCHVISION_VERSION,
USER_CONFIG_DIR,
WINDOWS,
Retry,
SimpleNamespace,
ThreadingLocked,
@ -224,6 +226,14 @@ def check_version(
if not required: # if required is '' or None
return True
if "sys_platform" in required: # i.e. required='<2.4.0,>=1.8.0; sys_platform == "win32"'
if (
(WINDOWS and "win32" not in required)
or (LINUX and "linux" not in required)
or (MACOS and "macos" not in required and "darwin" not in required)
):
return True
op = ""
version = ""
result = True
@ -422,6 +432,7 @@ def check_torchvision():
"""
# Compatibility table
compatibility_table = {
"2.4": ["0.19"],
"2.3": ["0.18"],
"2.2": ["0.17"],
"2.1": ["0.16"],

@ -1,4 +1,5 @@
# Ultralytics YOLO 🚀, AGPL-3.0 license
import contextlib
import gc
import math
@ -24,6 +25,7 @@ from ultralytics.utils import (
NUM_THREADS,
PYTHON_VERSION,
TORCHVISION_VERSION,
WINDOWS,
__version__,
colorstr,
)
@ -42,6 +44,11 @@ TORCHVISION_0_10 = check_version(TORCHVISION_VERSION, "0.10.0")
TORCHVISION_0_11 = check_version(TORCHVISION_VERSION, "0.11.0")
TORCHVISION_0_13 = check_version(TORCHVISION_VERSION, "0.13.0")
TORCHVISION_0_18 = check_version(TORCHVISION_VERSION, "0.18.0")
if WINDOWS and torch.__version__[:3] == "2.4": # reject all versions of 2.4 on Windows
LOGGER.warning(
"WARNING ⚠ Known issue with torch>=2.4.0 on Windows with CPU, recommend downgrading to torch<=2.3.1 to resolve "
"https://github.com/ultralytics/ultralytics/issues/15049"
)
@contextmanager

Loading…
Cancel
Save