ultralytics 8.3.90__py3-none-any.whl → 8.3.91__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tests/test_exports.py +2 -2
- ultralytics/__init__.py +1 -1
- ultralytics/data/utils.py +2 -0
- ultralytics/engine/exporter.py +5 -6
- ultralytics/utils/callbacks/comet.py +7 -2
- ultralytics/utils/plotting.py +1 -0
- {ultralytics-8.3.90.dist-info → ultralytics-8.3.91.dist-info}/METADATA +1 -1
- {ultralytics-8.3.90.dist-info → ultralytics-8.3.91.dist-info}/RECORD +12 -12
- {ultralytics-8.3.90.dist-info → ultralytics-8.3.91.dist-info}/LICENSE +0 -0
- {ultralytics-8.3.90.dist-info → ultralytics-8.3.91.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.90.dist-info → ultralytics-8.3.91.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.90.dist-info → ultralytics-8.3.91.dist-info}/top_level.txt +0 -0
tests/test_exports.py
CHANGED
@@ -150,7 +150,7 @@ def test_export_coreml_matrix(task, dynamic, int8, half, batch):
|
|
150
150
|
for task, dynamic, int8, half, batch, nms in product(
|
151
151
|
TASKS, [False], [True, False], [True, False], [1], [True, False]
|
152
152
|
)
|
153
|
-
if not ((int8 and half) or (task == "classify" and nms))
|
153
|
+
if not ((int8 and half) or (task == "classify" and nms) or (ARM64 and nms))
|
154
154
|
],
|
155
155
|
)
|
156
156
|
def test_export_tflite_matrix(task, dynamic, int8, half, batch, nms):
|
@@ -213,7 +213,7 @@ def test_export_ncnn():
|
|
213
213
|
YOLO(file)(SOURCE, imgsz=32) # exported model inference
|
214
214
|
|
215
215
|
|
216
|
-
@pytest.mark.skipif(True, reason="Test disabled as keras and tensorflow version conflicts with
|
216
|
+
@pytest.mark.skipif(True, reason="Test disabled as keras and tensorflow version conflicts with TFlite export.")
|
217
217
|
@pytest.mark.skipif(not LINUX or MACOS, reason="Skipping test on Windows and Macos")
|
218
218
|
def test_export_imx():
|
219
219
|
"""Test YOLO exports to IMX format."""
|
ultralytics/__init__.py
CHANGED
ultralytics/data/utils.py
CHANGED
@@ -434,8 +434,10 @@ def check_cls_dataset(dataset, split=""):
|
|
434
434
|
test_set = data_dir / "test" if (data_dir / "test").exists() else None # data/val or data/test
|
435
435
|
if split == "val" and not val_set:
|
436
436
|
LOGGER.warning("WARNING ⚠️ Dataset 'split=val' not found, using 'split=test' instead.")
|
437
|
+
val_set = test_set
|
437
438
|
elif split == "test" and not test_set:
|
438
439
|
LOGGER.warning("WARNING ⚠️ Dataset 'split=test' not found, using 'split=val' instead.")
|
440
|
+
test_set = val_set
|
439
441
|
|
440
442
|
nc = len([x for x in (data_dir / "train").glob("*") if x.is_dir()]) # number of classes
|
441
443
|
names = [x.name for x in (data_dir / "train").iterdir() if x.is_dir()] # class names list
|
ultralytics/engine/exporter.py
CHANGED
@@ -305,12 +305,13 @@ class Exporter:
|
|
305
305
|
assert not getattr(model, "end2end", False), "TFLite INT8 export not supported for end2end models."
|
306
306
|
if self.args.nms:
|
307
307
|
assert not isinstance(model, ClassificationModel), "'nms=True' is not valid for classification models."
|
308
|
+
assert not (tflite and ARM64 and LINUX), "TFLite export with NMS unsupported on ARM64 Linux"
|
308
309
|
if getattr(model, "end2end", False):
|
309
310
|
LOGGER.warning("WARNING ⚠️ 'nms=True' is not available for end2end models. Forcing 'nms=False'.")
|
310
311
|
self.args.nms = False
|
311
312
|
self.args.conf = self.args.conf or 0.25 # set conf default value for nms export
|
312
313
|
if edgetpu:
|
313
|
-
if
|
314
|
+
if not LINUX or ARM64:
|
314
315
|
raise SystemError(
|
315
316
|
"Edge TPU export only supported on non-aarch64 Linux. See https://coral.ai/docs/edgetpu/compiler"
|
316
317
|
)
|
@@ -332,7 +333,7 @@ class Exporter:
|
|
332
333
|
f"Using default 'data={self.args.data}'."
|
333
334
|
)
|
334
335
|
if tfjs and (ARM64 and LINUX):
|
335
|
-
raise SystemError("
|
336
|
+
raise SystemError("TF.js exports are not currently supported on ARM64 Linux")
|
336
337
|
|
337
338
|
# Input
|
338
339
|
im = torch.zeros(self.args.batch, 3, *self.imgsz).to(self.device)
|
@@ -997,9 +998,7 @@ class Exporter:
|
|
997
998
|
try:
|
998
999
|
import tensorflow as tf # noqa
|
999
1000
|
except ImportError:
|
1000
|
-
|
1001
|
-
version = ">=2.0.0"
|
1002
|
-
check_requirements(f"tensorflow{suffix}{version}")
|
1001
|
+
check_requirements("tensorflow>=2.0.0")
|
1003
1002
|
import tensorflow as tf # noqa
|
1004
1003
|
check_requirements(
|
1005
1004
|
(
|
@@ -1008,7 +1007,7 @@ class Exporter:
|
|
1008
1007
|
"sng4onnx>=1.0.1", # required by 'onnx2tf' package
|
1009
1008
|
"onnx_graphsurgeon>=0.3.26", # required by 'onnx2tf' package
|
1010
1009
|
"onnx>=1.12.0",
|
1011
|
-
"onnx2tf
|
1010
|
+
"onnx2tf>=1.26.3",
|
1012
1011
|
"onnxslim>=0.1.31",
|
1013
1012
|
"tflite_support<=0.4.3" if IS_JETSON else "tflite_support", # fix ImportError 'GLIBCXX_3.4.29'
|
1014
1013
|
"flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package
|
@@ -378,6 +378,12 @@ def _log_model(experiment, trainer) -> None:
|
|
378
378
|
experiment.log_model(model_name, file_or_folder=str(trainer.best), file_name="best.pt", overwrite=True)
|
379
379
|
|
380
380
|
|
381
|
+
def _log_image_batches(experiment, trainer, curr_step: int) -> None:
|
382
|
+
"""Log samples of images batches for train, validation, and test."""
|
383
|
+
_log_images(experiment, trainer.save_dir.glob("train_batch*.jpg"), curr_step)
|
384
|
+
_log_images(experiment, trainer.save_dir.glob("val_batch*.jpg"), curr_step)
|
385
|
+
|
386
|
+
|
381
387
|
def on_pretrain_routine_start(trainer) -> None:
|
382
388
|
"""Creates or resumes a CometML experiment at the start of a YOLO pre-training routine."""
|
383
389
|
_resume_or_create_experiment(trainer.args)
|
@@ -441,8 +447,7 @@ def on_train_end(trainer) -> None:
|
|
441
447
|
|
442
448
|
_log_confusion_matrix(experiment, trainer, curr_step, curr_epoch)
|
443
449
|
_log_image_predictions(experiment, trainer.validator, curr_step)
|
444
|
-
|
445
|
-
_log_images(experiment, trainer.save_dir.glob("val_batch*.jpg"), curr_step)
|
450
|
+
_log_image_batches(experiment, trainer, curr_step)
|
446
451
|
experiment.end()
|
447
452
|
|
448
453
|
global _comet_image_prediction_count
|
ultralytics/utils/plotting.py
CHANGED
@@ -713,6 +713,7 @@ def plot_images(
|
|
713
713
|
|
714
714
|
# Annotate
|
715
715
|
fs = int((h + w) * ns * 0.01) # font size
|
716
|
+
fs = max(fs, 18) # ensure that the font size is large enough to be easily readable.
|
716
717
|
annotator = Annotator(mosaic, line_width=round(fs / 10), font_size=fs, pil=True, example=names)
|
717
718
|
for i in range(bs):
|
718
719
|
x, y = int(w * (i // ns)), int(h * (i % ns)) # block origin
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.91
|
4
4
|
Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -3,11 +3,11 @@ tests/conftest.py,sha256=4bGHH7rCUSlnvcr8erlpd8vjjsyf7f2pptMjULEhly4,2982
|
|
3
3
|
tests/test_cli.py,sha256=DPxUjcGAex_cmGMNaRIK7mT7wrILWaPBtlfXuHQpveI,5284
|
4
4
|
tests/test_cuda.py,sha256=0uvTF4bY_Grsd_Xgtp7TdIEgMpUqKv8_kWA82NYDl_g,6260
|
5
5
|
tests/test_engine.py,sha256=aGqZ8P7QO5C_nOa1b4FOyk92Ysdk5WiP-ST310Vyxys,4962
|
6
|
-
tests/test_exports.py,sha256=
|
6
|
+
tests/test_exports.py,sha256=2UIeIVJTpBAql_XYFCKcZg7OPlwlzYnaSqOKjalHuSg,9242
|
7
7
|
tests/test_integrations.py,sha256=ZgpddWHEVqiP4bGhVw8fLc2wdz0rCxuxr0FQ2dTgnIE,6067
|
8
8
|
tests/test_python.py,sha256=SZQyhwWcgXtte4VKbwf77h15D-tb0CEyiWaJpaxbkGc,22992
|
9
9
|
tests/test_solutions.py,sha256=xh5cPoQ8Ht0rNbdalWW8C3f0f_-asgu4aZSiMMn3yRY,5134
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=24X8o66s-8ZyaqLudin9r4TG-ghbPgFenxLQOT333yQ,709
|
11
11
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
12
12
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
13
13
|
ultralytics/cfg/__init__.py,sha256=q5fPqB4xjhjeRO4x84lCELyWPHgO8nCi-pQyg13ESjo,39908
|
@@ -105,9 +105,9 @@ ultralytics/data/converter.py,sha256=QHCXroWL_6Mc-4DudX773V09NQVEGR1wVTOJvYJ9YIU
|
|
105
105
|
ultralytics/data/dataset.py,sha256=VX89-X8F-_yi0bWRdPBpDd837OPFCevlYikkouAgvLg,27919
|
106
106
|
ultralytics/data/loaders.py,sha256=_Gyp_BfGTZwsFdn4UnolXxdU_sAYZLIrv0L2TRI9R5g,28627
|
107
107
|
ultralytics/data/split_dota.py,sha256=J3cGfIMC4K_mFYX0G0XfRwJIwe_8nMjwDlv4mvdqFgA,11872
|
108
|
-
ultralytics/data/utils.py,sha256=
|
108
|
+
ultralytics/data/utils.py,sha256=uNLBG9rhL8JT7k8XQI3Wup3ct8e9JLWzabD6iaUFEms,33141
|
109
109
|
ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
|
110
|
-
ultralytics/engine/exporter.py,sha256=
|
110
|
+
ultralytics/engine/exporter.py,sha256=bcNcmSday8YtvC8jdcIzjpk87MxcBL_mcxGMkqBX3RQ,77492
|
111
111
|
ultralytics/engine/model.py,sha256=5oR7GAlpCegbOj4h1y-7hKB0YIJFoRbxwA_CufWvaC8,52902
|
112
112
|
ultralytics/engine/predictor.py,sha256=q36ByW23geuLJWiBHi4uD5Qyn4RbfgZP7zxJ_tAfPI8,21626
|
113
113
|
ultralytics/engine/results.py,sha256=NdnBvWCNDyfOPe7XwSWqhBppV2GmXEMH9LBbkeJ4Vjc,79620
|
@@ -226,7 +226,7 @@ ultralytics/utils/loss.py,sha256=NKisGlygcaDkBjHcH0Y2G6TpcNKjb7iZ_Dt6WQctNLE,343
|
|
226
226
|
ultralytics/utils/metrics.py,sha256=mCQwIH3am95OR3yvHWTqWAD0Unal7n2MYg4liFFygbA,53669
|
227
227
|
ultralytics/utils/ops.py,sha256=BXoGiBgQbNcU5DSWq8glnVy_8SMkxAn-P9L1o2xTqOQ,34215
|
228
228
|
ultralytics/utils/patches.py,sha256=z72pAlENS3M-SzcSDyolDpwphMrq4XkXXryaIOYwTCo,3327
|
229
|
-
ultralytics/utils/plotting.py,sha256=
|
229
|
+
ultralytics/utils/plotting.py,sha256=zQNo_nSAxOMoki7XwwlP7i08kr8n0FY_mSnhSvdTkv4,46704
|
230
230
|
ultralytics/utils/tal.py,sha256=DuXTErnOn_tXKi9XgS9h_vr_Czn0EO6CKhTtg8gQMwI,20809
|
231
231
|
ultralytics/utils/torch_utils.py,sha256=uklVi3U5QEKx0zNB-5e55Pf3kbk9NzB-ZdJ4UxUvIo0,38569
|
232
232
|
ultralytics/utils/triton.py,sha256=BkOqRroVsY7NbDgX-bJkavgm7CaieXRhN1LweleVFg4,4568
|
@@ -234,7 +234,7 @@ ultralytics/utils/tuner.py,sha256=mJLrORb67FqnTvKD5Y3dM7LxhkMcJpZwWVYfv9yfQ8w,59
|
|
234
234
|
ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
|
235
235
|
ultralytics/utils/callbacks/base.py,sha256=QMdltbVe806lekq-w_7ohpXysoZjuB8gStZ14wPaS78,5877
|
236
236
|
ultralytics/utils/callbacks/clearml.py,sha256=jxTL2QSt8Cjp_BkK2XUDPg5t2XnykMYXJFRp6B66ulA,6005
|
237
|
-
ultralytics/utils/callbacks/comet.py,sha256=
|
237
|
+
ultralytics/utils/callbacks/comet.py,sha256=GoEuJQLJE9MRf5vYO0Swy6bUV86SUBe2fZo7hznPx84,18050
|
238
238
|
ultralytics/utils/callbacks/dvc.py,sha256=tF8oN8_zkXVsjxQmZjUK4klB9I2I-oRdLxkIr1afCys,5168
|
239
239
|
ultralytics/utils/callbacks/hub.py,sha256=dPSeSStRE1x-WYyqrUghCp_VtBxNZ5-Bmb4wW2KYV2Y,4073
|
240
240
|
ultralytics/utils/callbacks/mlflow.py,sha256=olMilfFKKLb9X53sJxFCn-AHnbcvTmXwtU_CVqSqzeE,5434
|
@@ -242,9 +242,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=TQDHJsgAdnMtSdLeQyVTJ1zBdvuwLm-U4U
|
|
242
242
|
ultralytics/utils/callbacks/raytune.py,sha256=p0eGb8UACfnPzZ_bB287NjSd-UmSHF5zAFYKPwVJhj0,706
|
243
243
|
ultralytics/utils/callbacks/tensorboard.py,sha256=rnyja6LpSyixwuL0WKovgARe6RPiX8ORuknlre3VEu4,4255
|
244
244
|
ultralytics/utils/callbacks/wb.py,sha256=sMlA0dTcv3krDd3ppGSgw-wXIo64sPOv9RgdghAsP5k,6851
|
245
|
-
ultralytics-8.3.
|
246
|
-
ultralytics-8.3.
|
247
|
-
ultralytics-8.3.
|
248
|
-
ultralytics-8.3.
|
249
|
-
ultralytics-8.3.
|
250
|
-
ultralytics-8.3.
|
245
|
+
ultralytics-8.3.91.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
246
|
+
ultralytics-8.3.91.dist-info/METADATA,sha256=XfI5zPopBIEHReHKtKZgs5x8RYHrkMhwSWbg7ONT9QE,35169
|
247
|
+
ultralytics-8.3.91.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
248
|
+
ultralytics-8.3.91.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
249
|
+
ultralytics-8.3.91.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
250
|
+
ultralytics-8.3.91.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|