dataeval 0.75.0__py3-none-any.whl → 0.76.0__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 +3 -3
- dataeval/detectors/drift/base.py +2 -2
- dataeval/detectors/drift/ks.py +2 -1
- dataeval/detectors/drift/mmd.py +3 -2
- dataeval/detectors/drift/uncertainty.py +2 -2
- dataeval/detectors/drift/updates.py +1 -1
- dataeval/detectors/linters/clusterer.py +3 -2
- dataeval/detectors/linters/duplicates.py +4 -4
- dataeval/detectors/linters/outliers.py +96 -3
- dataeval/detectors/ood/__init__.py +1 -1
- dataeval/detectors/ood/base.py +1 -17
- dataeval/detectors/ood/output.py +1 -1
- dataeval/interop.py +1 -1
- dataeval/metrics/__init__.py +1 -1
- dataeval/metrics/bias/__init__.py +1 -1
- dataeval/metrics/bias/balance.py +3 -3
- dataeval/metrics/bias/coverage.py +1 -1
- dataeval/metrics/bias/diversity.py +14 -10
- dataeval/metrics/bias/parity.py +5 -5
- dataeval/metrics/estimators/ber.py +4 -3
- dataeval/metrics/estimators/divergence.py +3 -3
- dataeval/metrics/estimators/uap.py +3 -3
- dataeval/metrics/stats/__init__.py +1 -1
- dataeval/metrics/stats/base.py +24 -8
- dataeval/metrics/stats/boxratiostats.py +5 -5
- dataeval/metrics/stats/datasetstats.py +39 -6
- dataeval/metrics/stats/dimensionstats.py +4 -4
- dataeval/metrics/stats/hashstats.py +2 -2
- dataeval/metrics/stats/labelstats.py +89 -6
- dataeval/metrics/stats/pixelstats.py +7 -5
- dataeval/metrics/stats/visualstats.py +6 -4
- dataeval/output.py +23 -14
- dataeval/utils/__init__.py +2 -2
- dataeval/utils/dataset/read.py +1 -1
- dataeval/utils/dataset/split.py +1 -1
- dataeval/utils/metadata.py +42 -44
- dataeval/utils/plot.py +129 -6
- dataeval/workflows/sufficiency.py +2 -2
- {dataeval-0.75.0.dist-info → dataeval-0.76.0.dist-info}/LICENSE.txt +2 -2
- {dataeval-0.75.0.dist-info → dataeval-0.76.0.dist-info}/METADATA +18 -17
- dataeval-0.76.0.dist-info/RECORD +67 -0
- dataeval-0.75.0.dist-info/RECORD +0 -67
- {dataeval-0.75.0.dist-info → dataeval-0.76.0.dist-info}/WHEEL +0 -0
dataeval/utils/plot.py
CHANGED
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
3
3
|
__all__ = []
|
4
4
|
|
5
5
|
import contextlib
|
6
|
+
from typing import Any
|
6
7
|
|
7
8
|
import numpy as np
|
8
9
|
from numpy.typing import ArrayLike
|
@@ -70,12 +71,17 @@ def heatmap(
|
|
70
71
|
# Rotate the tick labels and set their alignment.
|
71
72
|
plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor")
|
72
73
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
74
|
+
light_gray = "0.9"
|
75
|
+
# Turn spines on and create light gray easily visible grid.
|
76
|
+
for spine in ax.spines.values():
|
77
|
+
spine.set_visible(True)
|
78
|
+
spine.set_color(light_gray)
|
79
|
+
|
80
|
+
xticks = np.arange(np_data.shape[1] + 1) - 0.5
|
81
|
+
yticks = np.arange(np_data.shape[0] + 1) - 0.5
|
82
|
+
ax.set_xticks(xticks, minor=True)
|
83
|
+
ax.set_yticks(yticks, minor=True)
|
84
|
+
ax.grid(which="minor", color=light_gray, linestyle="-", linewidth=3)
|
79
85
|
ax.tick_params(which="minor", bottom=False, left=False)
|
80
86
|
|
81
87
|
if xlabel:
|
@@ -124,3 +130,120 @@ def format_text(*args: str) -> str:
|
|
124
130
|
"""
|
125
131
|
x = args[0]
|
126
132
|
return f"{x:.2f}".replace("0.00", "0").replace("0.", ".").replace("nan", "")
|
133
|
+
|
134
|
+
|
135
|
+
def histogram_plot(
|
136
|
+
data_dict: dict[str, Any],
|
137
|
+
log: bool = True,
|
138
|
+
xlabel: str = "values",
|
139
|
+
ylabel: str = "counts",
|
140
|
+
) -> Figure:
|
141
|
+
"""
|
142
|
+
Plots a formatted histogram
|
143
|
+
|
144
|
+
Parameters
|
145
|
+
----------
|
146
|
+
data_dict : dict
|
147
|
+
Dictionary containing the metrics and their value arrays
|
148
|
+
log : bool, default True
|
149
|
+
If True, plots the histogram on a semi-log scale (y axis)
|
150
|
+
xlabel : str, default "values"
|
151
|
+
X-axis label
|
152
|
+
ylabel : str, default "counts"
|
153
|
+
Y-axis label
|
154
|
+
|
155
|
+
Returns
|
156
|
+
-------
|
157
|
+
matplotlib.figure.Figure
|
158
|
+
Formatted plot of histograms
|
159
|
+
"""
|
160
|
+
import matplotlib.pyplot as plt
|
161
|
+
|
162
|
+
num_metrics = len(data_dict)
|
163
|
+
if num_metrics > 2:
|
164
|
+
rows = int(len(data_dict) / 3)
|
165
|
+
fig, axs = plt.subplots(rows, 3, figsize=(10, rows * 2.5))
|
166
|
+
else:
|
167
|
+
fig, axs = plt.subplots(1, num_metrics, figsize=(4 * num_metrics, 4))
|
168
|
+
|
169
|
+
for ax, metric in zip(
|
170
|
+
axs.flat,
|
171
|
+
data_dict,
|
172
|
+
):
|
173
|
+
# Plot the histogram for the chosen metric
|
174
|
+
ax.hist(data_dict[metric], bins=20, log=log)
|
175
|
+
|
176
|
+
# Add labels to the histogram
|
177
|
+
ax.set_title(metric)
|
178
|
+
ax.set_ylabel(ylabel)
|
179
|
+
ax.set_xlabel(xlabel)
|
180
|
+
|
181
|
+
fig.tight_layout()
|
182
|
+
return fig
|
183
|
+
|
184
|
+
|
185
|
+
def channel_histogram_plot(
|
186
|
+
data_dict: dict[str, Any],
|
187
|
+
log: bool = True,
|
188
|
+
max_channels: int = 3,
|
189
|
+
ch_mask: list[bool] | None = None,
|
190
|
+
xlabel: str = "values",
|
191
|
+
ylabel: str = "counts",
|
192
|
+
) -> Figure:
|
193
|
+
"""
|
194
|
+
Plots a formatted heatmap
|
195
|
+
|
196
|
+
Parameters
|
197
|
+
----------
|
198
|
+
data_dict : dict
|
199
|
+
Dictionary containing the metrics and their value arrays
|
200
|
+
log : bool, default True
|
201
|
+
If True, plots the histogram on a semi-log scale (y axis)
|
202
|
+
xlabel : str, default "values"
|
203
|
+
X-axis label
|
204
|
+
ylabel : str, default "counts"
|
205
|
+
Y-axis label
|
206
|
+
|
207
|
+
Returns
|
208
|
+
-------
|
209
|
+
matplotlib.figure.Figure
|
210
|
+
Formatted plot of histograms
|
211
|
+
"""
|
212
|
+
import matplotlib.pyplot as plt
|
213
|
+
|
214
|
+
channelwise_metrics = ["mean", "std", "var", "skew", "zeros", "brightness", "contrast", "darkness", "entropy"]
|
215
|
+
data_keys = [key for key in data_dict if key in channelwise_metrics]
|
216
|
+
label_kwargs = {"label": [f"Channel {i}" for i in range(max_channels)]}
|
217
|
+
|
218
|
+
num_metrics = len(data_keys)
|
219
|
+
if num_metrics > 2:
|
220
|
+
rows = int(len(data_keys) / 3)
|
221
|
+
fig, axs = plt.subplots(rows, 3, figsize=(10, rows * 2.5))
|
222
|
+
else:
|
223
|
+
fig, axs = plt.subplots(1, num_metrics, figsize=(4 * num_metrics, 4))
|
224
|
+
|
225
|
+
for ax, metric in zip(
|
226
|
+
axs.flat,
|
227
|
+
data_keys,
|
228
|
+
):
|
229
|
+
# Plot the histogram for the chosen metric
|
230
|
+
data = data_dict[metric][ch_mask].reshape(-1, max_channels)
|
231
|
+
ax.hist(
|
232
|
+
data,
|
233
|
+
bins=20,
|
234
|
+
density=True,
|
235
|
+
log=log,
|
236
|
+
**label_kwargs,
|
237
|
+
)
|
238
|
+
# Only plot the labels once for channels
|
239
|
+
if label_kwargs:
|
240
|
+
ax.legend()
|
241
|
+
label_kwargs = {}
|
242
|
+
|
243
|
+
# Add labels to the histogram
|
244
|
+
ax.set_title(metric)
|
245
|
+
ax.set_ylabel(ylabel)
|
246
|
+
ax.set_xlabel(xlabel)
|
247
|
+
|
248
|
+
fig.tight_layout()
|
249
|
+
return fig
|
@@ -24,7 +24,7 @@ with contextlib.suppress(ImportError):
|
|
24
24
|
@dataclass(frozen=True)
|
25
25
|
class SufficiencyOutput(Output):
|
26
26
|
"""
|
27
|
-
Output class for :class:`Sufficiency` workflow
|
27
|
+
Output class for :class:`Sufficiency` workflow.
|
28
28
|
|
29
29
|
Attributes
|
30
30
|
----------
|
@@ -378,7 +378,7 @@ T = TypeVar("T")
|
|
378
378
|
|
379
379
|
class Sufficiency(Generic[T]):
|
380
380
|
"""
|
381
|
-
Project dataset :term:`sufficiency<Sufficiency>` using given a model and evaluation criteria
|
381
|
+
Project dataset :term:`sufficiency<Sufficiency>` using given a model and evaluation criteria.
|
382
382
|
|
383
383
|
Parameters
|
384
384
|
----------
|
@@ -1,6 +1,6 @@
|
|
1
1
|
MIT License
|
2
2
|
|
3
|
-
Copyright (c)
|
3
|
+
Copyright (c) 2025 ARiA
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
21
|
+
SOFTWARE.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dataeval
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.76.0
|
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
|
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
|
|
22
22
|
Classifier: Topic :: Scientific/Engineering
|
23
23
|
Provides-Extra: all
|
24
24
|
Requires-Dist: matplotlib ; extra == "all"
|
25
|
-
Requires-Dist: numpy (>=1.24.
|
25
|
+
Requires-Dist: numpy (>=1.24.2)
|
26
26
|
Requires-Dist: pillow (>=10.3.0)
|
27
27
|
Requires-Dist: requests
|
28
28
|
Requires-Dist: scikit-learn (>=1.5.0)
|
@@ -52,7 +52,7 @@ DataEval curates datasets to train and test performant, robust, unbiased and rel
|
|
52
52
|
|
53
53
|
<!-- start needs -->
|
54
54
|
|
55
|
-
DataEval is an effective, powerful, and reliable set of tools for any T&E engineer. Throughout all stages of the machine learning lifecycle, DataEval supports
|
55
|
+
DataEval is an effective, powerful, and reliable set of tools for any T&E engineer. Throughout all stages of the machine learning lifecycle, DataEval supports model development, data analysis, and monitoring with state-of-the-art algorithms to help you solve difficult problems. With a focus on computer vision tasks, DataEval provides simple, but effective metrics for performance estimation, bias detection, and dataset linting.
|
56
56
|
|
57
57
|
<!-- end needs -->
|
58
58
|
|
@@ -74,9 +74,10 @@ Choose your preferred method of installation below or follow our [installation g
|
|
74
74
|
* [Installing from GitHub](#installing-from-github)
|
75
75
|
|
76
76
|
### **Installing with pip**
|
77
|
+
|
77
78
|
You can install DataEval directly from pypi.org using the following command. The optional dependencies of DataEval are `all`.
|
78
79
|
|
79
|
-
```
|
80
|
+
```bash
|
80
81
|
pip install dataeval[all]
|
81
82
|
```
|
82
83
|
|
@@ -85,7 +86,7 @@ pip install dataeval[all]
|
|
85
86
|
DataEval can be installed in a Conda/Mamba environment using the provided `environment.yaml` file. As some dependencies
|
86
87
|
are installed from the `pytorch` channel, the channel is specified in the below example.
|
87
88
|
|
88
|
-
```
|
89
|
+
```bash
|
89
90
|
micromamba create -f environment\environment.yaml -c pytorch
|
90
91
|
```
|
91
92
|
|
@@ -93,24 +94,27 @@ micromamba create -f environment\environment.yaml -c pytorch
|
|
93
94
|
|
94
95
|
To install DataEval from source locally on Ubuntu, you will need `git-lfs` to download larger, binary source files and `poetry` for project dependency management.
|
95
96
|
|
96
|
-
```
|
97
|
+
```bash
|
97
98
|
sudo apt-get install git-lfs
|
98
99
|
pip install poetry
|
99
100
|
```
|
100
101
|
|
101
102
|
Pull the source down and change to the DataEval project directory.
|
102
|
-
|
103
|
+
|
104
|
+
```bash
|
103
105
|
git clone https://github.com/aria-ml/dataeval.git
|
104
106
|
cd dataeval
|
105
107
|
```
|
106
108
|
|
107
109
|
Install DataEval with optional dependencies for development.
|
108
|
-
|
110
|
+
|
111
|
+
```bash
|
109
112
|
poetry install --all-extras --with dev
|
110
113
|
```
|
111
114
|
|
112
115
|
Now that DataEval is installed, you can run commands in the poetry virtual environment by prefixing shell commands with `poetry run`, or activate the virtual environment directly in the shell.
|
113
|
-
|
116
|
+
|
117
|
+
```bash
|
114
118
|
poetry shell
|
115
119
|
```
|
116
120
|
|
@@ -118,19 +122,16 @@ poetry shell
|
|
118
122
|
|
119
123
|
If you have any questions, feel free to reach out to the people below:
|
120
124
|
|
121
|
-
|
122
|
-
|
125
|
+
* **POC**: Scott Swan @scott.swan
|
126
|
+
* **DPOC**: Andrew Weng @aweng
|
123
127
|
|
124
128
|
## Acknowledgement
|
125
129
|
|
126
|
-
<!-- start
|
127
|
-
|
128
|
-
### Alibi-Detect
|
129
|
-
This project uses code from the [Alibi-Detect](https://github.com/SeldonIO/alibi-detect) Python library developed by SeldonIO.\
|
130
|
-
Additional documentation from their developers is available on the [Alibi-Detect documentation page](https://docs.seldon.io/projects/alibi-detect/en/stable/).
|
130
|
+
<!-- start acknowledgement -->
|
131
131
|
|
132
132
|
### CDAO Funding Acknowledgement
|
133
|
+
|
133
134
|
This material is based upon work supported by the Chief Digital and Artificial Intelligence Office under Contract No. W519TC-23-9-2033. The views and conclusions contained herein are those of the author(s) and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the U.S. Government.
|
134
135
|
|
135
|
-
<!-- end
|
136
|
+
<!-- end acknowledgement -->
|
136
137
|
|
@@ -0,0 +1,67 @@
|
|
1
|
+
dataeval/__init__.py,sha256=TSINwIPlGIGiYd66kY8gnBnEpBhcgWm7_029htFBgv8,1474
|
2
|
+
dataeval/detectors/__init__.py,sha256=iifG-Z08mH5B4QhkKtAieDGJBKldKvmCXpDQJD9qVY8,206
|
3
|
+
dataeval/detectors/drift/__init__.py,sha256=wO294Oz--l0GuZTAkBpyGwZphbQsot57HoiEX6kjNOc,652
|
4
|
+
dataeval/detectors/drift/base.py,sha256=8zHUnUpmgpWMzDv5C-tUX61lbpDjhJ-eAIiNxaNvWP8,14469
|
5
|
+
dataeval/detectors/drift/cvm.py,sha256=TATS6IOE0INO1pkyRkesgrhDawD_kITsRsOOGVRs420,4132
|
6
|
+
dataeval/detectors/drift/ks.py,sha256=SAd2T9CdytXD7DegCzAX1pWYJdPuttyL97KAQYF4j7Y,4265
|
7
|
+
dataeval/detectors/drift/mmd.py,sha256=z7JPFbW4fmHJhR-Qe1OQ4mM8kW6dNxnd3uHD9oXMETE,7599
|
8
|
+
dataeval/detectors/drift/torch.py,sha256=ykD-Nggys5T9FTGXXbYYOi2WRKwEzEjXhL8ZueVmTxU,7659
|
9
|
+
dataeval/detectors/drift/uncertainty.py,sha256=zkrqz5euJJtYFKsDiRqFfTnDjVOTbqpZWgZiGMrYxvI,5351
|
10
|
+
dataeval/detectors/drift/updates.py,sha256=nKsF4xrMFZd2X84GJ5XnGylUuketX_RcH7UpcdlonIo,1781
|
11
|
+
dataeval/detectors/linters/__init__.py,sha256=CZV5naeYQYL3sHXO_CXB26AXkyTeKHI-TMaewtEs8Ag,483
|
12
|
+
dataeval/detectors/linters/clusterer.py,sha256=V-bNs4ut2E6SIqU4MR1Y96WBZcs4cavQhvXBB0vFZPw,20937
|
13
|
+
dataeval/detectors/linters/duplicates.py,sha256=Ba-Nmbjqg_HDMlEBqlWW1aFO_BA-HSc-uWHc3cmI394,5620
|
14
|
+
dataeval/detectors/linters/merged_stats.py,sha256=X-bDTwjyR8RuVmzxLaHZmQ5nI3oOWvsqVlitdSncapk,1355
|
15
|
+
dataeval/detectors/linters/outliers.py,sha256=aGGGOJKs0FTObQtj1m-ench0MHADOhrhC8idf1wRB0s,13786
|
16
|
+
dataeval/detectors/ood/__init__.py,sha256=Ws6_un4pFWNknki7Bp7qjrslZVB9pYNE-K72u2lF65k,291
|
17
|
+
dataeval/detectors/ood/ae.py,sha256=SL8oKTERhMwaZTQWwDhQQ6H07UKj8ozXqEWO3TaOAos,2151
|
18
|
+
dataeval/detectors/ood/base.py,sha256=-ApcC9lyZJAgk-joMpLXF20sJqtvlAugg-W18TcAsEw,3010
|
19
|
+
dataeval/detectors/ood/metadata_ks_compare.py,sha256=-hEhDNXFC7X8wmFeoigO7A7Qn90vRLroN_nKDwNgjnE,5204
|
20
|
+
dataeval/detectors/ood/metadata_least_likely.py,sha256=rb8GOgsrlrEzc6fxccdmyZQ5PC7HtTsTY8U97D-h5OU,5088
|
21
|
+
dataeval/detectors/ood/metadata_ood_mi.py,sha256=7_Sdzf7-x1TlrIQvSyOIB98C8_UQhUwmwFQmZ9_q1Uc,4042
|
22
|
+
dataeval/detectors/ood/mixin.py,sha256=Ia-rJF6rtGhE8uavijdbzOha3ueFk2CFfA0Ah_mnF40,4976
|
23
|
+
dataeval/detectors/ood/output.py,sha256=yygnsjaIQB6v6sXh7glqX2aoqWdf3_YLINqx7BGKMtk,1710
|
24
|
+
dataeval/interop.py,sha256=P9Kwe-vOVgbn1ng60y4giCnJYmHjIOpyGpccuIA7P1g,2322
|
25
|
+
dataeval/log.py,sha256=Mn5bRWO0cgtAYd5VGYSFiPgu57ta3zoktrtHAZ1m3dU,357
|
26
|
+
dataeval/metrics/__init__.py,sha256=OMntcHmmrsOfIlRsJTZQQaF5qXEuP61Li-ElKy7Ysbk,240
|
27
|
+
dataeval/metrics/bias/__init__.py,sha256=SIg4Qxza9BqXyKNQLIY0bpqoFvZfK5-GaejpTH6efVc,601
|
28
|
+
dataeval/metrics/bias/balance.py,sha256=B1sPackyodiBct9Hs88BR4nJde_R61JyjwSBIG_CFug,9171
|
29
|
+
dataeval/metrics/bias/coverage.py,sha256=igVDWJSrO2MvaTEiDUhVzVWPGNB1QOZvngCi8UF0RwA,5746
|
30
|
+
dataeval/metrics/bias/diversity.py,sha256=nF1y2FaQIU0yHQtckoddjqoty2hsVVMqwaXWHRdGfqA,8521
|
31
|
+
dataeval/metrics/bias/parity.py,sha256=rzi7Z0Z6injCaj2vkbSsZvbKMfk1EN648oKinv5y5Dk,12760
|
32
|
+
dataeval/metrics/estimators/__init__.py,sha256=oY_9jX7V-Kg7-4KpvMNB4rUhsk8QTA0DIoM8d2VtVIg,380
|
33
|
+
dataeval/metrics/estimators/ber.py,sha256=vcndXr0PNLRlYz7u7K74f-B5g3DnUkaTO_WigGdj0cg,5012
|
34
|
+
dataeval/metrics/estimators/divergence.py,sha256=joqqlH0AQFibJkHCCb7i7dMJIGF28fmZIR-tGupQQJQ,4247
|
35
|
+
dataeval/metrics/estimators/uap.py,sha256=ZAQUjJCbdulftWk6yjILCbnXGOE8RuDqEINZRtMW3tc,2143
|
36
|
+
dataeval/metrics/stats/__init__.py,sha256=pUT84sOxDiCHW6xz6Ml1Mf1bFszQrtd3qPG0Ja3boxA,1088
|
37
|
+
dataeval/metrics/stats/base.py,sha256=1ejjwlA0FmllcAw7J9Yv1r7GMmBYKvuGPzmDk9ktASM,12613
|
38
|
+
dataeval/metrics/stats/boxratiostats.py,sha256=PS1wvWwhTCMJX56erfPW-BZymXrevvXnKl2PkE0qmLk,6315
|
39
|
+
dataeval/metrics/stats/datasetstats.py,sha256=mt5t5WhlVI7mo56dmhqgnk1eH8oBV7dahgmqkFDcKo0,7387
|
40
|
+
dataeval/metrics/stats/dimensionstats.py,sha256=AlPor23dUH718jFNiVNedHQVaQzN-6OKQEVDQbnGE50,4027
|
41
|
+
dataeval/metrics/stats/hashstats.py,sha256=5nNSJ3Tl8gPqpYlWpxl7EHfW6pJd1BtbXYUiuGgH4Eo,5070
|
42
|
+
dataeval/metrics/stats/labelstats.py,sha256=v9EAg-9h0OtuoU0r3K5TJbHj87fjmnWnNdtg0EPp8co,7030
|
43
|
+
dataeval/metrics/stats/pixelstats.py,sha256=tfvu0tYPgDS0jCCSY2sZ2Ice5r1nNuKx-LYXxZQCw7s,4220
|
44
|
+
dataeval/metrics/stats/visualstats.py,sha256=pEQnAPFg-zQ1U5orwF0-U7kfHuZGjMJDsdEMAoDZd4I,4634
|
45
|
+
dataeval/output.py,sha256=Dyfv1xlrwSbCe7HdDyq8t-kiIRJbBeaMEmMROr1FrVQ,4034
|
46
|
+
dataeval/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
+
dataeval/utils/__init__.py,sha256=WW9e_1RbtkvLDRqu1NpDw3-V4su4mA8yJ_P3bgd_7Ho,283
|
48
|
+
dataeval/utils/dataset/__init__.py,sha256=IvRauQaa0CzJ5nZrfTSjGoaaKelyJcQDe3OPRw0-NXs,332
|
49
|
+
dataeval/utils/dataset/datasets.py,sha256=7tSqN3d8UncqmXh4eiEwarXgVxc4sMuIKPTqBCE0pN8,15080
|
50
|
+
dataeval/utils/dataset/read.py,sha256=Q_RaNTFXhkMsx3PrgJEIySdHAA-QxGuih6eq6mnJv-4,1524
|
51
|
+
dataeval/utils/dataset/split.py,sha256=1vNy5I1zZx-LIf8B0y57dUaO_UdVd1hyJggUANkwNtM,18958
|
52
|
+
dataeval/utils/image.py,sha256=AQljELyMFkYsf2AoNOH5dZG8DYE4hPw0MCk85eIXqAw,1926
|
53
|
+
dataeval/utils/metadata.py,sha256=SjYPXvM7x_3OyQbdfn4WsViqMplEjRxTdz8tjSJEP3E,22497
|
54
|
+
dataeval/utils/plot.py,sha256=YyFL1KoJgnl2Bip7m73WVBJa6zbsBnn5c1b3skFfUrA,7068
|
55
|
+
dataeval/utils/shared.py,sha256=xvF3VLfyheVwJtdtDrneOobkKf7t-JTmf_w91FWXmqo,3616
|
56
|
+
dataeval/utils/torch/__init__.py,sha256=dn5mjCrFp0b1aL_UEURhONU0Ag0cmXoTOBSGagpkTiA,325
|
57
|
+
dataeval/utils/torch/blocks.py,sha256=HVhBTMMD5NA4qheMUgyol1KWiKZDIuc8k5j4RcMKmhk,1466
|
58
|
+
dataeval/utils/torch/gmm.py,sha256=fQ8CBO4Bf6i9N1CZdeJ8VJP25fsPjgMextQkondwgvo,3693
|
59
|
+
dataeval/utils/torch/internal.py,sha256=qAzQTwTI9Qy6f01Olw3d1TIJ4HoWGf0gQzgWVcdD2x4,6653
|
60
|
+
dataeval/utils/torch/models.py,sha256=Df3B_9x5uu-Y5ZOyhRZYpKJnDvxt0hgMeJLy1E4oxpU,8519
|
61
|
+
dataeval/utils/torch/trainer.py,sha256=Qay0LK63RuyoGYiJ5zI2C5BVym309ORvp6shhpcrIU4,5589
|
62
|
+
dataeval/workflows/__init__.py,sha256=L9yfBipNFGnYuN2JbMknIHDvziwfa2XAGFnOwifZbls,216
|
63
|
+
dataeval/workflows/sufficiency.py,sha256=jf53J1PAlfRHSjGpMCWRJzImitLtCQvTMCaMm28ZuPM,18675
|
64
|
+
dataeval-0.76.0.dist-info/LICENSE.txt,sha256=uAooygKWvX6NbU9Ran9oG2msttoG8aeTeHSTe5JeCnY,1061
|
65
|
+
dataeval-0.76.0.dist-info/METADATA,sha256=zk12Bkp0R6Glx-VSrG7ip45aTU4y6i_P_mPw2c_SQ6w,5140
|
66
|
+
dataeval-0.76.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
67
|
+
dataeval-0.76.0.dist-info/RECORD,,
|
dataeval-0.75.0.dist-info/RECORD
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
dataeval/__init__.py,sha256=yESctPswyAJ01Hr9k4QUoGZp8D0RtvoQ26k4AFE2vs4,1472
|
2
|
-
dataeval/detectors/__init__.py,sha256=iifG-Z08mH5B4QhkKtAieDGJBKldKvmCXpDQJD9qVY8,206
|
3
|
-
dataeval/detectors/drift/__init__.py,sha256=wO294Oz--l0GuZTAkBpyGwZphbQsot57HoiEX6kjNOc,652
|
4
|
-
dataeval/detectors/drift/base.py,sha256=sX46grnr4DV0WMofLTI2a_tDHR4OLZEUCQrMLePouqg,14468
|
5
|
-
dataeval/detectors/drift/cvm.py,sha256=TATS6IOE0INO1pkyRkesgrhDawD_kITsRsOOGVRs420,4132
|
6
|
-
dataeval/detectors/drift/ks.py,sha256=3Jgh5W7pC1hO1yZPCiXc47snlSdXv5BIG8sCyRRz-Ec,4220
|
7
|
-
dataeval/detectors/drift/mmd.py,sha256=lD__AouWlYWCJOD0eNNEhmLTnUPwNTBU6OCgITcpw40,7592
|
8
|
-
dataeval/detectors/drift/torch.py,sha256=ykD-Nggys5T9FTGXXbYYOi2WRKwEzEjXhL8ZueVmTxU,7659
|
9
|
-
dataeval/detectors/drift/uncertainty.py,sha256=Pdim80_-ainvOX5-7fhH9cvblYI2d-zocEwZO-JfCg4,5345
|
10
|
-
dataeval/detectors/drift/updates.py,sha256=UJ0z5hlunRi7twnkLABfdJG3tT2EqX4y9IGx8_USYvo,1780
|
11
|
-
dataeval/detectors/linters/__init__.py,sha256=CZV5naeYQYL3sHXO_CXB26AXkyTeKHI-TMaewtEs8Ag,483
|
12
|
-
dataeval/detectors/linters/clusterer.py,sha256=1qIQo5NuJkx-phKFWuXkUpUJLcqTt92L8Cpv3AmO3xQ,20929
|
13
|
-
dataeval/detectors/linters/duplicates.py,sha256=pcCRN27IuGa6ASkiFG73kYdI8_X0j12INbkD9GOlWPs,5614
|
14
|
-
dataeval/detectors/linters/merged_stats.py,sha256=X-bDTwjyR8RuVmzxLaHZmQ5nI3oOWvsqVlitdSncapk,1355
|
15
|
-
dataeval/detectors/linters/outliers.py,sha256=Fn6R_7mGOrWlTRCXFrjHvIFNELN6CTosoJgzDr8cVr0,10253
|
16
|
-
dataeval/detectors/ood/__init__.py,sha256=hTeR-Aqt6SKWsqFusaKiw_TlnFPe_sV3fQ7NKUTzZrU,292
|
17
|
-
dataeval/detectors/ood/ae.py,sha256=SL8oKTERhMwaZTQWwDhQQ6H07UKj8ozXqEWO3TaOAos,2151
|
18
|
-
dataeval/detectors/ood/base.py,sha256=6gUkbGE6PbKmA899rXOTOIeT8u_gaD0DNDQV8Wyfk5Y,3421
|
19
|
-
dataeval/detectors/ood/metadata_ks_compare.py,sha256=-hEhDNXFC7X8wmFeoigO7A7Qn90vRLroN_nKDwNgjnE,5204
|
20
|
-
dataeval/detectors/ood/metadata_least_likely.py,sha256=rb8GOgsrlrEzc6fxccdmyZQ5PC7HtTsTY8U97D-h5OU,5088
|
21
|
-
dataeval/detectors/ood/metadata_ood_mi.py,sha256=7_Sdzf7-x1TlrIQvSyOIB98C8_UQhUwmwFQmZ9_q1Uc,4042
|
22
|
-
dataeval/detectors/ood/mixin.py,sha256=Ia-rJF6rtGhE8uavijdbzOha3ueFk2CFfA0Ah_mnF40,4976
|
23
|
-
dataeval/detectors/ood/output.py,sha256=8UQbtudQ0gSeq_hQV67IE5SfHednaiGUHv9MideETdk,1710
|
24
|
-
dataeval/interop.py,sha256=GLziERWQQGwUO4Nb-uHpbLlvBOT2WF2GVilTHmsDq8w,2279
|
25
|
-
dataeval/log.py,sha256=Mn5bRWO0cgtAYd5VGYSFiPgu57ta3zoktrtHAZ1m3dU,357
|
26
|
-
dataeval/metrics/__init__.py,sha256=p-lRjm0oVHD3cXZeEajTfuGTuQOCCVHbJ8CqAI_GHVY,238
|
27
|
-
dataeval/metrics/bias/__init__.py,sha256=knYgCdeHredaHI6KGdjiYM6ViPfDf8NW35xkKiiGlVM,599
|
28
|
-
dataeval/metrics/bias/balance.py,sha256=od3gcejOqJDDymy09OWSxzqkBNyh7Vf3aXN9o6IPKHY,9151
|
29
|
-
dataeval/metrics/bias/coverage.py,sha256=k8TJAsUWlLgn_-JEtRWIOwhtMRwXmyGzLDndGxNTsAU,5745
|
30
|
-
dataeval/metrics/bias/diversity.py,sha256=upj-Gx_4-bBF-4dDaUSuURIbP98Ghk-BSCK5ZJNGMEg,8318
|
31
|
-
dataeval/metrics/bias/parity.py,sha256=wVMfzKFqzHkp3SNUJFjRH_Eej9DIg-xAhHkShIAek68,12755
|
32
|
-
dataeval/metrics/estimators/__init__.py,sha256=oY_9jX7V-Kg7-4KpvMNB4rUhsk8QTA0DIoM8d2VtVIg,380
|
33
|
-
dataeval/metrics/estimators/ber.py,sha256=p3KaY-rnK45CUDaqx-55wWG6yHcDnH6Kkkt9r6FkmZY,5003
|
34
|
-
dataeval/metrics/estimators/divergence.py,sha256=QYkOs7In9un0tYHztwZ5kNqiWVNS3Lgmxn1716H8HG4,4243
|
35
|
-
dataeval/metrics/estimators/uap.py,sha256=ELa5MixMOJZoW5rUuVLOXynfLMbVjxb-r7VYF5qqXrw,2139
|
36
|
-
dataeval/metrics/stats/__init__.py,sha256=Js_mklHJbHwOXJtMFo9NIyePZLwLZL-jruwmcjoLsZc,1086
|
37
|
-
dataeval/metrics/stats/base.py,sha256=U0yPaRSHuPGZk3A7hl8ghJCki7iBtW5wM1eZvElu1_w,12038
|
38
|
-
dataeval/metrics/stats/boxratiostats.py,sha256=fNzHT_nZX0MYeHkWRdcfEz2mtRC2d1JxpoK3l4EBrQc,6301
|
39
|
-
dataeval/metrics/stats/datasetstats.py,sha256=krOm48yjyzYOWKLaWFqHAQPmuhiN4manif7ZXh2Ohhg,5828
|
40
|
-
dataeval/metrics/stats/dimensionstats.py,sha256=_mN7wHencHh4UNd9XUflhq0sIa9yLPk3yHqmossDEGk,3985
|
41
|
-
dataeval/metrics/stats/hashstats.py,sha256=_zZOwnQDlpMoPyqbOV2v9V_Uqox0c4vX2Khv5u_fAk8,5068
|
42
|
-
dataeval/metrics/stats/labelstats.py,sha256=mLH02Xy_uT-qN7HXuXEgs786T2Xr0BMudweBDeEWd5I,4065
|
43
|
-
dataeval/metrics/stats/pixelstats.py,sha256=t8abfenA79x87CMqPuKtddglD3l_LA6nXS4K_FlL4-k,4148
|
44
|
-
dataeval/metrics/stats/visualstats.py,sha256=UU0oa5BWuIOTDM1H1ZnlhYyu8ruVEnaLPCDOsbm-q1c,4546
|
45
|
-
dataeval/output.py,sha256=hR5TJ67f7FgrZO9Du46aw-jvRpMjOimSgJSau4ZNK44,3565
|
46
|
-
dataeval/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
-
dataeval/utils/__init__.py,sha256=fBpXVWzNaXySTuZWsD8Jg9LLHzb23nz_PfdxPD_gc8c,279
|
48
|
-
dataeval/utils/dataset/__init__.py,sha256=IvRauQaa0CzJ5nZrfTSjGoaaKelyJcQDe3OPRw0-NXs,332
|
49
|
-
dataeval/utils/dataset/datasets.py,sha256=7tSqN3d8UncqmXh4eiEwarXgVxc4sMuIKPTqBCE0pN8,15080
|
50
|
-
dataeval/utils/dataset/read.py,sha256=tt-9blXzYLRb4Vgv6DrFj2ikUSvBF0-qTSnvvYec_2U,1523
|
51
|
-
dataeval/utils/dataset/split.py,sha256=FpxHxmewjqIj6hikCsamNQTq877qu4HfKnzArOyvmyY,18957
|
52
|
-
dataeval/utils/image.py,sha256=AQljELyMFkYsf2AoNOH5dZG8DYE4hPw0MCk85eIXqAw,1926
|
53
|
-
dataeval/utils/metadata.py,sha256=mhMhBgb7nAIIljDdecOqiZ1zsYagE6h8DKxE_DFDW-E,22270
|
54
|
-
dataeval/utils/plot.py,sha256=jQSiqDArFOlKZaIbv4Viso_ShU3LnZE-Y2qXKuKsa8M,3790
|
55
|
-
dataeval/utils/shared.py,sha256=xvF3VLfyheVwJtdtDrneOobkKf7t-JTmf_w91FWXmqo,3616
|
56
|
-
dataeval/utils/torch/__init__.py,sha256=dn5mjCrFp0b1aL_UEURhONU0Ag0cmXoTOBSGagpkTiA,325
|
57
|
-
dataeval/utils/torch/blocks.py,sha256=HVhBTMMD5NA4qheMUgyol1KWiKZDIuc8k5j4RcMKmhk,1466
|
58
|
-
dataeval/utils/torch/gmm.py,sha256=fQ8CBO4Bf6i9N1CZdeJ8VJP25fsPjgMextQkondwgvo,3693
|
59
|
-
dataeval/utils/torch/internal.py,sha256=qAzQTwTI9Qy6f01Olw3d1TIJ4HoWGf0gQzgWVcdD2x4,6653
|
60
|
-
dataeval/utils/torch/models.py,sha256=Df3B_9x5uu-Y5ZOyhRZYpKJnDvxt0hgMeJLy1E4oxpU,8519
|
61
|
-
dataeval/utils/torch/trainer.py,sha256=Qay0LK63RuyoGYiJ5zI2C5BVym309ORvp6shhpcrIU4,5589
|
62
|
-
dataeval/workflows/__init__.py,sha256=L9yfBipNFGnYuN2JbMknIHDvziwfa2XAGFnOwifZbls,216
|
63
|
-
dataeval/workflows/sufficiency.py,sha256=nL99iDlu2bF_9VGu3ioLFDJBgBBJEdwEXROxXm_0sfY,18673
|
64
|
-
dataeval-0.75.0.dist-info/LICENSE.txt,sha256=Kpzcfobf1HlqafF-EX6dQLw9TlJiaJzfgvLQFukyXYw,1060
|
65
|
-
dataeval-0.75.0.dist-info/METADATA,sha256=6m2O6vreJR3Lq1_BXEU6DHnK2C5L_q5YAPofIl4kxCw,5410
|
66
|
-
dataeval-0.75.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
67
|
-
dataeval-0.75.0.dist-info/RECORD,,
|
File without changes
|