ultralytics 8.1.1 Docs, Solutions and Export updates (#7545)
Co-authored-by: Sergiu Waxmann <47978446+sergiuwaxmann@users.noreply.github.com> Co-authored-by: Vivek Malvi <malvivivek8198@gmail.com> Co-authored-by: UltralyticsAssistant <web@ultralytics.com> Co-authored-by: psaxton <psaxton+github.com@gmail.com>
This commit is contained in:
parent
30185e0d4c
commit
83165ffe9c
10 changed files with 62 additions and 26 deletions
|
|
@ -85,10 +85,12 @@ def benchmark(
|
|||
emoji, filename = "❌", None # export defaults
|
||||
try:
|
||||
assert i != 9 or LINUX, "Edge TPU export only supported on Linux"
|
||||
if i == 10:
|
||||
if i == 5:
|
||||
assert MACOS or LINUX, "CoreML export only supported on macOS and Linux"
|
||||
elif i == 10:
|
||||
assert MACOS or LINUX, "TF.js export only supported on macOS and Linux"
|
||||
elif i == 11:
|
||||
assert sys.version_info < (3, 11), "PaddlePaddle export only supported on Python<=3.10"
|
||||
# elif i == 11:
|
||||
# assert sys.version_info < (3, 11), "PaddlePaddle export only supported on Python<=3.10"
|
||||
if "cpu" in device.type:
|
||||
assert cpu, "inference not supported on CPU"
|
||||
if "cuda" in device.type:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
||||
"""Monkey patches to update/extend functionality of existing functions."""
|
||||
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
import cv2
|
||||
|
|
@ -61,7 +62,8 @@ _torch_save = torch.save # copy to avoid recursion errors
|
|||
|
||||
def torch_save(*args, **kwargs):
|
||||
"""
|
||||
Use dill (if exists) to serialize the lambda functions where pickle does not do this.
|
||||
Use dill (if exists) to serialize the lambda functions where pickle does not do this. Also adds 3 retries with
|
||||
exponential standoff in case of save failure to improve robustness to transient issues.
|
||||
|
||||
Args:
|
||||
*args (tuple): Positional arguments to pass to torch.save.
|
||||
|
|
@ -74,4 +76,11 @@ def torch_save(*args, **kwargs):
|
|||
|
||||
if "pickle_module" not in kwargs:
|
||||
kwargs["pickle_module"] = pickle # noqa
|
||||
return _torch_save(*args, **kwargs)
|
||||
|
||||
for i in range(4): # 3 retries
|
||||
try:
|
||||
return _torch_save(*args, **kwargs)
|
||||
except RuntimeError: # unable to save, possibly waiting for device to flush or anti-virus to finish scanning
|
||||
if i == 3:
|
||||
raise
|
||||
time.sleep((2**i) / 2) # exponential standoff 0.5s, 1.0s, 2.0s
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue