xlin 0.1.27__tar.gz → 0.1.29__tar.gz

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.1
2
2
  Name: xlin
3
- Version: 0.1.27
3
+ Version: 0.1.29
4
4
  Summary: toolbox for LinXueyuan
5
5
  License: MIT
6
6
  Author: LinXueyuanStdio
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "xlin"
3
- version = "0.1.27"
3
+ version = "0.1.29"
4
4
  description = "toolbox for LinXueyuan"
5
5
  authors = ["LinXueyuanStdio <23211526+LinXueyuanStdio@users.noreply.github.com>"]
6
6
  license = "MIT"
@@ -164,7 +164,7 @@ def xmap(
164
164
  raise
165
165
 
166
166
  # 处理数据
167
- with tqdm(total=total_items, desc="处理数据", unit="") as pbar:
167
+ with tqdm(total=total_items, desc="Map", unit="examples") as pbar:
168
168
  # 跳过已处理的项目
169
169
  pbar.update(start_idx)
170
170
 
@@ -182,8 +182,7 @@ def xmap(
182
182
  pbar.update(len(batch))
183
183
 
184
184
  # 性能统计
185
- items_per_second = len(batch) / batch_time if batch_time > 0 else 0
186
- pbar.set_postfix_str(f"速率: {items_per_second:.1f} 项/秒")
185
+ pbar.set_postfix_str(f"{batch_time:.1f} s/batch, {len(results)} examples")
187
186
 
188
187
  # 缓存逻辑
189
188
  if need_caching and (i // batch_size) % cache_batch_num == 0:
@@ -111,11 +111,53 @@ Kurtosis: {float((data - mean).mean()**4 / std**4):.4f}\
111
111
  plt.show()
112
112
 
113
113
 
114
- def draw_pie(numbers: List[int], title="Pie Chart of Numbers"):
114
+
115
+ def draw_preds_labels(preds: list[str], labels: list[str]):
116
+ from collections import Counter
115
117
  import matplotlib.pyplot as plt
116
118
 
117
- plt.pie(numbers, labels=[str(i) for i in range(len(numbers))], autopct='%1.1f%%')
118
- plt.title(title)
119
+ out_of_class = "out_of_class"
120
+ valid_values = list(set(labels)) + [out_of_class]
121
+ valid_preds = []
122
+ for pred in preds:
123
+ if pred not in valid_values:
124
+ valid_preds.append(out_of_class)
125
+ else:
126
+ valid_preds.append(pred)
127
+
128
+ counter = Counter(valid_preds)
129
+ pred_labels = list(counter.keys())
130
+ pred_values = list(counter.values())
131
+
132
+ # 绘制柱状图 pred
133
+ plt.figure(figsize=(12, 12))
134
+ plt.subplot(2, 2, 1)
135
+ plt.bar(pred_labels, pred_values)
136
+ plt.xlabel("class")
137
+ plt.ylabel("count")
138
+ plt.title("pred class distribution")
139
+
140
+ # 绘制饼图 pred
141
+ plt.subplot(2, 2, 2)
142
+ plt.pie(pred_values, labels=pred_labels, autopct="%1.1f%%")
143
+ plt.title("pred class distribution")
144
+
145
+ # 绘制柱状图 label
146
+ counter = Counter(labels)
147
+ label_labels = list(counter.keys())
148
+ label_values = list(counter.values())
149
+ plt.subplot(2, 2, 3)
150
+ plt.bar(label_labels, label_values)
151
+ plt.xlabel("class")
152
+ plt.ylabel("count")
153
+ plt.title("label class distribution")
154
+ # 绘制饼图 label
155
+ plt.subplot(2, 2, 4)
156
+ plt.pie(label_values, labels=label_labels, autopct="%1.1f%%")
157
+ plt.title("label class distribution")
158
+ plt.suptitle("Pred and Label Class Distribution")
159
+
160
+ plt.tight_layout()
119
161
  plt.show()
120
162
 
121
163
 
@@ -256,6 +298,7 @@ def print_classification_report(predictions: List[str], labels: List[str]):
256
298
  print("=== 分类报告 ===")
257
299
  print(report["class_report"])
258
300
  print()
301
+ return report
259
302
 
260
303
 
261
304
  if __name__ == "__main__":
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes