dataeval 0.72.1__py3-none-any.whl → 0.73.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.
Files changed (95) hide show
  1. dataeval/__init__.py +4 -4
  2. dataeval/detectors/__init__.py +4 -3
  3. dataeval/detectors/drift/__init__.py +9 -10
  4. dataeval/{_internal/detectors → detectors}/drift/base.py +39 -91
  5. dataeval/{_internal/detectors → detectors}/drift/cvm.py +4 -3
  6. dataeval/{_internal/detectors → detectors}/drift/ks.py +4 -3
  7. dataeval/{_internal/detectors → detectors}/drift/mmd.py +23 -25
  8. dataeval/{_internal/detectors → detectors}/drift/torch.py +13 -11
  9. dataeval/{_internal/detectors → detectors}/drift/uncertainty.py +7 -5
  10. dataeval/detectors/drift/updates.py +61 -0
  11. dataeval/detectors/linters/__init__.py +3 -3
  12. dataeval/{_internal/detectors → detectors/linters}/clusterer.py +41 -39
  13. dataeval/{_internal/detectors → detectors/linters}/duplicates.py +19 -9
  14. dataeval/{_internal/detectors → detectors/linters}/merged_stats.py +3 -1
  15. dataeval/{_internal/detectors → detectors/linters}/outliers.py +14 -21
  16. dataeval/detectors/ood/__init__.py +6 -6
  17. dataeval/{_internal/detectors → detectors}/ood/ae.py +20 -12
  18. dataeval/detectors/ood/aegmm.py +66 -0
  19. dataeval/{_internal/detectors → detectors}/ood/base.py +33 -21
  20. dataeval/{_internal/detectors → detectors}/ood/llr.py +43 -33
  21. dataeval/detectors/ood/metadata_ks_compare.py +99 -0
  22. dataeval/detectors/ood/metadata_least_likely.py +119 -0
  23. dataeval/detectors/ood/metadata_ood_mi.py +92 -0
  24. dataeval/{_internal/detectors → detectors}/ood/vae.py +23 -17
  25. dataeval/detectors/ood/vaegmm.py +75 -0
  26. dataeval/interop.py +56 -0
  27. dataeval/metrics/__init__.py +1 -1
  28. dataeval/metrics/bias/__init__.py +4 -4
  29. dataeval/{_internal/metrics → metrics/bias}/balance.py +75 -13
  30. dataeval/{_internal/metrics → metrics/bias}/coverage.py +41 -7
  31. dataeval/{_internal/metrics → metrics/bias}/diversity.py +75 -18
  32. dataeval/metrics/bias/metadata.py +358 -0
  33. dataeval/{_internal/metrics → metrics/bias}/parity.py +54 -44
  34. dataeval/metrics/estimators/__init__.py +3 -3
  35. dataeval/{_internal/metrics → metrics/estimators}/ber.py +25 -22
  36. dataeval/{_internal/metrics → metrics/estimators}/divergence.py +11 -12
  37. dataeval/{_internal/metrics → metrics/estimators}/uap.py +5 -3
  38. dataeval/metrics/stats/__init__.py +7 -7
  39. dataeval/{_internal/metrics → metrics}/stats/base.py +59 -35
  40. dataeval/{_internal/metrics → metrics}/stats/boxratiostats.py +18 -14
  41. dataeval/{_internal/metrics → metrics}/stats/datasetstats.py +18 -16
  42. dataeval/{_internal/metrics → metrics}/stats/dimensionstats.py +9 -7
  43. dataeval/metrics/stats/hashstats.py +156 -0
  44. dataeval/{_internal/metrics → metrics}/stats/labelstats.py +5 -3
  45. dataeval/{_internal/metrics → metrics}/stats/pixelstats.py +9 -8
  46. dataeval/{_internal/metrics → metrics}/stats/visualstats.py +10 -9
  47. dataeval/{_internal/output.py → output.py} +26 -6
  48. dataeval/utils/__init__.py +8 -3
  49. dataeval/utils/image.py +71 -0
  50. dataeval/utils/lazy.py +26 -0
  51. dataeval/utils/metadata.py +258 -0
  52. dataeval/utils/shared.py +151 -0
  53. dataeval/{_internal → utils}/split_dataset.py +98 -33
  54. dataeval/utils/tensorflow/__init__.py +7 -6
  55. dataeval/{_internal/models/tensorflow → utils/tensorflow/_internal}/gmm.py +8 -2
  56. dataeval/{_internal/models/tensorflow/losses.py → utils/tensorflow/_internal/loss.py} +28 -18
  57. dataeval/{_internal/models/tensorflow/pixelcnn.py → utils/tensorflow/_internal/models.py} +387 -97
  58. dataeval/{_internal/models/tensorflow → utils/tensorflow/_internal}/trainer.py +15 -6
  59. dataeval/{_internal/models/tensorflow → utils/tensorflow/_internal}/utils.py +84 -85
  60. dataeval/utils/tensorflow/loss/__init__.py +6 -2
  61. dataeval/utils/torch/__init__.py +7 -3
  62. dataeval/{_internal/models/pytorch → utils/torch}/blocks.py +19 -14
  63. dataeval/{_internal → utils/torch}/datasets.py +48 -42
  64. dataeval/utils/torch/models.py +138 -0
  65. dataeval/{_internal/models/pytorch/autoencoder.py → utils/torch/trainer.py} +7 -136
  66. dataeval/{_internal → utils/torch}/utils.py +3 -1
  67. dataeval/workflows/__init__.py +1 -1
  68. dataeval/{_internal/workflows → workflows}/sufficiency.py +39 -34
  69. {dataeval-0.72.1.dist-info → dataeval-0.73.0.dist-info}/METADATA +4 -3
  70. dataeval-0.73.0.dist-info/RECORD +73 -0
  71. dataeval/_internal/detectors/__init__.py +0 -0
  72. dataeval/_internal/detectors/drift/__init__.py +0 -0
  73. dataeval/_internal/detectors/ood/__init__.py +0 -0
  74. dataeval/_internal/detectors/ood/aegmm.py +0 -78
  75. dataeval/_internal/detectors/ood/vaegmm.py +0 -89
  76. dataeval/_internal/interop.py +0 -49
  77. dataeval/_internal/metrics/__init__.py +0 -0
  78. dataeval/_internal/metrics/stats/hashstats.py +0 -75
  79. dataeval/_internal/metrics/utils.py +0 -447
  80. dataeval/_internal/models/__init__.py +0 -0
  81. dataeval/_internal/models/pytorch/__init__.py +0 -0
  82. dataeval/_internal/models/pytorch/utils.py +0 -67
  83. dataeval/_internal/models/tensorflow/__init__.py +0 -0
  84. dataeval/_internal/models/tensorflow/autoencoder.py +0 -320
  85. dataeval/_internal/workflows/__init__.py +0 -0
  86. dataeval/detectors/drift/kernels/__init__.py +0 -10
  87. dataeval/detectors/drift/updates/__init__.py +0 -8
  88. dataeval/utils/tensorflow/models/__init__.py +0 -9
  89. dataeval/utils/tensorflow/recon/__init__.py +0 -3
  90. dataeval/utils/torch/datasets/__init__.py +0 -12
  91. dataeval/utils/torch/models/__init__.py +0 -11
  92. dataeval/utils/torch/trainer/__init__.py +0 -7
  93. dataeval-0.72.1.dist-info/RECORD +0 -81
  94. {dataeval-0.72.1.dist-info → dataeval-0.73.0.dist-info}/LICENSE.txt +0 -0
  95. {dataeval-0.72.1.dist-info → dataeval-0.73.0.dist-info}/WHEEL +0 -0
@@ -1,320 +0,0 @@
1
- """
2
- Source code derived from Alibi-Detect 0.11.4
3
- https://github.com/SeldonIO/alibi-detect/tree/v0.11.4
4
-
5
- Original code Copyright (c) 2023 Seldon Technologies Ltd
6
- Licensed under Apache Software License (Apache 2.0)
7
- """
8
-
9
- # pyright: reportIncompatibleMethodOverride=false
10
-
11
- from __future__ import annotations
12
-
13
- from typing import Callable, cast
14
-
15
- import tensorflow as tf
16
- import tf_keras as keras
17
- from tf_keras.layers import (
18
- Dense,
19
- Flatten,
20
- Layer,
21
- )
22
-
23
-
24
- def relative_euclidean_distance(x: tf.Tensor, y: tf.Tensor, eps: float = 1e-12, axis: int = -1) -> tf.Tensor:
25
- """
26
- Relative Euclidean distance.
27
-
28
- Parameters
29
- ----------
30
- x
31
- Tensor used in distance computation.
32
- y
33
- Tensor used in distance computation.
34
- eps
35
- Epsilon added to denominator for numerical stability.
36
- axis
37
- Axis used to compute distance.
38
-
39
- Returns
40
- -------
41
- Tensor with relative Euclidean distance across specified axis.
42
- """
43
- denom = tf.concat(
44
- [
45
- tf.reshape(tf.norm(x, ord=2, axis=axis), (-1, 1)), # type: ignore
46
- tf.reshape(tf.norm(y, ord=2, axis=axis), (-1, 1)), # type: ignore
47
- ],
48
- axis=1,
49
- )
50
- dist = tf.norm(tf.math.subtract(x, y), ord=2, axis=axis) / (tf.reduce_min(denom, axis=axis) + eps) # type: ignore
51
- return dist
52
-
53
-
54
- def eucl_cosim_features(x: tf.Tensor, y: tf.Tensor, max_eucl: float = 1e2) -> tf.Tensor:
55
- """
56
- Compute features extracted from the reconstructed instance using the
57
- relative Euclidean distance and cosine similarity between 2 tensors.
58
-
59
- Parameters
60
- ----------
61
- x : tf.Tensor
62
- Tensor used in feature computation.
63
- y : tf.Tensor
64
- Tensor used in feature computation.
65
- max_eucl : float, default 1e2
66
- Maximum value to clip relative Euclidean distance by.
67
-
68
- Returns
69
- -------
70
- tf.Tensor
71
- Tensor concatenating the relative Euclidean distance and cosine similarity features.
72
- """
73
- if len(x.shape) > 2 or len(y.shape) > 2:
74
- x = cast(tf.Tensor, Flatten()(x))
75
- y = cast(tf.Tensor, Flatten()(y))
76
- rec_cos = tf.reshape(keras.losses.cosine_similarity(y, x, -1), (-1, 1))
77
- rec_euc = tf.reshape(relative_euclidean_distance(y, x, -1), (-1, 1))
78
- # rec_euc could become very large so should be clipped
79
- rec_euc = tf.clip_by_value(rec_euc, 0, max_eucl)
80
- return cast(tf.Tensor, tf.concat([rec_cos, rec_euc], -1))
81
-
82
-
83
- class Sampling(Layer):
84
- """Reparametrization trick - Uses (z_mean, z_log_var) to sample the latent vector z."""
85
-
86
- def call(self, inputs: tuple[tf.Tensor, tf.Tensor]) -> tf.Tensor:
87
- """
88
- Sample z.
89
-
90
- Parameters
91
- ----------
92
- inputs
93
- Tuple with mean and log :term:`variance<Variance>`.
94
-
95
- Returns
96
- -------
97
- Sampled vector z.
98
- """
99
- z_mean, z_log_var = inputs
100
- batch, dim = tuple(tf.shape(z_mean).numpy().ravel()[:2]) # type: ignore
101
- epsilon = cast(tf.Tensor, keras.backend.random_normal(shape=(batch, dim)))
102
- return z_mean + tf.exp(tf.math.multiply(0.5, z_log_var)) * epsilon
103
-
104
-
105
- class EncoderAE(Layer):
106
- def __init__(self, encoder_net: keras.Model) -> None:
107
- """
108
- Encoder of AE.
109
-
110
- Parameters
111
- ----------
112
- encoder_net
113
- Layers for the encoder wrapped in a keras.Sequential class.
114
- name
115
- Name of encoder.
116
- """
117
- super().__init__(name="encoder_ae")
118
- self.encoder_net = encoder_net
119
-
120
- def call(self, x: tf.Tensor) -> tf.Tensor:
121
- return cast(tf.Tensor, self.encoder_net(x))
122
-
123
-
124
- class EncoderVAE(Layer):
125
- def __init__(self, encoder_net: keras.Model, latent_dim: int) -> None:
126
- """
127
- Encoder of VAE.
128
-
129
- Parameters
130
- ----------
131
- encoder_net
132
- Layers for the encoder wrapped in a keras.Sequential class.
133
- latent_dim
134
- Dimensionality of the :term:`latent space<Latent Space>`.
135
- name
136
- Name of encoder.
137
- """
138
- super().__init__(name="encoder_vae")
139
- self.encoder_net = encoder_net
140
- self.fc_mean = Dense(latent_dim, activation=None)
141
- self.fc_log_var = Dense(latent_dim, activation=None)
142
- self.sampling = Sampling()
143
-
144
- def call(self, x: tf.Tensor) -> tuple[tf.Tensor, tf.Tensor, tf.Tensor]:
145
- x = cast(tf.Tensor, self.encoder_net(x))
146
- if len(x.shape) > 2:
147
- x = cast(tf.Tensor, Flatten()(x))
148
- z_mean = cast(tf.Tensor, self.fc_mean(x))
149
- z_log_var = cast(tf.Tensor, self.fc_log_var(x))
150
- z = cast(tf.Tensor, self.sampling((z_mean, z_log_var)))
151
- return z_mean, z_log_var, z
152
-
153
-
154
- class Decoder(Layer):
155
- def __init__(self, decoder_net: keras.Model) -> None:
156
- """
157
- Decoder of AE and VAE.
158
-
159
- Parameters
160
- ----------
161
- decoder_net
162
- Layers for the decoder wrapped in a keras.Sequential class.
163
- name
164
- Name of decoder.
165
- """
166
- super().__init__(name="decoder")
167
- self.decoder_net = decoder_net
168
-
169
- def call(self, x: tf.Tensor) -> tf.Tensor:
170
- return cast(tf.Tensor, self.decoder_net(x))
171
-
172
-
173
- class AE(keras.Model):
174
- """
175
- Combine encoder and decoder in AE.
176
-
177
- Parameters
178
- ----------
179
- encoder_net : keras.Model
180
- Layers for the encoder wrapped in a keras.Sequential class.
181
- decoder_net : keras.Model
182
- Layers for the decoder wrapped in a keras.Sequential class.
183
- """
184
-
185
- def __init__(self, encoder_net: keras.Model, decoder_net: keras.Model) -> None:
186
- super().__init__(name="ae")
187
- self.encoder = EncoderAE(encoder_net)
188
- self.decoder = Decoder(decoder_net)
189
-
190
- def call(self, x: tf.Tensor) -> tf.Tensor:
191
- z = cast(tf.Tensor, self.encoder(x))
192
- x_recon = cast(tf.Tensor, self.decoder(z))
193
- return x_recon
194
-
195
-
196
- class VAE(keras.Model):
197
- """
198
- Combine encoder and decoder in VAE.
199
-
200
- Parameters
201
- ----------
202
- encoder_net : keras.Model
203
- Layers for the encoder wrapped in a keras.Sequential class.
204
- decoder_net : keras.Model
205
- Layers for the decoder wrapped in a keras.Sequential class.
206
- latent_dim : int
207
- Dimensionality of the :term:`latent space<Latent Space>`.
208
- beta : float, default 1.0
209
- Beta parameter for KL-divergence loss term.
210
- """
211
-
212
- def __init__(self, encoder_net: keras.Model, decoder_net: keras.Model, latent_dim: int, beta: float = 1.0) -> None:
213
- super().__init__(name="vae_model")
214
- self.encoder = EncoderVAE(encoder_net, latent_dim)
215
- self.decoder = Decoder(decoder_net)
216
- self.beta = beta
217
- self.latent_dim = latent_dim
218
-
219
- def call(self, x: tf.Tensor) -> tf.Tensor:
220
- z_mean, z_log_var, z = cast(tuple[tf.Tensor, tf.Tensor, tf.Tensor], self.encoder(x))
221
- x_recon = self.decoder(z)
222
- # add KL divergence loss term
223
- kl_loss = -0.5 * tf.reduce_mean(z_log_var - tf.square(z_mean) - tf.exp(z_log_var) + 1)
224
- self.add_loss(self.beta * kl_loss)
225
- return cast(tf.Tensor, x_recon)
226
-
227
-
228
- class AEGMM(keras.Model):
229
- """
230
- Deep Autoencoding Gaussian Mixture Model.
231
-
232
- Parameters
233
- ----------
234
- encoder_net : keras.Model
235
- Layers for the encoder wrapped in a keras.Sequential class.
236
- decoder_net : keras.Model
237
- Layers for the decoder wrapped in a keras.Sequential class.
238
- gmm_density_net : keras.Model
239
- Layers for the GMM network wrapped in a keras.Sequential class.
240
- n_gmm : int
241
- Number of components in GMM.
242
- recon_features : Callable, default eucl_cosim_features
243
- Function to extract features from the reconstructed instance by the decoder.
244
- """
245
-
246
- def __init__(
247
- self,
248
- encoder_net: keras.Model,
249
- decoder_net: keras.Model,
250
- gmm_density_net: keras.Model,
251
- n_gmm: int,
252
- recon_features: Callable = eucl_cosim_features,
253
- ) -> None:
254
- super().__init__("aegmm")
255
- self.encoder = encoder_net
256
- self.decoder = decoder_net
257
- self.gmm_density = gmm_density_net
258
- self.n_gmm = n_gmm
259
- self.recon_features = recon_features
260
-
261
- def call(self, x: tf.Tensor) -> tuple[tf.Tensor, tf.Tensor, tf.Tensor]:
262
- enc = self.encoder(x)
263
- x_recon = cast(tf.Tensor, self.decoder(enc))
264
- recon_features = self.recon_features(x, x_recon)
265
- z = cast(tf.Tensor, tf.concat([enc, recon_features], -1))
266
- gamma = cast(tf.Tensor, self.gmm_density(z))
267
- return x_recon, z, gamma
268
-
269
-
270
- class VAEGMM(keras.Model):
271
- """
272
- Variational Autoencoding Gaussian Mixture Model.
273
-
274
- Parameters
275
- ----------
276
- encoder_net : keras.Model
277
- Layers for the encoder wrapped in a keras.Sequential class.
278
- decoder_net : keras.Model
279
- Layers for the decoder wrapped in a keras.Sequential class.
280
- gmm_density_net : keras.Model
281
- Layers for the GMM network wrapped in a keras.Sequential class.
282
- n_gmm : int
283
- Number of components in GMM.
284
- latent_dim : int
285
- Dimensionality of the :term:`latent space<Latent Space>`.
286
- recon_features : Callable, default eucl_cosim_features
287
- Function to extract features from the reconstructed instance by the decoder.
288
- beta : float, default 1.0
289
- Beta parameter for KL-divergence loss term.
290
- """
291
-
292
- def __init__(
293
- self,
294
- encoder_net: keras.Model,
295
- decoder_net: keras.Model,
296
- gmm_density_net: keras.Model,
297
- n_gmm: int,
298
- latent_dim: int,
299
- recon_features: Callable = eucl_cosim_features,
300
- beta: float = 1.0,
301
- ) -> None:
302
- super().__init__(name="vaegmm")
303
- self.encoder = EncoderVAE(encoder_net, latent_dim)
304
- self.decoder = decoder_net
305
- self.gmm_density = gmm_density_net
306
- self.n_gmm = n_gmm
307
- self.latent_dim = latent_dim
308
- self.recon_features = recon_features
309
- self.beta = beta
310
-
311
- def call(self, x: tf.Tensor) -> tuple[tf.Tensor, tf.Tensor, tf.Tensor]:
312
- enc_mean, enc_log_var, enc = cast(tuple[tf.Tensor, tf.Tensor, tf.Tensor], self.encoder(x))
313
- x_recon = cast(tf.Tensor, self.decoder(enc))
314
- recon_features = self.recon_features(x, x_recon)
315
- z = cast(tf.Tensor, tf.concat([enc, recon_features], -1))
316
- gamma = cast(tf.Tensor, self.gmm_density(z))
317
- # add KL divergence loss term
318
- kl_loss = -0.5 * tf.reduce_mean(enc_log_var - tf.square(enc_mean) - tf.exp(enc_log_var) + 1)
319
- self.add_loss(self.beta * kl_loss)
320
- return x_recon, z, gamma
File without changes
@@ -1,10 +0,0 @@
1
- """
2
- Kernels are used to map non-linear data to a higher dimensional space.
3
- """
4
-
5
- from dataeval import _IS_TORCH_AVAILABLE
6
-
7
- if _IS_TORCH_AVAILABLE: # pragma: no cover
8
- from dataeval._internal.detectors.drift.torch import GaussianRBF
9
-
10
- __all__ = ["GaussianRBF"]
@@ -1,8 +0,0 @@
1
- """
2
- Update strategies inform how the :term:`drift<Drift>` detector classes update the reference data when monitoring
3
- for drift.
4
- """
5
-
6
- from dataeval._internal.detectors.drift.base import LastSeenUpdate, ReservoirSamplingUpdate
7
-
8
- __all__ = ["LastSeenUpdate", "ReservoirSamplingUpdate"]
@@ -1,9 +0,0 @@
1
- from dataeval import _IS_TENSORFLOW_AVAILABLE
2
- from dataeval._internal.models.tensorflow.autoencoder import AE, AEGMM, VAE, VAEGMM
3
- from dataeval._internal.models.tensorflow.pixelcnn import PixelCNN
4
- from dataeval._internal.models.tensorflow.utils import create_model
5
-
6
- __all__ = []
7
-
8
- if _IS_TENSORFLOW_AVAILABLE:
9
- __all__ += ["create_model", "AE", "AEGMM", "PixelCNN", "VAE", "VAEGMM"]
@@ -1,3 +0,0 @@
1
- from dataeval._internal.models.tensorflow.autoencoder import eucl_cosim_features
2
-
3
- __all__ = ["eucl_cosim_features"]
@@ -1,12 +0,0 @@
1
- """
2
- Provide access to common Torch datasets used for computer vision
3
- """
4
-
5
- from dataeval import _IS_TORCHVISION_AVAILABLE
6
-
7
- __all__ = []
8
-
9
- if _IS_TORCHVISION_AVAILABLE:
10
- from dataeval._internal.datasets import CIFAR10, MNIST, VOCDetection
11
-
12
- __all__ += ["CIFAR10", "MNIST", "VOCDetection"]
@@ -1,11 +0,0 @@
1
- from dataeval import _IS_TORCH_AVAILABLE
2
- from dataeval._internal.models.pytorch.autoencoder import (
3
- AriaAutoencoder,
4
- Decoder,
5
- Encoder,
6
- )
7
-
8
- __all__ = []
9
-
10
- if _IS_TORCH_AVAILABLE:
11
- __all__ += ["AriaAutoencoder", "Decoder", "Encoder"]
@@ -1,7 +0,0 @@
1
- from dataeval import _IS_TORCH_AVAILABLE
2
- from dataeval._internal.models.pytorch.autoencoder import AETrainer
3
-
4
- __all__ = []
5
-
6
- if _IS_TORCH_AVAILABLE:
7
- __all__ += ["AETrainer"]
@@ -1,81 +0,0 @@
1
- dataeval/__init__.py,sha256=0etPX9QsT5z3_nj5m2TuYfw5PbQOdOj_Il1jgPWjWnw,620
2
- dataeval/_internal/datasets.py,sha256=wufvhWPMFsTSTq3P1_-k8TBJGGhc8mo5b8NHRW9vgbs,14646
3
- dataeval/_internal/detectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- dataeval/_internal/detectors/clusterer.py,sha256=0c3wGdyBKDkXBgmAJ6Y4jZ44CDDUykgOJTnA9yAD7DA,20830
5
- dataeval/_internal/detectors/drift/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- dataeval/_internal/detectors/drift/base.py,sha256=gQKY9ahDpVEAhsAc68j2P75KmEKdLTztiyA2ccSqi9k,16236
7
- dataeval/_internal/detectors/drift/cvm.py,sha256=p9cbs53Ei5WGaZBtmV5rHRspROmZY1IFDE9EMyA5K00,4105
8
- dataeval/_internal/detectors/drift/ks.py,sha256=KkkUTa2dnamFK_aYSDSIcYYJFxCWbY8M1lvbFsttnLc,4193
9
- dataeval/_internal/detectors/drift/mmd.py,sha256=v7KPrbnR0-9TQ-obHAaBa0cEELshuQpfTRSXKHomvSY,7679
10
- dataeval/_internal/detectors/drift/torch.py,sha256=8Rdcb0Ea7_L_SCHldUD55CKRYd7Em1H_xWCuWFcAzgs,11568
11
- dataeval/_internal/detectors/drift/uncertainty.py,sha256=CEFjFndDnK1DaWI_fI6Uh49-Guc2WcWmbRJ3jG1uQrI,5194
12
- dataeval/_internal/detectors/duplicates.py,sha256=HCHq-KlqPbjhif_tyvFloE4ypJjDi1DhdAix-GFh6ic,5344
13
- dataeval/_internal/detectors/merged_stats.py,sha256=okXGrqAgsqfANMxfIjiUQlZWlaIh5TVvIB9UPsOJZ7k,1351
14
- dataeval/_internal/detectors/ood/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- dataeval/_internal/detectors/ood/ae.py,sha256=ufzuxFMj4oJgAi5l1NBrdhbmDXeP2dh62f1K9l-g6tM,2207
16
- dataeval/_internal/detectors/ood/aegmm.py,sha256=YlVCZ4MBGQZqYAwQxoDuCyzZZ_kEIj5DaxI5Aga7JXI,2558
17
- dataeval/_internal/detectors/ood/base.py,sha256=p67sFaDmYX-9xUq2CeNup8Pk0VcilJ1MuSs3rmMIF9w,8650
18
- dataeval/_internal/detectors/ood/llr.py,sha256=HsSJZv8YjLucllR-Rlj9syaE7MqMgPVpJdMJkQjWiS8,10295
19
- dataeval/_internal/detectors/ood/vae.py,sha256=z5h6E6TmkoCMkG6kRXqf81j4mmB8W_88G7YVITeVABc,3077
20
- dataeval/_internal/detectors/ood/vaegmm.py,sha256=ax2GE_TXET6N6m3nHnnMWSh8GfJDyl8t0jrV8xt7Ol8,2982
21
- dataeval/_internal/detectors/outliers.py,sha256=jg9vMnk8xep0SbZFgbCcIpgTwDqdCo4xaLHKrqgVwNc,10214
22
- dataeval/_internal/interop.py,sha256=FLXJY-5hwJcKCtruyvaarqynXCMfcLbQSFvGnrWQDPo,1338
23
- dataeval/_internal/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- dataeval/_internal/metrics/balance.py,sha256=IACHTcfmS927fjgEUJEnOCcLQ05hNKeybHAjNNHUw9Q,6314
25
- dataeval/_internal/metrics/ber.py,sha256=b6BRzIKgPuXTVL4Dk4smaY5WOOlwjsTf2UOUxGAQQL4,4899
26
- dataeval/_internal/metrics/coverage.py,sha256=ZH57GtMmn0KTaz_eh73kBgLP1tSxAyuS2knzx1-etuw,3630
27
- dataeval/_internal/metrics/divergence.py,sha256=BeAtKmUL27u8mWGsEqkoANZBrQLRYCybQiIVS_Z9Hg4,4266
28
- dataeval/_internal/metrics/diversity.py,sha256=XLCT_C3Uq_HKOcfHSnk7h35Jcx0XWY7IF5UJcU82qJ4,7743
29
- dataeval/_internal/metrics/parity.py,sha256=LMEM08E0ScbT2MLmVN8RIJnPEQQD2zTwMjmpwxOeOKs,16613
30
- dataeval/_internal/metrics/stats/base.py,sha256=bwQrL4e0dR_8Yoc3QLEs7DxEFEE36OcWsgTyk1o1su8,11267
31
- dataeval/_internal/metrics/stats/boxratiostats.py,sha256=60lhMeIXvbhZsSJkZAddeHsmez-IFNp5jKZjSk-l5og,6362
32
- dataeval/_internal/metrics/stats/datasetstats.py,sha256=zTtGnhoVZ2cGpKYThCIPHZkHxc0FhnCyzj4iuaLhETI,6221
33
- dataeval/_internal/metrics/stats/dimensionstats.py,sha256=ffcrgo90Fc1hxSSjQDziUKKPtYzDT9h1ExjoVAJiakw,3965
34
- dataeval/_internal/metrics/stats/hashstats.py,sha256=Yxvgxmvwd1ySvrC316dFrgNbugcZzadP1c6T-IsBpIE,2130
35
- dataeval/_internal/metrics/stats/labelstats.py,sha256=Kd9FCVmyAnyuMTuo26XeJL-hNDG_Nk6175Hbs2WVXC4,4106
36
- dataeval/_internal/metrics/stats/pixelstats.py,sha256=u_539KGAV7UTZ3px52n13B8vlEm8qHWx9U88EBOM8Ps,4456
37
- dataeval/_internal/metrics/stats/visualstats.py,sha256=EW-JJSQSLAZOMq3EOwKHPX5z7ymIJajPSeIGEtEk930,4838
38
- dataeval/_internal/metrics/uap.py,sha256=-vAaqCOEBraaZtc5uLI5wCJoej1hzH6ygRaKbbGX8D0,2181
39
- dataeval/_internal/metrics/utils.py,sha256=vmurS57HCwriNZnnDqgXzIYLUB1hO2fQJ6mVAbMiJnw,13575
40
- dataeval/_internal/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- dataeval/_internal/models/pytorch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- dataeval/_internal/models/pytorch/autoencoder.py,sha256=SVfwtqZQtTYtqdALLb_NmQChXctDLPB0wazZMhb-_2c,8505
43
- dataeval/_internal/models/pytorch/blocks.py,sha256=pm2xwsDZjZJYXrhhiz8husvh2vHmrkFMSYEn-EDUD5Q,1354
44
- dataeval/_internal/models/pytorch/utils.py,sha256=cJjxrNNKaVbhJknX0nX_HiFd43LtytEpDH7P6BbyYrw,1699
45
- dataeval/_internal/models/tensorflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- dataeval/_internal/models/tensorflow/autoencoder.py,sha256=-Yhcp3mo3uMqtED0KvFIMpmlf5ogDz8XnqCaukDFlco,10453
47
- dataeval/_internal/models/tensorflow/gmm.py,sha256=QoEgbeax1GETqRmUF7A2ih9uFOZfFAjGzgH2ljExlAc,3669
48
- dataeval/_internal/models/tensorflow/losses.py,sha256=aWEb2m3CO-fvPXmYFlZtjry4SyhJcVKIqVodMNmvXxA,3997
49
- dataeval/_internal/models/tensorflow/pixelcnn.py,sha256=nIDNnhYtSaZeL2Qo15Btm4B67fH9cvjpIPn0Kf3jx-g,48363
50
- dataeval/_internal/models/tensorflow/trainer.py,sha256=LJ3t6Ud95cofKN-cgb5o5nDrYSFse7LSDOYIBkMgDJk,4094
51
- dataeval/_internal/models/tensorflow/utils.py,sha256=Rxx5LMXjqpDLS8VFDN6YcCNsbq1Nl1WeITMEZcbIqW4,8749
52
- dataeval/_internal/output.py,sha256=qVbOi41dvfQICQ4uxysHPWBRKo1XR61kXHPL_vKOPm0,2545
53
- dataeval/_internal/split_dataset.py,sha256=ReGcreMT2bfcK6UNuGCJmYBLb_ylYLegfshVobd4Vrg,16733
54
- dataeval/_internal/utils.py,sha256=jo6bGJZAgyuZqRpAAC4gwhAHYE12316na19ZuFwMqes,1504
55
- dataeval/_internal/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- dataeval/_internal/workflows/sufficiency.py,sha256=B9ABh8kt_PWJmgM8if7VdOmoZdUYlOEZoAr9vpjaE1U,18303
57
- dataeval/detectors/__init__.py,sha256=8nJk2U99_SQD7RtEKjyS4WJct8gX1HgjEm4oHTnRhTI,320
58
- dataeval/detectors/drift/__init__.py,sha256=Ncv7Xn9rEme2aPWEAJBSrjV0Yug3jhpCuzVxH3xmnf0,808
59
- dataeval/detectors/drift/kernels/__init__.py,sha256=djIbmvYoHWpWxfdYtiouEC2KqzvgmtEqlg1i5p-UCgM,266
60
- dataeval/detectors/drift/updates/__init__.py,sha256=yQexC0K4EQvT5Bmfrb6mtfgnV8iPMcsCdrTkb-_vnUI,282
61
- dataeval/detectors/linters/__init__.py,sha256=m5F5JgGBcqGb3J_qXQ3PBkKyePjOklrYbM9dGUsgxFA,489
62
- dataeval/detectors/ood/__init__.py,sha256=tRf7xKjMqTEsa4brT9-VP6Ylwqer8lNYYMEFNhD6-4Q,721
63
- dataeval/metrics/__init__.py,sha256=U0sRw5eiqeeDLbLPxT_rznZsvtNwONVxKVwfC0qVOgo,223
64
- dataeval/metrics/bias/__init__.py,sha256=Wn1Ui_g-9cR4c4IS7RFKJ6UH5DLXKjEBoXTuEYPXSBc,619
65
- dataeval/metrics/estimators/__init__.py,sha256=4VFMKLPsJdaWiflf84bXGQ2k8ertFQ4WEPhyWqjFFvE,377
66
- dataeval/metrics/stats/__init__.py,sha256=AKlNelORMOM2OA9XIvwZ9nOn6dK6k-r-69ldEAuqgLA,1156
67
- dataeval/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- dataeval/utils/__init__.py,sha256=EAZyCZsNWnwKPtztjuQQsYN5IA9fXc0z-4cQhT9gZQs,534
69
- dataeval/utils/tensorflow/__init__.py,sha256=M_W3frQUpfVZFeKGMjZlPtYD55ES9gRf0gL2a0dXqGw,565
70
- dataeval/utils/tensorflow/loss/__init__.py,sha256=s7tD_5dYWcNDmntGiEHhG7bVDsMAY1UO8FpQFe9cUns,195
71
- dataeval/utils/tensorflow/models/__init__.py,sha256=1R9Oi5DOYwT0W3JSEfoMsPOvhYFaKqKilwkrUifNnig,385
72
- dataeval/utils/tensorflow/recon/__init__.py,sha256=xe6gAQqK9tyAoDQTtaJAxIPK1humt5QzsG_9NPsqx58,116
73
- dataeval/utils/torch/__init__.py,sha256=430fNKbqLByuGSeNhnoIJy3g9Z94ckZsAKWUZ15MVP4,575
74
- dataeval/utils/torch/datasets/__init__.py,sha256=94k7fMQdxYlQXDYouAHUgrQJ2oBwnvq4koFJpyhlUVA,292
75
- dataeval/utils/torch/models/__init__.py,sha256=q1BzoLHWA0uBXzT2glWJDrxVA1BN7xnkT2r_d-7Dlyw,246
76
- dataeval/utils/torch/trainer/__init__.py,sha256=hpcrlCCXPzb8b7FOzEAKqFy6Z7Zl4V_cx3yA7n3L1L4,177
77
- dataeval/workflows/__init__.py,sha256=VFeJyMhZxvj8WnU5Un32mwO8lNfBQOBjD9IdOqexnAE,320
78
- dataeval-0.72.1.dist-info/LICENSE.txt,sha256=Kpzcfobf1HlqafF-EX6dQLw9TlJiaJzfgvLQFukyXYw,1060
79
- dataeval-0.72.1.dist-info/METADATA,sha256=ivnqRxBPNcIoW6g4SPJBdOAnrSlhHra2wcYYVso8egc,4606
80
- dataeval-0.72.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
81
- dataeval-0.72.1.dist-info/RECORD,,