valor-lite 0.33.5__py3-none-any.whl → 0.33.6__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.

Potentially problematic release.


This version of valor-lite might be problematic. Click here for more details.

@@ -0,0 +1,191 @@
1
+ from dataclasses import dataclass
2
+ from enum import Enum
3
+
4
+ from valor_lite.schemas import Metric
5
+
6
+
7
+ class MetricType(Enum):
8
+ Counts = "Counts"
9
+ ROCAUC = "ROCAUC"
10
+ mROCAUC = "mROCAUC"
11
+ Precision = "Precision"
12
+ Recall = "Recall"
13
+ Accuracy = "Accuracy"
14
+ F1 = "F1"
15
+ ConfusionMatrix = "ConfusionMatrix"
16
+
17
+ @classmethod
18
+ def base(cls):
19
+ return [
20
+ cls.Counts,
21
+ cls.ROCAUC,
22
+ cls.mROCAUC,
23
+ cls.Precision,
24
+ cls.Recall,
25
+ cls.Accuracy,
26
+ cls.F1,
27
+ ]
28
+
29
+
30
+ @dataclass
31
+ class Counts:
32
+ tp: list[int]
33
+ fp: list[int]
34
+ fn: list[int]
35
+ tn: list[int]
36
+ score_thresholds: list[float]
37
+ hardmax: bool
38
+ label: tuple[str, str]
39
+
40
+ @property
41
+ def metric(self) -> Metric:
42
+ return Metric(
43
+ type=type(self).__name__,
44
+ value={
45
+ "tp": self.tp,
46
+ "fp": self.fp,
47
+ "fn": self.fn,
48
+ "tn": self.tn,
49
+ },
50
+ parameters={
51
+ "score_thresholds": self.score_thresholds,
52
+ "hardmax": self.hardmax,
53
+ "label": {
54
+ "key": self.label[0],
55
+ "value": self.label[1],
56
+ },
57
+ },
58
+ )
59
+
60
+ def to_dict(self) -> dict:
61
+ return self.metric.to_dict()
62
+
63
+
64
+ @dataclass
65
+ class _ThresholdValue:
66
+ value: list[float]
67
+ score_thresholds: list[float]
68
+ hardmax: bool
69
+ label: tuple[str, str]
70
+
71
+ @property
72
+ def metric(self) -> Metric:
73
+ return Metric(
74
+ type=type(self).__name__,
75
+ value=self.value,
76
+ parameters={
77
+ "score_thresholds": self.score_thresholds,
78
+ "hardmax": self.hardmax,
79
+ "label": {
80
+ "key": self.label[0],
81
+ "value": self.label[1],
82
+ },
83
+ },
84
+ )
85
+
86
+ def to_dict(self) -> dict:
87
+ return self.metric.to_dict()
88
+
89
+
90
+ class Precision(_ThresholdValue):
91
+ pass
92
+
93
+
94
+ class Recall(_ThresholdValue):
95
+ pass
96
+
97
+
98
+ class Accuracy(_ThresholdValue):
99
+ pass
100
+
101
+
102
+ class F1(_ThresholdValue):
103
+ pass
104
+
105
+
106
+ @dataclass
107
+ class ROCAUC:
108
+ value: float
109
+ label: tuple[str, str]
110
+
111
+ @property
112
+ def metric(self) -> Metric:
113
+ return Metric(
114
+ type=type(self).__name__,
115
+ value=self.value,
116
+ parameters={
117
+ "label": {
118
+ "key": self.label[0],
119
+ "value": self.label[1],
120
+ },
121
+ },
122
+ )
123
+
124
+ def to_dict(self) -> dict:
125
+ return self.metric.to_dict()
126
+
127
+
128
+ @dataclass
129
+ class mROCAUC:
130
+ value: float
131
+ label_key: str
132
+
133
+ @property
134
+ def metric(self) -> Metric:
135
+ return Metric(
136
+ type=type(self).__name__,
137
+ value=self.value,
138
+ parameters={
139
+ "label_key": self.label_key,
140
+ },
141
+ )
142
+
143
+ def to_dict(self) -> dict:
144
+ return self.metric.to_dict()
145
+
146
+
147
+ @dataclass
148
+ class ConfusionMatrix:
149
+ confusion_matrix: dict[
150
+ str, # ground truth label value
151
+ dict[
152
+ str, # prediction label value
153
+ dict[
154
+ str, # either `count` or `examples`
155
+ int
156
+ | list[
157
+ dict[
158
+ str, # either `datum` or `score`
159
+ str | float, # datum uid # prediction score
160
+ ]
161
+ ],
162
+ ],
163
+ ],
164
+ ]
165
+ missing_predictions: dict[
166
+ str, # ground truth label value
167
+ dict[
168
+ str, # either `count` or `examples`
169
+ int | list[dict[str, str]], # count or datum examples
170
+ ],
171
+ ]
172
+ score_threshold: float
173
+ label_key: str
174
+ number_of_examples: int
175
+
176
+ @property
177
+ def metric(self) -> Metric:
178
+ return Metric(
179
+ type=type(self).__name__,
180
+ value={
181
+ "confusion_matrix": self.confusion_matrix,
182
+ "missing_predictions": self.missing_predictions,
183
+ },
184
+ parameters={
185
+ "score_threshold": self.score_threshold,
186
+ "label_key": self.label_key,
187
+ },
188
+ )
189
+
190
+ def to_dict(self) -> dict:
191
+ return self.metric.to_dict()
@@ -830,22 +830,24 @@ class Evaluator:
830
830
  self,
831
831
  data: NDArray[np.floating],
832
832
  label_metadata: NDArray[np.int32],
833
- iou_thresholds: list[float] = [0.5],
834
- score_thresholds: list[float] = [
835
- score / 10.0 for score in range(1, 11)
836
- ],
837
- number_of_examples: int = 0,
833
+ iou_thresholds: list[float],
834
+ score_thresholds: list[float],
835
+ number_of_examples: int,
838
836
  ) -> list[ConfusionMatrix]:
839
837
  """
840
838
  Computes detailed counting metrics.
841
839
 
842
840
  Parameters
843
841
  ----------
844
- iou_thresholds : list[float], default=[0.5]
842
+ data : NDArray[np.floating]
843
+ An array containing detailed pairs of detections.
844
+ label_metadata : NDArray[np.int32]
845
+ An array containing label metadata.
846
+ iou_thresholds : list[float]
845
847
  List of IoU thresholds to compute metrics for.
846
- score_thresholds : list[float], default=[0.1,0.2,...,1.0]
848
+ score_thresholds : list[float]
847
849
  List of confidence thresholds to compute metrics for.
848
- number_of_examples : int, default=0
850
+ number_of_examples : int
849
851
  Maximum number of annotation examples to return per metric.
850
852
 
851
853
  Returns
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: valor-lite
3
- Version: 0.33.5
3
+ Version: 0.33.6
4
4
  Summary: Compute valor metrics directly in your client.
5
5
  License: MIT License
6
6
 
@@ -0,0 +1,17 @@
1
+ valor_lite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ valor_lite/schemas.py,sha256=r4cC10w1xYsA785KmGE4ePeOX3wzEs846vT7QAiVg_I,293
3
+ valor_lite/classification/__init__.py,sha256=2wmmziIzUATm7MbmAcPNLXrEX5l4oeD7XBwPd9bWM3Q,506
4
+ valor_lite/classification/annotation.py,sha256=rMDTvPHdAlvJ6_M2kRrnJQnj1oqKe-lxbncWC7Q50RE,345
5
+ valor_lite/classification/computation.py,sha256=pqAPX6zFlaWyYBnve4sdgJLba_m7smeaqZAsEBvi1no,12776
6
+ valor_lite/classification/manager.py,sha256=qAEGBwb6_Kj2Q0-B3NnRiSfJvS_gBSDJYsT6r8X-g_o,27870
7
+ valor_lite/classification/metric.py,sha256=00qmagf-zQXUZ1qJW_UmN1k35aaYK_7GEM292Tc_cBE,4256
8
+ valor_lite/detection/__init__.py,sha256=PiKfemo8FkZRzBhPSjhil8ahGURLy0Vk_iV25CB4UBU,1139
9
+ valor_lite/detection/annotation.py,sha256=BspLc3SjWXj6qYlGGpzDPHEZ8j7CiFzIL5cNlk0WCAM,2732
10
+ valor_lite/detection/computation.py,sha256=HDFfPTFQN2obm-g570KKDf7SP9V-h09OyMtFEJXsoTA,26323
11
+ valor_lite/detection/manager.py,sha256=dHDGNtYRd_u9iCOTrLpqssdHrepi2N3dlx415kaeCM4,52860
12
+ valor_lite/detection/metric.py,sha256=RYKN17nEFRIZIqmotQa6OyNnU0nkjXyfFIclX_5hGpY,9933
13
+ valor_lite-0.33.6.dist-info/LICENSE,sha256=M0L53VuwfEEqezhHb7NPeYcO_glw7-k4DMLZQ3eRN64,1068
14
+ valor_lite-0.33.6.dist-info/METADATA,sha256=pdZDGSu9gKinRjZo9G-qFmYVLwBw8mqVb0gs6IJVmZE,1865
15
+ valor_lite-0.33.6.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
16
+ valor_lite-0.33.6.dist-info/top_level.txt,sha256=9ujykxSwpl2Hu0_R95UQTR_l07k9UUTSdrpiqmq6zc4,11
17
+ valor_lite-0.33.6.dist-info/RECORD,,
@@ -1,12 +0,0 @@
1
- valor_lite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- valor_lite/schemas.py,sha256=r4cC10w1xYsA785KmGE4ePeOX3wzEs846vT7QAiVg_I,293
3
- valor_lite/detection/__init__.py,sha256=PiKfemo8FkZRzBhPSjhil8ahGURLy0Vk_iV25CB4UBU,1139
4
- valor_lite/detection/annotation.py,sha256=BspLc3SjWXj6qYlGGpzDPHEZ8j7CiFzIL5cNlk0WCAM,2732
5
- valor_lite/detection/computation.py,sha256=HDFfPTFQN2obm-g570KKDf7SP9V-h09OyMtFEJXsoTA,26323
6
- valor_lite/detection/manager.py,sha256=ld2ytAw96UOO25iTwnfvAI1D2UY2Z1AGmP7cyCrT-V4,52801
7
- valor_lite/detection/metric.py,sha256=RYKN17nEFRIZIqmotQa6OyNnU0nkjXyfFIclX_5hGpY,9933
8
- valor_lite-0.33.5.dist-info/LICENSE,sha256=M0L53VuwfEEqezhHb7NPeYcO_glw7-k4DMLZQ3eRN64,1068
9
- valor_lite-0.33.5.dist-info/METADATA,sha256=WL0LQR2fT4CO4MuV0aXIkLPt3zQW2SsBS4MwcA_kHJY,1865
10
- valor_lite-0.33.5.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
11
- valor_lite-0.33.5.dist-info/top_level.txt,sha256=9ujykxSwpl2Hu0_R95UQTR_l07k9UUTSdrpiqmq6zc4,11
12
- valor_lite-0.33.5.dist-info/RECORD,,