dgenerate-ultralytics-headless 8.3.244__py3-none-any.whl → 8.3.245__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.244
3
+ Version: 8.3.245
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -1,4 +1,4 @@
1
- dgenerate_ultralytics_headless-8.3.244.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
1
+ dgenerate_ultralytics_headless-8.3.245.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
2
2
  tests/__init__.py,sha256=bCox_hLdGRFYGLb2kd722VdNP2zEXNYNuLLYtqZSrbw,804
3
3
  tests/conftest.py,sha256=mOy9lGpNp7lk1hHl6_pVE0f9cU-72gnkoSm4TO-CNZU,2318
4
4
  tests/test_cli.py,sha256=GhIFHi-_WIJpDgoGNRi0DnjbfwP1wHbklBMnkCM-P_4,5464
@@ -8,7 +8,7 @@ tests/test_exports.py,sha256=UCLbjUnK8ZNldnJodrAxftUrwzO6ZNQxr7j64nDl9io,14137
8
8
  tests/test_integrations.py,sha256=6QgSh9n0J04RdUYz08VeVOnKmf4S5MDEQ0chzS7jo_c,6220
9
9
  tests/test_python.py,sha256=viMvRajIbDZdm64hRRg9i8qZ1sU9frwB69e56mxwEXk,29266
10
10
  tests/test_solutions.py,sha256=CIaphpmOXgz9AE9xcm1RWODKrwGfZLCc84IggGXArNM,14122
11
- ultralytics/__init__.py,sha256=i2L4lPOKs4lnVhIGuDybG7FHkLU8zzTB6-2JVOEPMTM,1302
11
+ ultralytics/__init__.py,sha256=nuDYkxZu_md3G2OzKDB8yLt04fl3C5IxdfRTo4LDrpM,1302
12
12
  ultralytics/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
13
13
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
14
14
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
@@ -217,9 +217,9 @@ ultralytics/nn/modules/__init__.py,sha256=5Sg_28MDfKwdu14Ty_WCaiIXZyjBSQ-xCNCwno
217
217
  ultralytics/nn/modules/activation.py,sha256=J6n-CJKFK0YbhwcRDqm9zEJM9pSAEycj5quQss_3x6E,2219
218
218
  ultralytics/nn/modules/block.py,sha256=YRALZHImSMdLpmF0qIf8uF3yENz0EK63SFp7gzylo5g,69885
219
219
  ultralytics/nn/modules/conv.py,sha256=9WUlBzHD-wLgz0riLyttzASLIqBtXPK6Jk5EdyIiGCM,21100
220
- ultralytics/nn/modules/head.py,sha256=OD8slnnJbVG9WvbRJqhx0tHwbtgrci3Ynj9dxHcszfY,51875
220
+ ultralytics/nn/modules/head.py,sha256=V1zSWN-AOHPkciqvfruDA0LgBgSGyKc_CULNCNEAe8o,51875
221
221
  ultralytics/nn/modules/transformer.py,sha256=oasUhhIm03kY0QtWrpvSSLnQa9q3eW2ksx82MgpPmsE,31972
222
- ultralytics/nn/modules/utils.py,sha256=tkUDhTXjmW-YMvTGvM4RFUVtzh5k2c33i3TWmzaWWtI,6067
222
+ ultralytics/nn/modules/utils.py,sha256=EyhENse_RESlXjLHAJWvV07_tq1MVMmfzXgPR1fiT9w,6066
223
223
  ultralytics/solutions/__init__.py,sha256=Jj7OcRiYjHH-e104H4xTgjjR5W6aPB4mBRndbaSPmgU,1209
224
224
  ultralytics/solutions/ai_gym.py,sha256=ItLE6HYMx6AEgiHEDG1HKDkippnrnycb-79S2g72AYA,5181
225
225
  ultralytics/solutions/analytics.py,sha256=UaH-B6h8Ir9l00deRUeAIW6QQTIO_595HTp93sdwteM,12820
@@ -283,7 +283,7 @@ ultralytics/utils/callbacks/dvc.py,sha256=YT0Sa5P8Huj8Fn9jM2P6MYzUY3PIVxsa5BInVi
283
283
  ultralytics/utils/callbacks/hub.py,sha256=fVLqqr3ZM6hoYFlVMEeejfq1MWDrkWCskPFOG3HGILQ,4159
284
284
  ultralytics/utils/callbacks/mlflow.py,sha256=wCXjQgdufp9LYujqMzLZOmIOur6kvrApHNeo9dA7t_g,5323
285
285
  ultralytics/utils/callbacks/neptune.py,sha256=_vt3cMwDHCR-LyT3KtRikGpj6AG11oQ-skUUUUdZ74o,4391
286
- ultralytics/utils/callbacks/platform.py,sha256=oWz8OvdgO3rCKe6VvqNOhwStS07ddJkvPy1O72SqYEc,9271
286
+ ultralytics/utils/callbacks/platform.py,sha256=bk-ZyHmy9gLFNcsF2M96Cr39W66kE7JL3p7V-9g51t4,9694
287
287
  ultralytics/utils/callbacks/raytune.py,sha256=Y0dFyNZVRuFovSh7nkgUIHTQL3xIXOACElgHuYbg_5I,1278
288
288
  ultralytics/utils/callbacks/tensorboard.py,sha256=PTJYvD2gqRUN8xw5VoTjvKnu2adukLfvhMlDgTnTiFU,4952
289
289
  ultralytics/utils/callbacks/wb.py,sha256=ghmL3gigOa-z_F54-TzMraKw9MAaYX-Wk4H8dLoRvX8,7705
@@ -291,8 +291,8 @@ ultralytics/utils/export/__init__.py,sha256=Cfh-PwVfTF_lwPp-Ss4wiX4z8Sm1XRPklsqd
291
291
  ultralytics/utils/export/engine.py,sha256=23-lC6dNsmz5vprSJzaN7UGNXrFlVedNcqhlOH_IXes,9956
292
292
  ultralytics/utils/export/imx.py,sha256=F3b334IZdwjF8PdP1s6QI3Ndd82_2e77clj8aGLzIDo,12856
293
293
  ultralytics/utils/export/tensorflow.py,sha256=igYzwbdblb9YgfV4Jgl5lMvynuVRcF51dAzI7j-BBI0,9966
294
- dgenerate_ultralytics_headless-8.3.244.dist-info/METADATA,sha256=lb4ts7ET4R5dsSjKMa0awTLNxVC2eyIb8YhP5Us8LUM,38799
295
- dgenerate_ultralytics_headless-8.3.244.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
296
- dgenerate_ultralytics_headless-8.3.244.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
297
- dgenerate_ultralytics_headless-8.3.244.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
298
- dgenerate_ultralytics_headless-8.3.244.dist-info/RECORD,,
294
+ dgenerate_ultralytics_headless-8.3.245.dist-info/METADATA,sha256=BL614iBVsqPyhyUJbnxmXjyKKFtAvGUJxU2HO9C2Rv0,38799
295
+ dgenerate_ultralytics_headless-8.3.245.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
296
+ dgenerate_ultralytics_headless-8.3.245.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
297
+ dgenerate_ultralytics_headless-8.3.245.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
298
+ dgenerate_ultralytics_headless-8.3.245.dist-info/RECORD,,
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.244"
3
+ __version__ = "8.3.245"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -1078,9 +1078,9 @@ class RTDETRDecoder(nn.Module):
1078
1078
  enc_outputs_scores = self.enc_score_head(features) # (bs, h*w, nc)
1079
1079
 
1080
1080
  # Query selection
1081
- # (bs, num_queries)
1081
+ # (bs*num_queries,)
1082
1082
  topk_ind = torch.topk(enc_outputs_scores.max(-1).values, self.num_queries, dim=1).indices.view(-1)
1083
- # (bs, num_queries)
1083
+ # (bs*num_queries,)
1084
1084
  batch_ind = torch.arange(end=bs, dtype=topk_ind.dtype).unsqueeze(-1).repeat(1, self.num_queries).view(-1)
1085
1085
 
1086
1086
  # (bs, num_queries, 256)
@@ -147,7 +147,7 @@ def multi_scale_deformable_attn_pytorch(
147
147
  sampling_value_list.append(sampling_value_l_)
148
148
  # (bs, num_queries, num_heads, num_levels, num_points) ->
149
149
  # (bs, num_heads, num_queries, num_levels, num_points) ->
150
- # (bs, num_heads, 1, num_queries, num_levels*num_points)
150
+ # (bs*num_heads, 1, num_queries, num_levels*num_points)
151
151
  attention_weights = attention_weights.transpose(1, 2).reshape(
152
152
  bs * num_heads, 1, num_queries, num_levels * num_points
153
153
  )
@@ -90,11 +90,18 @@ def _upload_model_async(model_path, project, name):
90
90
 
91
91
  def _get_environment_info():
92
92
  """Collect comprehensive environment info using existing ultralytics utilities."""
93
+ import shutil
94
+
95
+ import psutil
93
96
  import torch
94
97
 
95
98
  from ultralytics import __version__
96
99
  from ultralytics.utils.torch_utils import get_cpu_info, get_gpu_info
97
100
 
101
+ # Get RAM and disk totals
102
+ memory = psutil.virtual_memory()
103
+ disk_usage = shutil.disk_usage("/")
104
+
98
105
  env = {
99
106
  "ultralyticsVersion": __version__,
100
107
  "hostname": socket.gethostname(),
@@ -105,6 +112,8 @@ def _get_environment_info():
105
112
  "cpuCount": os.cpu_count() or 0,
106
113
  "cpu": get_cpu_info(),
107
114
  "command": " ".join(sys.argv),
115
+ "totalRamGb": round(memory.total / (1 << 30), 1), # Total RAM in GB
116
+ "totalDiskGb": round(disk_usage.total / (1 << 30), 1), # Total disk in GB
108
117
  }
109
118
 
110
119
  # Git info using cached GIT singleton (no subprocess calls)
@@ -258,7 +267,9 @@ def on_train_end(trainer):
258
267
 
259
268
  # Upload best model (blocking to ensure it completes)
260
269
  model_path = None
270
+ model_size = None
261
271
  if trainer.best and Path(trainer.best).exists():
272
+ model_size = Path(trainer.best).stat().st_size
262
273
  model_path = _upload_model(trainer.best, project, name)
263
274
 
264
275
  # Send training complete
@@ -270,6 +281,7 @@ def on_train_end(trainer):
270
281
  "bestEpoch": getattr(trainer, "best_epoch", trainer.epoch),
271
282
  "bestFitness": trainer.best_fitness,
272
283
  "modelPath": model_path or str(trainer.best) if trainer.best else None,
284
+ "modelSize": model_size,
273
285
  }
274
286
  },
275
287
  project,