ultralytics 8.3.81__py3-none-any.whl → 8.3.82__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 CHANGED
@@ -200,7 +200,6 @@ def test_export_paddle():
200
200
 
201
201
 
202
202
  @pytest.mark.slow
203
- @pytest.mark.skipif(IS_RASPBERRYPI, reason="MNN not supported on Raspberry Pi")
204
203
  def test_export_mnn():
205
204
  """Test YOLO exports to MNN format (WARNING: MNN test must precede NCNN test or CI error on Windows)."""
206
205
  file = YOLO(MODEL).export(format="mnn", imgsz=32)
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.81"
3
+ __version__ = "8.3.82"
4
4
 
5
5
  import os
6
6
 
@@ -633,6 +633,7 @@ download: |
633
633
  import warnings
634
634
 
635
635
  name = 'open-images-v7'
636
+ fo.config.dataset_zoo_dir = Path(SETTINGS["datasets_dir"]) / "fiftyone" / name
636
637
  fraction = 1.0 # fraction of full dataset to use
637
638
  LOGGER.warning('WARNING ⚠️ Open Images V7 dataset requires at least **561 GB of free space. Starting download...')
638
639
  for split in 'train', 'validation': # 1743042 train, 41620 val images
@@ -642,7 +643,6 @@ download: |
642
643
  dataset = foz.load_zoo_dataset(name,
643
644
  split=split,
644
645
  label_types=['detections'],
645
- dataset_dir=Path(SETTINGS['datasets_dir']) / 'fiftyone' / name,
646
646
  max_samples=round((1743042 if train else 41620) * fraction))
647
647
 
648
648
  # Define classes
@@ -62,6 +62,7 @@ import shutil
62
62
  import subprocess
63
63
  import time
64
64
  import warnings
65
+ from contextlib import contextmanager
65
66
  from copy import deepcopy
66
67
  from datetime import datetime
67
68
  from pathlib import Path
@@ -183,6 +184,26 @@ def try_export(inner_func):
183
184
  return outer_func
184
185
 
185
186
 
187
+ @contextmanager
188
+ def arange_patch(args):
189
+ """
190
+ Workaround for ONNX torch.arange incompatibility with FP16.
191
+
192
+ https://github.com/pytorch/pytorch/issues/148041.
193
+ """
194
+ if args.dynamic and args.half and args.format == "onnx":
195
+ func = torch.arange
196
+
197
+ def arange(*args, dtype=None, **kwargs):
198
+ return func(*args, **kwargs).to(dtype) # cast to dtype instead of passing dtype
199
+
200
+ torch.arange = arange # patch
201
+ yield
202
+ torch.arange = func # unpatch
203
+ else:
204
+ yield
205
+
206
+
186
207
  class Exporter:
187
208
  """
188
209
  A class for exporting a model.
@@ -263,7 +284,6 @@ class Exporter:
263
284
  if self.args.half and onnx and self.device.type == "cpu":
264
285
  LOGGER.warning("WARNING ⚠️ half=True only compatible with GPU export, i.e. use device=0")
265
286
  self.args.half = False
266
- assert not self.args.dynamic, "half=True not compatible with dynamic=True, i.e. use only one."
267
287
  self.imgsz = check_imgsz(self.args.imgsz, stride=model.stride, min_dim=2) # check image size
268
288
  if self.args.int8 and engine:
269
289
  self.args.dynamic = True # enforce dynamic to export TensorRT INT8
@@ -515,7 +535,6 @@ class Exporter:
515
535
  output_names = ["output0", "output1"] if isinstance(self.model, SegmentationModel) else ["output0"]
516
536
  dynamic = self.args.dynamic
517
537
  if dynamic:
518
- self.model.cpu() # dynamic=True only compatible with cpu
519
538
  dynamic = {"images": {0: "batch", 2: "height", 3: "width"}} # shape(1,3,640,640)
520
539
  if isinstance(self.model, SegmentationModel):
521
540
  dynamic["output0"] = {0: "batch", 2: "anchors"} # shape(1, 116, 8400)
@@ -533,17 +552,18 @@ class Exporter:
533
552
  pass
534
553
  check_requirements("onnxslim>=0.1.46") # Older versions has bug with OBB
535
554
 
536
- torch.onnx.export(
537
- NMSModel(self.model, self.args) if self.args.nms else self.model,
538
- self.im.cpu() if dynamic else self.im,
539
- f,
540
- verbose=False,
541
- opset_version=opset_version,
542
- do_constant_folding=True, # WARNING: DNN inference with torch>=1.12 may require do_constant_folding=False
543
- input_names=["images"],
544
- output_names=output_names,
545
- dynamic_axes=dynamic or None,
546
- )
555
+ with arange_patch(self.args):
556
+ torch.onnx.export(
557
+ NMSModel(self.model, self.args) if self.args.nms else self.model,
558
+ self.im,
559
+ f,
560
+ verbose=False,
561
+ opset_version=opset_version,
562
+ do_constant_folding=True, # WARNING: DNN inference with torch>=1.12 may require do_constant_folding=False
563
+ input_names=["images"],
564
+ output_names=output_names,
565
+ dynamic_axes=dynamic or None,
566
+ )
547
567
 
548
568
  # Checks
549
569
  model_onnx = onnx.load(f) # load onnx model
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.81
3
+ Version: 8.3.82
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=DE4-5JqWhsQPyDhU5hHqRevz971yPBQORs3LitLc6Fo,3010
3
3
  tests/test_cli.py,sha256=b9pPCu6x_MejPw-G7TI3wxSZnaMmutcXW7aCzMzz4ig,5076
4
4
  tests/test_cuda.py,sha256=inPe0f_L0GutDxYLbe49BPEmjMevaS9XXCWX1Lfjo2g,5971
5
5
  tests/test_engine.py,sha256=aGqZ8P7QO5C_nOa1b4FOyk92Ysdk5WiP-ST310Vyxys,4962
6
- tests/test_exports.py,sha256=ehuGi1M1aOOnMgnOcOMLgE3kpf6SjpK5rRY_K60Vxsk,9303
6
+ tests/test_exports.py,sha256=dpUT_FXFXzFoItfZwbxkPFXgEfaVqyfYwkIQW4teL38,9223
7
7
  tests/test_integrations.py,sha256=p3DMnnPMKsV0Qm82JVJUIY1UZ67xRgF9E8AaL76TEHE,6154
8
8
  tests/test_python.py,sha256=tW-EFJC2rjl_DvAa8khXGWYdypseQjrLjGHhe2p9r9A,23238
9
9
  tests/test_solutions.py,sha256=aY0G3vNzXGCENG9FD76MfUp7jgzeESPsUvbvQYBUvH0,4205
10
- ultralytics/__init__.py,sha256=-NZ32aHUn4plibg5MrjXMsxJx4BvsLzNIsfeUF2ZGfA,709
10
+ ultralytics/__init__.py,sha256=9ZaZk2jKSloY4YqUru09PT6Ecak8-j75EF3Rfccn25s,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=C5MkWVKf71g5ajkNp1H4DLsbKkkx9iaWCV02tjoL2ds,39795
@@ -37,7 +37,7 @@ ultralytics/cfg/datasets/dota8.yaml,sha256=W43bp_6yUUVjs6vpogNrGI9vU7rLbEsSx6vyf
37
37
  ultralytics/cfg/datasets/hand-keypoints.yaml,sha256=5vue4kvPrAdd6ZyB90rZgtGUUHvSi3s_ht7jBBqX7a4,989
38
38
  ultralytics/cfg/datasets/lvis.yaml,sha256=b3ViDn8gjUCaQ6YfRwUDhGgwiXstgRDehhd3B6wYii4,29721
39
39
  ultralytics/cfg/datasets/medical-pills.yaml,sha256=3ho9VW8p5Hm1TuicguiL-akfC9dCZO5nwthO4sUR3k0,848
40
- ultralytics/cfg/datasets/open-images-v7.yaml,sha256=POfB0UetXAGNpo-ckj3K6zDVhjo-RE6dd4ANaLDYTAo,12522
40
+ ultralytics/cfg/datasets/open-images-v7.yaml,sha256=d-JX1SVasyKeXfY_l7x3cjJxaat3xrIJsUf7SvdmFow,12502
41
41
  ultralytics/cfg/datasets/package-seg.yaml,sha256=uechtCYfX8OrJrO5zV1-uGwbr69lUSuon1oXguEkLGg,864
42
42
  ultralytics/cfg/datasets/signature.yaml,sha256=eABYny9n4w3RleR3RQmb505DiBll8R5cvcjWj8wkuf0,789
43
43
  ultralytics/cfg/datasets/tiger-pose.yaml,sha256=gCQc1AX04Xfhnms4czm7R_XnT2XFL2u-t3M8Yya20ds,925
@@ -107,7 +107,7 @@ ultralytics/data/loaders.py,sha256=JOwXbz-dxgG2bx0_cQHp-olz5FleoCX8EzrUvZ77vvg,2
107
107
  ultralytics/data/split_dota.py,sha256=YI-i2MqdiBt06W67TJnBXQHJrqTnkJDJ3zzoL0UZVro,10733
108
108
  ultralytics/data/utils.py,sha256=GgsexyPYoyAz-felAuMEfI-C-aeU2jy9VlzbmVdlAQw,33839
109
109
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
110
- ultralytics/engine/exporter.py,sha256=DslfLk7H44ly4-kCY0u6SLSRjdx7NO5lzfnnD1_c7wI,77015
110
+ ultralytics/engine/exporter.py,sha256=60uiudP9yxjpcBjP16ImXxQE_VN8FU5f9GY0moiAYpA,77454
111
111
  ultralytics/engine/model.py,sha256=s8HsSBvdRgSbnKGULr7YW-ZWJKJsQpOoHd9Aih_nMt0,53427
112
112
  ultralytics/engine/predictor.py,sha256=jiYDAjupOlRUpPvw9tu7or9PjXtLm-YCRiawANtWxj0,17881
113
113
  ultralytics/engine/results.py,sha256=hWlO2e58BPUJ5R4Jl4iirBPaZ8BypcNu_cNQ2NHpUqM,78111
@@ -238,9 +238,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=waZ_bRu0-qBKujTLuqonC2gx2DkgBuVnfq
238
238
  ultralytics/utils/callbacks/raytune.py,sha256=A_NVWjyPNf2m6iB-mbW7SMpyqM9QBvpbPa-MCMFMtdk,727
239
239
  ultralytics/utils/callbacks/tensorboard.py,sha256=JHOEVlNQ5dYJPd4Z-EvqbXowuK5uA0p8wPgyyaIUQs0,4194
240
240
  ultralytics/utils/callbacks/wb.py,sha256=ayhT2y62AcSOacnawshATU0rWrlSFQ77mrGgBdRl3W4,7086
241
- ultralytics-8.3.81.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
242
- ultralytics-8.3.81.dist-info/METADATA,sha256=Y30dxhRo-PW9WwcRADI1xxLzjbN2j8ltuNltC_C2Xmo,35168
243
- ultralytics-8.3.81.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
244
- ultralytics-8.3.81.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
245
- ultralytics-8.3.81.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
246
- ultralytics-8.3.81.dist-info/RECORD,,
241
+ ultralytics-8.3.82.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
242
+ ultralytics-8.3.82.dist-info/METADATA,sha256=TqRFm9LmzceIdFA5Ggy2DAUx62w7SR2jZ0CpzyyfnbU,35168
243
+ ultralytics-8.3.82.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
244
+ ultralytics-8.3.82.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
245
+ ultralytics-8.3.82.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
246
+ ultralytics-8.3.82.dist-info/RECORD,,