Skip to content

Commit

Permalink
ultralytics 8.2.86 Windows torch==2.4.0 patch (ultralytics#15942)
Browse files Browse the repository at this point in the history
Signed-off-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
  • Loading branch information
glenn-jocher and UltralyticsAssistant authored Sep 1, 2024
1 parent 0f105f4 commit 62408ae
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions tests/test_python.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion ultralytics/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Ultralytics YOLO 🚀, AGPL-3.0 license

__version__ = "8.2.85"
__version__ = "8.2.86"

import os

Expand Down
11 changes: 11 additions & 0 deletions ultralytics/utils/checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@
IS_PIP_PACKAGE,
LINUX,
LOGGER,
MACOS,
ONLINE,
PYTHON_VERSION,
ROOT,
TORCHVISION_VERSION,
USER_CONFIG_DIR,
WINDOWS,
Retry,
SimpleNamespace,
ThreadingLocked,
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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"],
Expand Down
7 changes: 7 additions & 0 deletions ultralytics/utils/torch_utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Ultralytics YOLO 🚀, AGPL-3.0 license

import contextlib
import gc
import math
Expand All @@ -24,6 +25,7 @@
NUM_THREADS,
PYTHON_VERSION,
TORCHVISION_VERSION,
WINDOWS,
__version__,
colorstr,
)
Expand All @@ -42,6 +44,11 @@
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
Expand Down

0 comments on commit 62408ae

Please sign in to comment.