dataeval 0.86.6__py3-none-any.whl → 0.86.7__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.
- dataeval/__init__.py +1 -1
- dataeval/data/_metadata.py +13 -10
- dataeval/metrics/stats/_dimensionstats.py +2 -3
- {dataeval-0.86.6.dist-info → dataeval-0.86.7.dist-info}/METADATA +1 -1
- {dataeval-0.86.6.dist-info → dataeval-0.86.7.dist-info}/RECORD +7 -7
- {dataeval-0.86.6.dist-info → dataeval-0.86.7.dist-info}/LICENSE.txt +0 -0
- {dataeval-0.86.6.dist-info → dataeval-0.86.7.dist-info}/WHEEL +0 -0
dataeval/__init__.py
CHANGED
dataeval/data/_metadata.py
CHANGED
@@ -234,14 +234,17 @@ class Metadata:
|
|
234
234
|
if is_od_target := isinstance(target, ObjectDetectionTarget):
|
235
235
|
target_labels = as_numpy(target.labels)
|
236
236
|
target_len = len(target_labels)
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
237
|
+
if target_len:
|
238
|
+
labels.extend(target_labels.tolist())
|
239
|
+
bboxes.extend(as_numpy(target.boxes).tolist())
|
240
|
+
scores.extend(as_numpy(target.scores).tolist())
|
241
|
+
srcidx.extend([i] * target_len)
|
241
242
|
elif isinstance(target, Array):
|
242
|
-
|
243
|
-
|
244
|
-
|
243
|
+
if len(target):
|
244
|
+
target_len = 1
|
245
|
+
labels.append(int(np.argmax(as_numpy(target))))
|
246
|
+
scores.append(target)
|
247
|
+
srcidx.append(i)
|
245
248
|
else:
|
246
249
|
raise TypeError("Encountered unsupported target type in dataset")
|
247
250
|
|
@@ -252,18 +255,18 @@ class Metadata:
|
|
252
255
|
labels = as_numpy(labels).astype(np.intp)
|
253
256
|
scores = as_numpy(scores).astype(np.float32)
|
254
257
|
bboxes = as_numpy(bboxes).astype(np.float32) if is_od else None
|
255
|
-
srcidx = as_numpy(srcidx).astype(np.intp)
|
258
|
+
srcidx = as_numpy(srcidx).astype(np.intp)
|
256
259
|
|
257
260
|
index2label = self._dataset.metadata.get("index2label", {i: str(i) for i in np.unique(labels)})
|
258
261
|
|
259
|
-
targets_per_image =
|
262
|
+
targets_per_image = np.bincount(srcidx, minlength=len(self._dataset)).tolist() if is_od else None
|
260
263
|
merged = merge(raw, return_dropped=True, ignore_lists=False, targets_per_image=targets_per_image)
|
261
264
|
|
262
265
|
reserved = ["image_index", "class_label", "score", "box"]
|
263
266
|
factor_dict = {f"metadata_{k}" if k in reserved else k: v for k, v in merged[0].items() if k != "_image_index"}
|
264
267
|
|
265
268
|
target_dict = {
|
266
|
-
"image_index": srcidx
|
269
|
+
"image_index": srcidx,
|
267
270
|
"class_label": labels,
|
268
271
|
"score": scores,
|
269
272
|
"box": bboxes if bboxes is not None else [None] * len(labels),
|
@@ -6,7 +6,6 @@ from typing import Any, Callable
|
|
6
6
|
|
7
7
|
import numpy as np
|
8
8
|
|
9
|
-
from dataeval.config import EPSILON
|
10
9
|
from dataeval.metrics.stats._base import StatsProcessor, run_stats
|
11
10
|
from dataeval.outputs import DimensionStatsOutput
|
12
11
|
from dataeval.outputs._base import set_metadata
|
@@ -23,8 +22,8 @@ class DimensionStatsProcessor(StatsProcessor[DimensionStatsOutput]):
|
|
23
22
|
"height": lambda x: x.box.height,
|
24
23
|
"channels": lambda x: x.shape[-3],
|
25
24
|
"size": lambda x: x.box.width * x.box.height,
|
26
|
-
"aspect_ratio": lambda x: x.box.width /
|
27
|
-
"depth": lambda x: get_bitdepth(x.
|
25
|
+
"aspect_ratio": lambda x: 0.0 if x.box.height == 0 else x.box.width / x.box.height,
|
26
|
+
"depth": lambda x: get_bitdepth(x.raw).depth,
|
28
27
|
"center": lambda x: np.asarray([(x.box.x0 + x.box.x1) / 2, (x.box.y0 + x.box.y1) / 2]),
|
29
28
|
"distance_center": lambda x: np.sqrt(
|
30
29
|
np.square(((x.box.x0 + x.box.x1) / 2) - (x.raw.shape[-1] / 2))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dataeval
|
3
|
-
Version: 0.86.
|
3
|
+
Version: 0.86.7
|
4
4
|
Summary: DataEval provides a simple interface to characterize image data and its impact on model performance across classification and object-detection tasks
|
5
5
|
Home-page: https://dataeval.ai/
|
6
6
|
License: MIT
|
@@ -1,10 +1,10 @@
|
|
1
|
-
dataeval/__init__.py,sha256=
|
1
|
+
dataeval/__init__.py,sha256=P6WvVjHlE2nH57bXBR4A9ez6R32OQGm9bshYrxRKwFw,1636
|
2
2
|
dataeval/_log.py,sha256=C7AGkIRzymvYJ0LQXtnShiy3i5Xrp8T58JzIHHguk_Q,365
|
3
3
|
dataeval/config.py,sha256=bHa8np4FCtLLv8_xlfdDC4lb1InJ_kT0vXDO5P42rvk,4082
|
4
4
|
dataeval/data/__init__.py,sha256=wzQ6uUFLNB3VJR0a2QnRBYwEmwXT93q0WpHu7FmFW1E,486
|
5
5
|
dataeval/data/_embeddings.py,sha256=PFjpdV9bfusCB4taTIYSzx1hP8nJb_KCkZTN8kMw-Hs,12885
|
6
6
|
dataeval/data/_images.py,sha256=Rc_59CuU4zfN7Xm7an1XUx8ZghQg6a56VJWMZD9edRw,2654
|
7
|
-
dataeval/data/_metadata.py,sha256=
|
7
|
+
dataeval/data/_metadata.py,sha256=3aixstlgcAZXC0qNjwDlxjscC3IX1xjPt_FK0liRqoo,14423
|
8
8
|
dataeval/data/_selection.py,sha256=r06xeiyK8nTWPLyItkoPQRWZI1i6LATSue_cuEbCdc4,4463
|
9
9
|
dataeval/data/_split.py,sha256=nQABR05vxil2Qx7-uX4Fm0_DWpibskBGDJOYj_b1u3I,16737
|
10
10
|
dataeval/data/selections/__init__.py,sha256=2m8ZB53wXzqLcqmc6p5atO6graB6ZyiRSNJFxf11X_g,613
|
@@ -56,7 +56,7 @@ dataeval/metrics/estimators/_uap.py,sha256=BULEBbJ9BQ1IcTeZf0x7iI60QHAWCccBOM97F
|
|
56
56
|
dataeval/metrics/stats/__init__.py,sha256=6tA_9nbbM5ObJ6cds8Y1VBtTQiTOxrpGQSFLu_lWGGA,1098
|
57
57
|
dataeval/metrics/stats/_base.py,sha256=R-hxoEPLreZcxYxBfyjbKfdoGMMTPiqJ5g2zSO-1UYM,12541
|
58
58
|
dataeval/metrics/stats/_boxratiostats.py,sha256=ROZrlqgbowkGfCR5PJ5TL7Og40iMOdUqJnsCtaz_Xek,6450
|
59
|
-
dataeval/metrics/stats/_dimensionstats.py,sha256=
|
59
|
+
dataeval/metrics/stats/_dimensionstats.py,sha256=s2Juca8GG501nZd2SWL_YtXWkTfxUrUIAl53PO3_VeA,2876
|
60
60
|
dataeval/metrics/stats/_hashstats.py,sha256=qa1CYRgOebkxqkALfffaPM-kJ074ZbyfpWbfOfuObSs,4758
|
61
61
|
dataeval/metrics/stats/_imagestats.py,sha256=gUPNgN5Zwzdr7WnSwbve1NXNsyxd5dy3cSnlR_7guCg,3007
|
62
62
|
dataeval/metrics/stats/_labelstats.py,sha256=_dXt3p8_-SHEtHvJWbL0rnQvO2g30zxX42mG2LGJepU,3195
|
@@ -107,7 +107,7 @@ dataeval/utils/torch/models.py,sha256=1idpXyjrYcCBSsbxxRUOto8xr4MJNjDEqQHiIXVU5Z
|
|
107
107
|
dataeval/utils/torch/trainer.py,sha256=Oc2lK13uPGhmLYbmAqlPWyKxgG4YJFlnSXCqFHUZbdA,5528
|
108
108
|
dataeval/workflows/__init__.py,sha256=ou8y0KO-d6W5lgmcyLjKlf-J_ckP3vilW7wHkgiDlZ4,255
|
109
109
|
dataeval/workflows/sufficiency.py,sha256=j-R8dg4XE6a66p_oTXG2GNzgg3vGk85CTblxhFXaxog,8513
|
110
|
-
dataeval-0.86.
|
111
|
-
dataeval-0.86.
|
112
|
-
dataeval-0.86.
|
113
|
-
dataeval-0.86.
|
110
|
+
dataeval-0.86.7.dist-info/LICENSE.txt,sha256=uAooygKWvX6NbU9Ran9oG2msttoG8aeTeHSTe5JeCnY,1061
|
111
|
+
dataeval-0.86.7.dist-info/METADATA,sha256=7FTgPB4Yj2zF7z2B6IIRe9WFc9VCBqrcFEIf5ByVHdw,5353
|
112
|
+
dataeval-0.86.7.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
113
|
+
dataeval-0.86.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|