ultralytics 8.1.15 add Python 3.12 compatibility (#8210)
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: Johnny <johnnynuca14@gmail.com> Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
This commit is contained in:
parent
e38c7a3022
commit
fbed8499da
13 changed files with 47 additions and 40 deletions
|
|
@ -4,11 +4,10 @@ import subprocess
|
|||
|
||||
import pytest
|
||||
|
||||
from ultralytics.utils import ASSETS, WEIGHTS_DIR
|
||||
from ultralytics.utils.checks import cuda_device_count, cuda_is_available
|
||||
from ultralytics.utils import ASSETS, WEIGHTS_DIR, checks
|
||||
|
||||
CUDA_IS_AVAILABLE = cuda_is_available()
|
||||
CUDA_DEVICE_COUNT = cuda_device_count()
|
||||
CUDA_IS_AVAILABLE = checks.cuda_is_available()
|
||||
CUDA_DEVICE_COUNT = checks.cuda_device_count()
|
||||
TASK_ARGS = [
|
||||
("detect", "yolov8n", "coco8.yaml"),
|
||||
("segment", "yolov8n-seg", "coco8-seg.yaml"),
|
||||
|
|
@ -70,6 +69,7 @@ def test_rtdetr(task="detect", model="yolov8n-rtdetr.yaml", data="coco8.yaml"):
|
|||
run(f"yolo predict {task} model={model} source={ASSETS / 'bus.jpg'} imgsz=640 save save_crop save_txt")
|
||||
|
||||
|
||||
@pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="MobileSAM Clip is not supported in Python 3.12")
|
||||
def test_fastsam(task="segment", model=WEIGHTS_DIR / "FastSAM-s.pt", data="coco8-seg.yaml"):
|
||||
"""Test FastSAM segmentation functionality within Ultralytics."""
|
||||
source = ASSETS / "bus.jpg"
|
||||
|
|
|
|||
|
|
@ -41,16 +41,16 @@ def test_triton():
|
|||
|
||||
# Create variables
|
||||
model_name = "yolo"
|
||||
triton_repo_path = TMP / "triton_repo"
|
||||
triton_model_path = triton_repo_path / model_name
|
||||
triton_repo = TMP / "triton_repo" # Triton repo path
|
||||
triton_model = triton_repo / model_name # Triton model path
|
||||
|
||||
# Export model to ONNX
|
||||
f = YOLO(MODEL).export(format="onnx", dynamic=True)
|
||||
|
||||
# Prepare Triton repo
|
||||
(triton_model_path / "1").mkdir(parents=True, exist_ok=True)
|
||||
Path(f).rename(triton_model_path / "1" / "model.onnx")
|
||||
(triton_model_path / "config.pbtxt").touch()
|
||||
(triton_model / "1").mkdir(parents=True, exist_ok=True)
|
||||
Path(f).rename(triton_model / "1" / "model.onnx")
|
||||
(triton_model / "config.pbtxt").touch()
|
||||
|
||||
# Define image https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tritonserver
|
||||
tag = "nvcr.io/nvidia/tritonserver:23.09-py3" # 6.4 GB
|
||||
|
|
@ -61,7 +61,7 @@ def test_triton():
|
|||
# Run the Triton server and capture the container ID
|
||||
container_id = (
|
||||
subprocess.check_output(
|
||||
f"docker run -d --rm -v {triton_repo_path}:/models -p 8000:8000 {tag} tritonserver --model-repository=/models",
|
||||
f"docker run -d --rm -v {triton_repo}:/models -p 8000:8000 {tag} tritonserver --model-repository=/models",
|
||||
shell=True,
|
||||
)
|
||||
.decode("utf-8")
|
||||
|
|
|
|||
|
|
@ -218,12 +218,14 @@ def test_export_onnx():
|
|||
YOLO(f)(SOURCE) # exported model inference
|
||||
|
||||
|
||||
@pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="OpenVINO not supported in Python 3.12")
|
||||
def test_export_openvino():
|
||||
"""Test exporting the YOLO model to OpenVINO format."""
|
||||
f = YOLO(MODEL).export(format="openvino")
|
||||
YOLO(f)(SOURCE) # exported model inference
|
||||
|
||||
|
||||
@pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="CoreML not supported in Python 3.12")
|
||||
def test_export_coreml():
|
||||
"""Test exporting the YOLO model to CoreML format."""
|
||||
if not WINDOWS: # RuntimeError: BlobWriter not loaded with coremltools 7.0 on windows
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue