Corentin Meyer commited on
Commit
3f8deac
·
1 Parent(s): ccc2cbb

Update of Model for Keras v3

Browse files
.gitignore CHANGED
@@ -1 +1,2 @@
1
- **/events.out*
 
 
1
+ kaggle/
2
+ wandb/
README.md CHANGED
@@ -31,8 +31,11 @@ model-index:
31
  split: test # Optional. Example: test
32
  metrics:
33
  - type: accuracy # Required. Example: wer. Use metric id from https://hf.co/metrics
34
- value: 0.932 # Required. Example: 20.90
35
  name: Test Accuracy # Optional. Example: Test WER
 
 
 
36
  ---
37
 
38
  # TODO: UPDATE WITH LATEST INFO
@@ -45,6 +48,8 @@ model-index:
45
 
46
  This is the model card for the SDH Model used by the [MyoQuant](https://github.com/lambda-science/MyoQuant) tool.
47
 
 
 
48
  ## Intended uses & limitations
49
 
50
  It's intended to allow people to use, improve and verify the reproducibility of our MyoQuant tool. The SDH model is used to classify SDH stained muscle fiber with abnormal mitochondria profile.
@@ -56,34 +61,35 @@ It's trained on the [corentinm7/MyoQuant-SDH-Data](https://huggingface.co/datase
56
  ## Training procedure
57
 
58
  This model was trained using the ResNet50V2 model architecture in Keras.
59
- All images have been resized to 256x256 using the `tf.image.resize()` function from Tensorflow.
60
  Data augmentation was included as layers before ResNet50V2.
61
  Full model code:
62
 
63
  ```python
64
- data_augmentation = tf.keras.Sequential([
65
- layers.RandomBrightness(factor=0.2, input_shape=(None, None, 3)), # Not avaliable in tensorflow 2.8
66
- layers.RandomContrast(factor=0.2),
67
- layers.RandomFlip("horizontal_and_vertical"),
68
- layers.RandomRotation(0.3, fill_mode="constant"),
69
- layers.RandomZoom(.2, .2, fill_mode="constant"),
70
- layers.RandomTranslation(0.2, .2,fill_mode="constant"),
71
- layers.Resizing(256, 256, interpolation="bilinear", crop_to_aspect_ratio=True),
72
- layers.Rescaling(scale=1./127.5, offset=-1), # For [-1, 1] scaling
73
  ])
74
 
75
  # My ResNet50V2
76
- model = models.Sequential()
77
  model.add(data_augmentation)
78
  model.add(
79
  ResNet50V2(
80
- include_top=False,
81
- input_shape=(256,256,3),
82
- pooling="avg",
83
- )
84
  )
85
- model.add(layers.Flatten())
86
- model.add(layers.Dense(len(config.SUB_FOLDERS), activation='softmax'))
 
87
  ```
88
 
89
  ```
@@ -99,9 +105,9 @@ _________________________________________________________________
99
  dense (Dense) (None, 2) 4098
100
 
101
  =================================================================
102
- Total params: 23,568,898
103
- Trainable params: 23,523,458
104
- Non-trainable params: 45,440
105
  _________________________________________________________________
106
  ```
107
 
@@ -121,7 +127,9 @@ For more details please see the training notebook associated.
121
 
122
  ## Training Curve
123
 
124
- Full training results are avaliable on `Weights and Biases` here: [https://api.wandb.ai/links/lambda-science/ka0iw3b6](https://api.wandb.ai/links/lambda-science/ka0iw3b6)
 
 
125
  Plot of the accuracy vs epoch and loss vs epoch for training and validation set.
126
  ![Training Curve](./training_curve.png)
127
 
@@ -130,32 +138,24 @@ Plot of the accuracy vs epoch and loss vs epoch for training and validation set.
130
  Results for accuracy and balanced accuracy metrics on the test split of the [corentinm7/MyoQuant-SDH-Data](https://huggingface.co/datasets/corentinm7/MyoQuant-SDH-Data) dataset.
131
 
132
  ```
133
- 105/105 - 11s - loss: 0.1574 - accuracy: 0.9321 - 11s/epoch - 102ms/step
134
- Test data results:
135
- 0.9321024417877197
136
- 105/105 [==============================] - 6s 44ms/step
137
- Test data results:
138
- 0.9166411912436779
139
  ```
140
 
141
  # How to Import the Model
142
 
143
- With Tensorflow 2.10 and over:
144
 
145
  ```python
146
  model_sdh = keras.models.load_model("model.keras")
147
  ```
148
 
149
- With Tensorflow <2.10:
150
- To import this model RandomBrightness layer had to be added by hand (it was only introduced in Tensorflow 2.10.). So you will need to download the `random_brightness.py` fille in addition to the model.
151
- Then the model can easily be imported in Tensorflow/Keras using:
152
-
153
- ```python
154
- from .random_brightness import *
155
- model_sdh = keras.models.load_model(
156
- "model.keras", custom_objects={"RandomBrightness": RandomBrightness}
157
- )
158
- ```
159
 
160
  ## The Team Behind this Dataset
161
 
 
31
  split: test # Optional. Example: test
32
  metrics:
33
  - type: accuracy # Required. Example: wer. Use metric id from https://hf.co/metrics
34
+ value: 0.927 # Required. Example: 20.90
35
  name: Test Accuracy # Optional. Example: Test WER
36
+ - type: hyperml/balanced_accuracy
37
+ value: 912
38
+ name: Test Balanced Accuracy
39
  ---
40
 
41
  # TODO: UPDATE WITH LATEST INFO
 
48
 
49
  This is the model card for the SDH Model used by the [MyoQuant](https://github.com/lambda-science/MyoQuant) tool.
50
 
51
+ **Note 10-06-2025: The model have been re-trained and made compatible with Keras v3**
52
+
53
  ## Intended uses & limitations
54
 
55
  It's intended to allow people to use, improve and verify the reproducibility of our MyoQuant tool. The SDH model is used to classify SDH stained muscle fiber with abnormal mitochondria profile.
 
61
  ## Training procedure
62
 
63
  This model was trained using the ResNet50V2 model architecture in Keras.
64
+ All images have been resized to 256x256.
65
  Data augmentation was included as layers before ResNet50V2.
66
  Full model code:
67
 
68
  ```python
69
+ data_augmentation = keras.Sequential([
70
+ keras.layers.RandomBrightness(factor=0.2, input_shape=(None, None, 3)),
71
+ keras.layers.RandomContrast(factor=0.2),
72
+ keras.layers.RandomFlip("horizontal_and_vertical"),
73
+ keras.layers.RandomRotation(0.3, fill_mode="constant"),
74
+ keras.layers.RandomZoom(.2, .2, fill_mode="constant"),
75
+ keras.layers.RandomTranslation(0.2, .2, fill_mode="constant"),
76
+ keras.layers.Resizing(256, 256, interpolation="bilinear", crop_to_aspect_ratio=True, input_shape=(None, None, 3)),
77
+ keras.layers.Rescaling(scale=1. / 127.5, offset=-1), # For [-1, 1] scaling
78
  ])
79
 
80
  # My ResNet50V2
81
+ model = keras.models.Sequential()
82
  model.add(data_augmentation)
83
  model.add(
84
  ResNet50V2(
85
+ include_top=False,
86
+ input_shape=(256, 256, 3),
87
+ pooling="avg",
88
+ )
89
  )
90
+ model.add(keras.layers.Dense(len(config.SUB_FOLDERS), activation='softmax'))
91
+
92
+ model.summary()
93
  ```
94
 
95
  ```
 
105
  dense (Dense) (None, 2) 4098
106
 
107
  =================================================================
108
+ Total params: 23,568,898 (89.91 MB)
109
+ Trainable params: 23,523,458 (89.73 MB)
110
+ Non-trainable params: 45,440 (177.50 KB)
111
  _________________________________________________________________
112
  ```
113
 
 
127
 
128
  ## Training Curve
129
 
130
+ Full training results are avaliable on `Weights and Biases`
131
+ here: [https://wandb.ai/lambda-science/myoquant-sdh](https://wandb.ai/lambda-science/myoquant-sdh)
132
+
133
  Plot of the accuracy vs epoch and loss vs epoch for training and validation set.
134
  ![Training Curve](./training_curve.png)
135
 
 
138
  Results for accuracy and balanced accuracy metrics on the test split of the [corentinm7/MyoQuant-SDH-Data](https://huggingface.co/datasets/corentinm7/MyoQuant-SDH-Data) dataset.
139
 
140
  ```
141
+ 105/105 - 22s - 207ms/step - accuracy: 0.9276 - loss: 0.1678
142
+ Test data results:
143
+ 0.9276354908943176
144
+ 105/105 ━━━━━━━━━━━━━━━━━━━━ 20s 168ms/step
145
+ Test data results:
146
+ 0.9128566397981572
147
  ```
148
 
149
  # How to Import the Model
150
 
151
+ With Keras 3 / Tensorflow 2.19 and over:
152
 
153
  ```python
154
  model_sdh = keras.models.load_model("model.keras")
155
  ```
156
 
157
+ Resizing and rescaling layer are already implemented. You simply need to provide your images images numpy float32
158
+ array (0-255).
 
 
 
 
 
 
 
 
159
 
160
  ## The Team Behind this Dataset
161
 
history.pickle CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c222fe72b84d6acd03fcf393efb8a41201bdbace8df399c2050409fc53a5c595
3
- size 1241
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a8e920d73c6717daf73df501526317abb3395cb4fdd6d798b5ce7b6247216a6e
3
+ size 1266
model.h5 DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:d9b858710ae2756424f7c4df0edcee9549e6f57b81e89c5227fbbb1201081514
3
- size 283136344
 
 
 
 
myoquant-sdh-train.ipynb CHANGED
The diff for this file is too large to render. See raw diff
 
pyproject.toml CHANGED
@@ -6,15 +6,20 @@ readme = "README.md"
6
  requires-python = ">=3.12"
7
  dependencies = [
8
  "datasets>=3.6.0",
 
9
  "ipywidgets>=8.1.7",
10
  "jupyter>=1.1.1",
 
11
  "keras>=3.10.0",
12
  "keras-cv>=0.9.0",
13
  "keras-hub>=0.21.0",
14
  "matplotlib>=3.10.3",
15
  "notebook>=7.4.3",
 
16
  "scikit-learn>=1.6.1",
17
  "tensorflow>=2.19.0",
18
  "tensorflow-metal>=1.2.0",
 
 
19
  "wandb>=0.19.11",
20
  ]
 
6
  requires-python = ">=3.12"
7
  dependencies = [
8
  "datasets>=3.6.0",
9
+ "doubtlab>=0.2.4",
10
  "ipywidgets>=8.1.7",
11
  "jupyter>=1.1.1",
12
+ "kaggle>=1.7.4.5",
13
  "keras>=3.10.0",
14
  "keras-cv>=0.9.0",
15
  "keras-hub>=0.21.0",
16
  "matplotlib>=3.10.3",
17
  "notebook>=7.4.3",
18
+ "onnxruntime>=1.22.0",
19
  "scikit-learn>=1.6.1",
20
  "tensorflow>=2.19.0",
21
  "tensorflow-metal>=1.2.0",
22
+ "tf2onnx>=1.16.1",
23
+ "umap-learn>=0.5.7",
24
  "wandb>=0.19.11",
25
  ]
runs/{SDH16K_wandb_20230406-214521/train/events.out.tfevents.1680810371.guepe.1458055.0.v2 → SDH16K_wandb_20250609-131916/train/events.out.tfevents.1749475185.ec713e270fa7.19.0.v2} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:12877dd526c458d4e602f3cb8cf202a32f98d184a1c694bb94fe100207b9add9
3
- size 6359090
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6ca54c6cbdf0f4e31aa507fc53fa93fb507bfc4a415c2f7a587fbccb98300582
3
+ size 181191
runs/{SDH16K_wandb_20230406-214521/validation/events.out.tfevents.1680810475.guepe.1458055.1.v2 → SDH16K_wandb_20250609-131916/validation/events.out.tfevents.1749475474.ec713e270fa7.19.1.v2} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:69374377fd4d689f90e78fced0042c8c454bc3b0a978ff5a76e6ed091a8a236c
3
- size 6794
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ec2d2bc72de9315415f588326232a45902aec76b9c0dfbd317cbd8b6ffc8f84
3
+ size 8394
sdh_embedding_umap.ipynb CHANGED
The diff for this file is too large to render. See raw diff
 
uv.lock CHANGED
@@ -338,6 +338,22 @@ wheels = [
338
  { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload-time = "2025-05-02T08:34:40.053Z" },
339
  ]
340
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
341
  [[package]]
342
  name = "click"
343
  version = "8.2.1"
@@ -359,6 +375,18 @@ wheels = [
359
  { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
360
  ]
361
 
 
 
 
 
 
 
 
 
 
 
 
 
362
  [[package]]
363
  name = "comm"
364
  version = "0.2.2"
@@ -535,6 +563,20 @@ wheels = [
535
  { url = "https://files.pythonhosted.org/packages/d5/7c/e9fcff7623954d86bdc17782036cbf715ecab1bec4847c008557affe1ca8/docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637", size = 36533, upload-time = "2024-03-15T10:39:41.527Z" },
536
  ]
537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  [[package]]
539
  name = "einops"
540
  version = "0.8.1"
@@ -900,6 +942,18 @@ wheels = [
900
  { url = "https://files.pythonhosted.org/packages/df/dc/4f4d8080cbce7a38c1d0f1ba4932f9134480b9761af8ef4c65d49254b2bd/huggingface_hub-0.32.3-py3-none-any.whl", hash = "sha256:e46f7ea7fe2b5e5f67cc4e37eb201140091946a314d7c2b134a9673dadd80b6a", size = 512094, upload-time = "2025-05-30T08:23:54.091Z" },
901
  ]
902
 
 
 
 
 
 
 
 
 
 
 
 
 
903
  [[package]]
904
  name = "idna"
905
  version = "3.10"
@@ -1302,6 +1356,31 @@ wheels = [
1302
  { url = "https://files.pythonhosted.org/packages/43/6a/ca128561b22b60bd5a0c4ea26649e68c8556b82bc70a0c396eebc977fe86/jupyterlab_widgets-3.0.15-py3-none-any.whl", hash = "sha256:d59023d7d7ef71400d51e6fee9a88867f6e65e10a4201605d2d7f3e8f012a31c", size = 216571, upload-time = "2025-05-05T12:32:29.534Z" },
1303
  ]
1304
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1305
  [[package]]
1306
  name = "kagglehub"
1307
  version = "0.3.12"
@@ -1457,6 +1536,24 @@ wheels = [
1457
  { url = "https://files.pythonhosted.org/packages/71/cf/e01dc4cc79779cd82d77888a88ae2fa424d93b445ad4f6c02bfc18335b70/libclang-18.1.1-py2.py3-none-win_arm64.whl", hash = "sha256:3f0e1f49f04d3cd198985fea0511576b0aee16f9ff0e0f0cad7f9c57ec3c20e8", size = 22361112, upload-time = "2024-03-17T16:42:59.565Z" },
1458
  ]
1459
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1460
  [[package]]
1461
  name = "markdown"
1462
  version = "3.8"
@@ -1605,6 +1702,15 @@ wheels = [
1605
  { url = "https://files.pythonhosted.org/packages/b7/45/c1a1ccfdd02bc4173ca0f4a2d327683a27df85797b885eb1da1ca325b85c/ml_dtypes-0.5.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d13755f8e8445b3870114e5b6240facaa7cb0c3361e54beba3e07fa912a6e12b", size = 5052731, upload-time = "2025-01-07T03:34:45.308Z" },
1606
  ]
1607
 
 
 
 
 
 
 
 
 
 
1608
  [[package]]
1609
  name = "multidict"
1610
  version = "6.4.4"
@@ -1687,32 +1793,42 @@ version = "0.1.0"
1687
  source = { virtual = "." }
1688
  dependencies = [
1689
  { name = "datasets" },
 
1690
  { name = "ipywidgets" },
1691
  { name = "jupyter" },
 
1692
  { name = "keras" },
1693
  { name = "keras-cv" },
1694
  { name = "keras-hub" },
1695
  { name = "matplotlib" },
1696
  { name = "notebook" },
 
1697
  { name = "scikit-learn" },
1698
  { name = "tensorflow" },
1699
  { name = "tensorflow-metal" },
 
 
1700
  { name = "wandb" },
1701
  ]
1702
 
1703
  [package.metadata]
1704
  requires-dist = [
1705
  { name = "datasets", specifier = ">=3.6.0" },
 
1706
  { name = "ipywidgets", specifier = ">=8.1.7" },
1707
  { name = "jupyter", specifier = ">=1.1.1" },
 
1708
  { name = "keras", specifier = ">=3.10.0" },
1709
  { name = "keras-cv", specifier = ">=0.9.0" },
1710
  { name = "keras-hub", specifier = ">=0.21.0" },
1711
  { name = "matplotlib", specifier = ">=3.10.3" },
1712
  { name = "notebook", specifier = ">=7.4.3" },
 
1713
  { name = "scikit-learn", specifier = ">=1.6.1" },
1714
  { name = "tensorflow", specifier = ">=2.19.0" },
1715
  { name = "tensorflow-metal", specifier = ">=1.2.0" },
 
 
1716
  { name = "wandb", specifier = ">=0.19.11" },
1717
  ]
1718
 
@@ -1817,6 +1933,28 @@ wheels = [
1817
  { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" },
1818
  ]
1819
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1820
  [[package]]
1821
  name = "numpy"
1822
  version = "2.1.3"
@@ -1855,6 +1993,48 @@ wheels = [
1855
  { url = "https://files.pythonhosted.org/packages/86/09/a5ab407bd7f5f5599e6a9261f964ace03a73e7c6928de906981c31c38082/numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", size = 12644098, upload-time = "2024-11-02T17:46:07.941Z" },
1856
  ]
1857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1858
  [[package]]
1859
  name = "opt-einsum"
1860
  version = "3.4.0"
@@ -2126,16 +2306,11 @@ wheels = [
2126
 
2127
  [[package]]
2128
  name = "protobuf"
2129
- version = "5.29.5"
2130
  source = { registry = "https://pypi.org/simple" }
2131
- sdist = { url = "https://files.pythonhosted.org/packages/43/29/d09e70352e4e88c9c7a198d5645d7277811448d76c23b00345670f7c8a38/protobuf-5.29.5.tar.gz", hash = "sha256:bc1463bafd4b0929216c35f437a8e28731a2b7fe3d98bb77a600efced5a15c84", size = 425226, upload-time = "2025-05-28T23:51:59.82Z" }
2132
  wheels = [
2133
- { url = "https://files.pythonhosted.org/packages/5f/11/6e40e9fc5bba02988a214c07cf324595789ca7820160bfd1f8be96e48539/protobuf-5.29.5-cp310-abi3-win32.whl", hash = "sha256:3f1c6468a2cfd102ff4703976138844f78ebd1fb45f49011afc5139e9e283079", size = 422963, upload-time = "2025-05-28T23:51:41.204Z" },
2134
- { url = "https://files.pythonhosted.org/packages/81/7f/73cefb093e1a2a7c3ffd839e6f9fcafb7a427d300c7f8aef9c64405d8ac6/protobuf-5.29.5-cp310-abi3-win_amd64.whl", hash = "sha256:3f76e3a3675b4a4d867b52e4a5f5b78a2ef9565549d4037e06cf7b0942b1d3fc", size = 434818, upload-time = "2025-05-28T23:51:44.297Z" },
2135
- { url = "https://files.pythonhosted.org/packages/dd/73/10e1661c21f139f2c6ad9b23040ff36fee624310dc28fba20d33fdae124c/protobuf-5.29.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e38c5add5a311f2a6eb0340716ef9b039c1dfa428b28f25a7838ac329204a671", size = 418091, upload-time = "2025-05-28T23:51:45.907Z" },
2136
- { url = "https://files.pythonhosted.org/packages/6c/04/98f6f8cf5b07ab1294c13f34b4e69b3722bb609c5b701d6c169828f9f8aa/protobuf-5.29.5-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:fa18533a299d7ab6c55a238bf8629311439995f2e7eca5caaff08663606e9015", size = 319824, upload-time = "2025-05-28T23:51:47.545Z" },
2137
- { url = "https://files.pythonhosted.org/packages/85/e4/07c80521879c2d15f321465ac24c70efe2381378c00bf5e56a0f4fbac8cd/protobuf-5.29.5-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:63848923da3325e1bf7e9003d680ce6e14b07e55d0473253a690c3a8b8fd6e61", size = 319942, upload-time = "2025-05-28T23:51:49.11Z" },
2138
- { url = "https://files.pythonhosted.org/packages/7e/cc/7e77861000a0691aeea8f4566e5d3aa716f2b1dece4a24439437e41d3d25/protobuf-5.29.5-py3-none-any.whl", hash = "sha256:6cf42630262c59b2d8de33954443d94b746c952b01434fc58a417fdbd2e84bd5", size = 172823, upload-time = "2025-05-28T23:51:58.157Z" },
2139
  ]
2140
 
2141
  [[package]]
@@ -2281,6 +2456,22 @@ wheels = [
2281
  { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" },
2282
  ]
2283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2284
  [[package]]
2285
  name = "pyparsing"
2286
  version = "3.2.3"
@@ -2290,6 +2481,15 @@ wheels = [
2290
  { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" },
2291
  ]
2292
 
 
 
 
 
 
 
 
 
 
2293
  [[package]]
2294
  name = "python-dateutil"
2295
  version = "2.9.0.post0"
@@ -2311,6 +2511,18 @@ wheels = [
2311
  { url = "https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl", hash = "sha256:dd980fae8cffb24c13caf6e158d3d61c0d6d22342f932cb6e9deedab3d35eec7", size = 15163, upload-time = "2025-03-07T07:08:25.627Z" },
2312
  ]
2313
 
 
 
 
 
 
 
 
 
 
 
 
 
2314
  [[package]]
2315
  name = "pytz"
2316
  version = "2025.2"
@@ -2765,6 +2977,18 @@ wheels = [
2765
  { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" },
2766
  ]
2767
 
 
 
 
 
 
 
 
 
 
 
 
 
2768
  [[package]]
2769
  name = "tensorboard"
2770
  version = "2.19.0"
@@ -2859,15 +3083,14 @@ wheels = [
2859
 
2860
  [[package]]
2861
  name = "tensorflow-metadata"
2862
- version = "1.17.1"
2863
  source = { registry = "https://pypi.org/simple" }
2864
  dependencies = [
2865
- { name = "absl-py" },
2866
  { name = "googleapis-common-protos" },
2867
  { name = "protobuf" },
2868
  ]
2869
  wheels = [
2870
- { url = "https://files.pythonhosted.org/packages/33/30/944470f0ec0f00ccf25f0fdc84cf28be83838da5636c2b2b002960ba7ac1/tensorflow_metadata-1.17.1-py3-none-any.whl", hash = "sha256:f60d6605a16094c46921ffcf064747ba4b57840adad9fad682e2f28d0bac20eb", size = 31555, upload-time = "2025-04-10T18:29:33.596Z" },
2871
  ]
2872
 
2873
  [[package]]
@@ -2918,6 +3141,31 @@ wheels = [
2918
  { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" },
2919
  ]
2920
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2921
  [[package]]
2922
  name = "threadpoolctl"
2923
  version = "3.6.0"
@@ -3027,6 +3275,23 @@ wheels = [
3027
  { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" },
3028
  ]
3029
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3030
  [[package]]
3031
  name = "uri-template"
3032
  version = "1.3.0"
 
338
  { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload-time = "2025-05-02T08:34:40.053Z" },
339
  ]
340
 
341
+ [[package]]
342
+ name = "cleanlab"
343
+ version = "2.6.5"
344
+ source = { registry = "https://pypi.org/simple" }
345
+ dependencies = [
346
+ { name = "numpy" },
347
+ { name = "pandas" },
348
+ { name = "scikit-learn" },
349
+ { name = "termcolor" },
350
+ { name = "tqdm" },
351
+ ]
352
+ sdist = { url = "https://files.pythonhosted.org/packages/ff/d1/60d90f8ca831d32b4dc1ec020c2c197bcacdf2c9e51ca395acfabdebf712/cleanlab-2.6.5.tar.gz", hash = "sha256:60991930a8eaa48877274903bd3d91e2319ab3f1f756a271a0da9bc135ba978c", size = 312840, upload-time = "2024-05-24T23:57:32.363Z" }
353
+ wheels = [
354
+ { url = "https://files.pythonhosted.org/packages/94/35/6f578f43a1e2f8664853c7cca7f82a4c1953b8e7bcf959a47831ec1c7ac6/cleanlab-2.6.5-py3-none-any.whl", hash = "sha256:07e2a49f02b450e039315491f5ed12e0bfa15d3fede731a26229b32af6c22f10", size = 352328, upload-time = "2024-05-24T23:57:29.989Z" },
355
+ ]
356
+
357
  [[package]]
358
  name = "click"
359
  version = "8.2.1"
 
375
  { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
376
  ]
377
 
378
+ [[package]]
379
+ name = "coloredlogs"
380
+ version = "15.0.1"
381
+ source = { registry = "https://pypi.org/simple" }
382
+ dependencies = [
383
+ { name = "humanfriendly" },
384
+ ]
385
+ sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520, upload-time = "2021-06-11T10:22:45.202Z" }
386
+ wheels = [
387
+ { url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018, upload-time = "2021-06-11T10:22:42.561Z" },
388
+ ]
389
+
390
  [[package]]
391
  name = "comm"
392
  version = "0.2.2"
 
563
  { url = "https://files.pythonhosted.org/packages/d5/7c/e9fcff7623954d86bdc17782036cbf715ecab1bec4847c008557affe1ca8/docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637", size = 36533, upload-time = "2024-03-15T10:39:41.527Z" },
564
  ]
565
 
566
+ [[package]]
567
+ name = "doubtlab"
568
+ version = "0.2.4"
569
+ source = { registry = "https://pypi.org/simple" }
570
+ dependencies = [
571
+ { name = "cleanlab" },
572
+ { name = "pandas" },
573
+ { name = "scikit-learn" },
574
+ ]
575
+ sdist = { url = "https://files.pythonhosted.org/packages/10/eb/0fe5d67f9ce603488f25b54e8eb0591116848da5dc51c58ae84e5d156ddb/doubtlab-0.2.4.tar.gz", hash = "sha256:ab23fc36548a970fe52caea26c8c626a0d30bad78b44889e208f7dad455e7642", size = 11552, upload-time = "2022-11-25T15:59:05.097Z" }
576
+ wheels = [
577
+ { url = "https://files.pythonhosted.org/packages/58/0b/fbc7328db09fa18a43e570404ce70a806a0219b6d56f381543eedd13b2f9/doubtlab-0.2.4-py2.py3-none-any.whl", hash = "sha256:d22844e6673ff7bf41f3b0b9b69cd9c4d364347a8c74a2a3077d4dcc96ca3565", size = 11012, upload-time = "2022-11-25T15:58:47.841Z" },
578
+ ]
579
+
580
  [[package]]
581
  name = "einops"
582
  version = "0.8.1"
 
942
  { url = "https://files.pythonhosted.org/packages/df/dc/4f4d8080cbce7a38c1d0f1ba4932f9134480b9761af8ef4c65d49254b2bd/huggingface_hub-0.32.3-py3-none-any.whl", hash = "sha256:e46f7ea7fe2b5e5f67cc4e37eb201140091946a314d7c2b134a9673dadd80b6a", size = 512094, upload-time = "2025-05-30T08:23:54.091Z" },
943
  ]
944
 
945
+ [[package]]
946
+ name = "humanfriendly"
947
+ version = "10.0"
948
+ source = { registry = "https://pypi.org/simple" }
949
+ dependencies = [
950
+ { name = "pyreadline3", marker = "sys_platform == 'win32'" },
951
+ ]
952
+ sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702, upload-time = "2021-09-17T21:40:43.31Z" }
953
+ wheels = [
954
+ { url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794, upload-time = "2021-09-17T21:40:39.897Z" },
955
+ ]
956
+
957
  [[package]]
958
  name = "idna"
959
  version = "3.10"
 
1356
  { url = "https://files.pythonhosted.org/packages/43/6a/ca128561b22b60bd5a0c4ea26649e68c8556b82bc70a0c396eebc977fe86/jupyterlab_widgets-3.0.15-py3-none-any.whl", hash = "sha256:d59023d7d7ef71400d51e6fee9a88867f6e65e10a4201605d2d7f3e8f012a31c", size = 216571, upload-time = "2025-05-05T12:32:29.534Z" },
1357
  ]
1358
 
1359
+ [[package]]
1360
+ name = "kaggle"
1361
+ version = "1.7.4.5"
1362
+ source = { registry = "https://pypi.org/simple" }
1363
+ dependencies = [
1364
+ { name = "bleach" },
1365
+ { name = "certifi" },
1366
+ { name = "charset-normalizer" },
1367
+ { name = "idna" },
1368
+ { name = "protobuf" },
1369
+ { name = "python-dateutil" },
1370
+ { name = "python-slugify" },
1371
+ { name = "requests" },
1372
+ { name = "setuptools" },
1373
+ { name = "six" },
1374
+ { name = "text-unidecode" },
1375
+ { name = "tqdm" },
1376
+ { name = "urllib3" },
1377
+ { name = "webencodings" },
1378
+ ]
1379
+ sdist = { url = "https://files.pythonhosted.org/packages/b1/02/b0c189a46531ea2b2691ae277508d2c80e5fd3d757083283c5cc27800ca8/kaggle-1.7.4.5.tar.gz", hash = "sha256:1d9821bd6a6a1470741c76d26495a18475b5a7bfe0c80b19191254b2735d41dd", size = 336100, upload-time = "2025-05-08T21:17:20.081Z" }
1380
+ wheels = [
1381
+ { url = "https://files.pythonhosted.org/packages/14/83/7f29c7abe0d5dc769dad7da993382c3e4239ad63e1dd58414d129e0a4da2/kaggle-1.7.4.5-py3-none-any.whl", hash = "sha256:9732afb1c073f14acc7e49dfab98456f887d10b735bcd6348bc1340e92393882", size = 181238, upload-time = "2025-05-08T21:17:18.245Z" },
1382
+ ]
1383
+
1384
  [[package]]
1385
  name = "kagglehub"
1386
  version = "0.3.12"
 
1536
  { url = "https://files.pythonhosted.org/packages/71/cf/e01dc4cc79779cd82d77888a88ae2fa424d93b445ad4f6c02bfc18335b70/libclang-18.1.1-py2.py3-none-win_arm64.whl", hash = "sha256:3f0e1f49f04d3cd198985fea0511576b0aee16f9ff0e0f0cad7f9c57ec3c20e8", size = 22361112, upload-time = "2024-03-17T16:42:59.565Z" },
1537
  ]
1538
 
1539
+ [[package]]
1540
+ name = "llvmlite"
1541
+ version = "0.44.0"
1542
+ source = { registry = "https://pypi.org/simple" }
1543
+ sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4", size = 171880, upload-time = "2025-01-20T11:14:41.342Z" }
1544
+ wheels = [
1545
+ { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad", size = 28132297, upload-time = "2025-01-20T11:13:32.57Z" },
1546
+ { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db", size = 26201105, upload-time = "2025-01-20T11:13:38.744Z" },
1547
+ { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9", size = 42361901, upload-time = "2025-01-20T11:13:46.711Z" },
1548
+ { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d", size = 41184247, upload-time = "2025-01-20T11:13:56.159Z" },
1549
+ { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1", size = 30332380, upload-time = "2025-01-20T11:14:02.442Z" },
1550
+ { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516", size = 28132306, upload-time = "2025-01-20T11:14:09.035Z" },
1551
+ { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e", size = 26201090, upload-time = "2025-01-20T11:14:15.401Z" },
1552
+ { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf", size = 42361904, upload-time = "2025-01-20T11:14:22.949Z" },
1553
+ { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc", size = 41184245, upload-time = "2025-01-20T11:14:31.731Z" },
1554
+ { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193, upload-time = "2025-01-20T11:14:38.578Z" },
1555
+ ]
1556
+
1557
  [[package]]
1558
  name = "markdown"
1559
  version = "3.8"
 
1702
  { url = "https://files.pythonhosted.org/packages/b7/45/c1a1ccfdd02bc4173ca0f4a2d327683a27df85797b885eb1da1ca325b85c/ml_dtypes-0.5.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d13755f8e8445b3870114e5b6240facaa7cb0c3361e54beba3e07fa912a6e12b", size = 5052731, upload-time = "2025-01-07T03:34:45.308Z" },
1703
  ]
1704
 
1705
+ [[package]]
1706
+ name = "mpmath"
1707
+ version = "1.3.0"
1708
+ source = { registry = "https://pypi.org/simple" }
1709
+ sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" }
1710
+ wheels = [
1711
+ { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" },
1712
+ ]
1713
+
1714
  [[package]]
1715
  name = "multidict"
1716
  version = "6.4.4"
 
1793
  source = { virtual = "." }
1794
  dependencies = [
1795
  { name = "datasets" },
1796
+ { name = "doubtlab" },
1797
  { name = "ipywidgets" },
1798
  { name = "jupyter" },
1799
+ { name = "kaggle" },
1800
  { name = "keras" },
1801
  { name = "keras-cv" },
1802
  { name = "keras-hub" },
1803
  { name = "matplotlib" },
1804
  { name = "notebook" },
1805
+ { name = "onnxruntime" },
1806
  { name = "scikit-learn" },
1807
  { name = "tensorflow" },
1808
  { name = "tensorflow-metal" },
1809
+ { name = "tf2onnx" },
1810
+ { name = "umap-learn" },
1811
  { name = "wandb" },
1812
  ]
1813
 
1814
  [package.metadata]
1815
  requires-dist = [
1816
  { name = "datasets", specifier = ">=3.6.0" },
1817
+ { name = "doubtlab", specifier = ">=0.2.4" },
1818
  { name = "ipywidgets", specifier = ">=8.1.7" },
1819
  { name = "jupyter", specifier = ">=1.1.1" },
1820
+ { name = "kaggle", specifier = ">=1.7.4.5" },
1821
  { name = "keras", specifier = ">=3.10.0" },
1822
  { name = "keras-cv", specifier = ">=0.9.0" },
1823
  { name = "keras-hub", specifier = ">=0.21.0" },
1824
  { name = "matplotlib", specifier = ">=3.10.3" },
1825
  { name = "notebook", specifier = ">=7.4.3" },
1826
+ { name = "onnxruntime", specifier = ">=1.22.0" },
1827
  { name = "scikit-learn", specifier = ">=1.6.1" },
1828
  { name = "tensorflow", specifier = ">=2.19.0" },
1829
  { name = "tensorflow-metal", specifier = ">=1.2.0" },
1830
+ { name = "tf2onnx", specifier = ">=1.16.1" },
1831
+ { name = "umap-learn", specifier = ">=0.5.7" },
1832
  { name = "wandb", specifier = ">=0.19.11" },
1833
  ]
1834
 
 
1933
  { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" },
1934
  ]
1935
 
1936
+ [[package]]
1937
+ name = "numba"
1938
+ version = "0.61.2"
1939
+ source = { registry = "https://pypi.org/simple" }
1940
+ dependencies = [
1941
+ { name = "llvmlite" },
1942
+ { name = "numpy" },
1943
+ ]
1944
+ sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615, upload-time = "2025-04-09T02:58:07.659Z" }
1945
+ wheels = [
1946
+ { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626, upload-time = "2025-04-09T02:57:51.857Z" },
1947
+ { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287, upload-time = "2025-04-09T02:57:53.658Z" },
1948
+ { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928, upload-time = "2025-04-09T02:57:55.206Z" },
1949
+ { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115, upload-time = "2025-04-09T02:57:56.818Z" },
1950
+ { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929, upload-time = "2025-04-09T02:57:58.45Z" },
1951
+ { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785, upload-time = "2025-04-09T02:57:59.96Z" },
1952
+ { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289, upload-time = "2025-04-09T02:58:01.435Z" },
1953
+ { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918, upload-time = "2025-04-09T02:58:02.933Z" },
1954
+ { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056, upload-time = "2025-04-09T02:58:04.538Z" },
1955
+ { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846, upload-time = "2025-04-09T02:58:06.125Z" },
1956
+ ]
1957
+
1958
  [[package]]
1959
  name = "numpy"
1960
  version = "2.1.3"
 
1993
  { url = "https://files.pythonhosted.org/packages/86/09/a5ab407bd7f5f5599e6a9261f964ace03a73e7c6928de906981c31c38082/numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4", size = 12644098, upload-time = "2024-11-02T17:46:07.941Z" },
1994
  ]
1995
 
1996
+ [[package]]
1997
+ name = "onnx"
1998
+ version = "1.17.0"
1999
+ source = { registry = "https://pypi.org/simple" }
2000
+ dependencies = [
2001
+ { name = "numpy" },
2002
+ { name = "protobuf" },
2003
+ ]
2004
+ sdist = { url = "https://files.pythonhosted.org/packages/9a/54/0e385c26bf230d223810a9c7d06628d954008a5e5e4b73ee26ef02327282/onnx-1.17.0.tar.gz", hash = "sha256:48ca1a91ff73c1d5e3ea2eef20ae5d0e709bb8a2355ed798ffc2169753013fd3", size = 12165120, upload-time = "2024-10-01T21:48:40.63Z" }
2005
+ wheels = [
2006
+ { url = "https://files.pythonhosted.org/packages/b4/dd/c416a11a28847fafb0db1bf43381979a0f522eb9107b831058fde012dd56/onnx-1.17.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:0e906e6a83437de05f8139ea7eaf366bf287f44ae5cc44b2850a30e296421f2f", size = 16651271, upload-time = "2024-10-01T21:46:16.084Z" },
2007
+ { url = "https://files.pythonhosted.org/packages/f0/6c/f040652277f514ecd81b7251841f96caa5538365af7df07f86c6018cda2b/onnx-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d955ba2939878a520a97614bcf2e79c1df71b29203e8ced478fa78c9a9c63c2", size = 15907522, upload-time = "2024-10-01T21:46:18.574Z" },
2008
+ { url = "https://files.pythonhosted.org/packages/3d/7c/67f4952d1b56b3f74a154b97d0dd0630d525923b354db117d04823b8b49b/onnx-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f3fb5cc4e2898ac5312a7dc03a65133dd2abf9a5e520e69afb880a7251ec97a", size = 16046307, upload-time = "2024-10-01T21:46:21.186Z" },
2009
+ { url = "https://files.pythonhosted.org/packages/ae/20/6da11042d2ab870dfb4ce4a6b52354d7651b6b4112038b6d2229ab9904c4/onnx-1.17.0-cp312-cp312-win32.whl", hash = "sha256:317870fca3349d19325a4b7d1b5628f6de3811e9710b1e3665c68b073d0e68d7", size = 14424235, upload-time = "2024-10-01T21:46:24.343Z" },
2010
+ { url = "https://files.pythonhosted.org/packages/35/55/c4d11bee1fdb0c4bd84b4e3562ff811a19b63266816870ae1f95567aa6e1/onnx-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:659b8232d627a5460d74fd3c96947ae83db6d03f035ac633e20cd69cfa029227", size = 14530453, upload-time = "2024-10-01T21:46:26.981Z" },
2011
+ ]
2012
+
2013
+ [[package]]
2014
+ name = "onnxruntime"
2015
+ version = "1.22.0"
2016
+ source = { registry = "https://pypi.org/simple" }
2017
+ dependencies = [
2018
+ { name = "coloredlogs" },
2019
+ { name = "flatbuffers" },
2020
+ { name = "numpy" },
2021
+ { name = "packaging" },
2022
+ { name = "protobuf" },
2023
+ { name = "sympy" },
2024
+ ]
2025
+ wheels = [
2026
+ { url = "https://files.pythonhosted.org/packages/4d/de/9162872c6e502e9ac8c99a98a8738b2fab408123d11de55022ac4f92562a/onnxruntime-1.22.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:f3c0380f53c1e72a41b3f4d6af2ccc01df2c17844072233442c3a7e74851ab97", size = 34298046, upload-time = "2025-05-09T20:26:02.399Z" },
2027
+ { url = "https://files.pythonhosted.org/packages/03/79/36f910cd9fc96b444b0e728bba14607016079786adf032dae61f7c63b4aa/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8601128eaef79b636152aea76ae6981b7c9fc81a618f584c15d78d42b310f1c", size = 14443220, upload-time = "2025-05-09T20:25:47.078Z" },
2028
+ { url = "https://files.pythonhosted.org/packages/8c/60/16d219b8868cc8e8e51a68519873bdb9f5f24af080b62e917a13fff9989b/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6964a975731afc19dc3418fad8d4e08c48920144ff590149429a5ebe0d15fb3c", size = 16406377, upload-time = "2025-05-09T20:26:14.478Z" },
2029
+ { url = "https://files.pythonhosted.org/packages/36/b4/3f1c71ce1d3d21078a6a74c5483bfa2b07e41a8d2b8fb1e9993e6a26d8d3/onnxruntime-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0d534a43d1264d1273c2d4f00a5a588fa98d21117a3345b7104fa0bbcaadb9a", size = 12692233, upload-time = "2025-05-12T21:26:16.963Z" },
2030
+ { url = "https://files.pythonhosted.org/packages/a9/65/5cb5018d5b0b7cba820d2c4a1d1b02d40df538d49138ba36a509457e4df6/onnxruntime-1.22.0-cp313-cp313-macosx_13_0_universal2.whl", hash = "sha256:fe7c051236aae16d8e2e9ffbfc1e115a0cc2450e873a9c4cb75c0cc96c1dae07", size = 34298715, upload-time = "2025-05-09T20:26:05.634Z" },
2031
+ { url = "https://files.pythonhosted.org/packages/e1/89/1dfe1b368831d1256b90b95cb8d11da8ab769febd5c8833ec85ec1f79d21/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a6bbed10bc5e770c04d422893d3045b81acbbadc9fb759a2cd1ca00993da919", size = 14443266, upload-time = "2025-05-09T20:25:49.479Z" },
2032
+ { url = "https://files.pythonhosted.org/packages/1e/70/342514ade3a33ad9dd505dcee96ff1f0e7be6d0e6e9c911fe0f1505abf42/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe45ee3e756300fccfd8d61b91129a121d3d80e9d38e01f03ff1295badc32b8", size = 16406707, upload-time = "2025-05-09T20:26:17.454Z" },
2033
+ { url = "https://files.pythonhosted.org/packages/3e/89/2f64e250945fa87140fb917ba377d6d0e9122e029c8512f389a9b7f953f4/onnxruntime-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:5a31d84ef82b4b05d794a4ce8ba37b0d9deb768fd580e36e17b39e0b4840253b", size = 12691777, upload-time = "2025-05-12T21:26:20.19Z" },
2034
+ { url = "https://files.pythonhosted.org/packages/9f/48/d61d5f1ed098161edd88c56cbac49207d7b7b149e613d2cd7e33176c63b3/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2ac5bd9205d831541db4e508e586e764a74f14efdd3f89af7fd20e1bf4a1ed", size = 14454003, upload-time = "2025-05-09T20:25:52.287Z" },
2035
+ { url = "https://files.pythonhosted.org/packages/c3/16/873b955beda7bada5b0d798d3a601b2ff210e44ad5169f6d405b93892103/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64845709f9e8a2809e8e009bc4c8f73b788cee9c6619b7d9930344eae4c9cd36", size = 16427482, upload-time = "2025-05-09T20:26:20.376Z" },
2036
+ ]
2037
+
2038
  [[package]]
2039
  name = "opt-einsum"
2040
  version = "3.4.0"
 
2306
 
2307
  [[package]]
2308
  name = "protobuf"
2309
+ version = "3.20.3"
2310
  source = { registry = "https://pypi.org/simple" }
2311
+ sdist = { url = "https://files.pythonhosted.org/packages/55/5b/e3d951e34f8356e5feecacd12a8e3b258a1da6d9a03ad1770f28925f29bc/protobuf-3.20.3.tar.gz", hash = "sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2", size = 216768, upload-time = "2022-09-29T22:39:47.592Z" }
2312
  wheels = [
2313
+ { url = "https://files.pythonhosted.org/packages/8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any.whl", hash = "sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db", size = 162128, upload-time = "2022-09-29T22:39:44.547Z" },
 
 
 
 
 
2314
  ]
2315
 
2316
  [[package]]
 
2456
  { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" },
2457
  ]
2458
 
2459
+ [[package]]
2460
+ name = "pynndescent"
2461
+ version = "0.5.13"
2462
+ source = { registry = "https://pypi.org/simple" }
2463
+ dependencies = [
2464
+ { name = "joblib" },
2465
+ { name = "llvmlite" },
2466
+ { name = "numba" },
2467
+ { name = "scikit-learn" },
2468
+ { name = "scipy" },
2469
+ ]
2470
+ sdist = { url = "https://files.pythonhosted.org/packages/7e/58/560a4db5eb3794d922fe55804b10326534ded3d971e1933c1eef91193f5e/pynndescent-0.5.13.tar.gz", hash = "sha256:d74254c0ee0a1eeec84597d5fe89fedcf778593eeabe32c2f97412934a9800fb", size = 2975955, upload-time = "2024-06-17T15:48:32.914Z" }
2471
+ wheels = [
2472
+ { url = "https://files.pythonhosted.org/packages/d2/53/d23a97e0a2c690d40b165d1062e2c4ccc796be458a1ce59f6ba030434663/pynndescent-0.5.13-py3-none-any.whl", hash = "sha256:69aabb8f394bc631b6ac475a1c7f3994c54adf3f51cd63b2730fefba5771b949", size = 56850, upload-time = "2024-06-17T15:48:31.184Z" },
2473
+ ]
2474
+
2475
  [[package]]
2476
  name = "pyparsing"
2477
  version = "3.2.3"
 
2481
  { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" },
2482
  ]
2483
 
2484
+ [[package]]
2485
+ name = "pyreadline3"
2486
+ version = "3.5.4"
2487
+ source = { registry = "https://pypi.org/simple" }
2488
+ sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7", size = 99839, upload-time = "2024-09-19T02:40:10.062Z" }
2489
+ wheels = [
2490
+ { url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178, upload-time = "2024-09-19T02:40:08.598Z" },
2491
+ ]
2492
+
2493
  [[package]]
2494
  name = "python-dateutil"
2495
  version = "2.9.0.post0"
 
2511
  { url = "https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl", hash = "sha256:dd980fae8cffb24c13caf6e158d3d61c0d6d22342f932cb6e9deedab3d35eec7", size = 15163, upload-time = "2025-03-07T07:08:25.627Z" },
2512
  ]
2513
 
2514
+ [[package]]
2515
+ name = "python-slugify"
2516
+ version = "8.0.4"
2517
+ source = { registry = "https://pypi.org/simple" }
2518
+ dependencies = [
2519
+ { name = "text-unidecode" },
2520
+ ]
2521
+ sdist = { url = "https://files.pythonhosted.org/packages/87/c7/5e1547c44e31da50a460df93af11a535ace568ef89d7a811069ead340c4a/python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856", size = 10921, upload-time = "2024-02-08T18:32:45.488Z" }
2522
+ wheels = [
2523
+ { url = "https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8", size = 10051, upload-time = "2024-02-08T18:32:43.911Z" },
2524
+ ]
2525
+
2526
  [[package]]
2527
  name = "pytz"
2528
  version = "2025.2"
 
2977
  { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" },
2978
  ]
2979
 
2980
+ [[package]]
2981
+ name = "sympy"
2982
+ version = "1.14.0"
2983
+ source = { registry = "https://pypi.org/simple" }
2984
+ dependencies = [
2985
+ { name = "mpmath" },
2986
+ ]
2987
+ sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" }
2988
+ wheels = [
2989
+ { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" },
2990
+ ]
2991
+
2992
  [[package]]
2993
  name = "tensorboard"
2994
  version = "2.19.0"
 
3083
 
3084
  [[package]]
3085
  name = "tensorflow-metadata"
3086
+ version = "0.22.2"
3087
  source = { registry = "https://pypi.org/simple" }
3088
  dependencies = [
 
3089
  { name = "googleapis-common-protos" },
3090
  { name = "protobuf" },
3091
  ]
3092
  wheels = [
3093
+ { url = "https://files.pythonhosted.org/packages/91/94/07baf9e2a060fc5c7bd95052cc9114afd3f67b6927bd7224c0626fad5703/tensorflow_metadata-0.22.2-py2.py3-none-any.whl", hash = "sha256:f9ffde743dd61f775f35872e79c4eefecbc539a8870e57b20359dc74726f06eb", size = 32062, upload-time = "2020-06-05T18:19:43.687Z" },
3094
  ]
3095
 
3096
  [[package]]
 
3141
  { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" },
3142
  ]
3143
 
3144
+ [[package]]
3145
+ name = "text-unidecode"
3146
+ version = "1.3"
3147
+ source = { registry = "https://pypi.org/simple" }
3148
+ sdist = { url = "https://files.pythonhosted.org/packages/ab/e2/e9a00f0ccb71718418230718b3d900e71a5d16e701a3dae079a21e9cd8f8/text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93", size = 76885, upload-time = "2019-08-30T21:36:45.405Z" }
3149
+ wheels = [
3150
+ { url = "https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", size = 78154, upload-time = "2019-08-30T21:37:03.543Z" },
3151
+ ]
3152
+
3153
+ [[package]]
3154
+ name = "tf2onnx"
3155
+ version = "1.16.1"
3156
+ source = { registry = "https://pypi.org/simple" }
3157
+ dependencies = [
3158
+ { name = "flatbuffers" },
3159
+ { name = "numpy" },
3160
+ { name = "onnx" },
3161
+ { name = "protobuf" },
3162
+ { name = "requests" },
3163
+ { name = "six" },
3164
+ ]
3165
+ wheels = [
3166
+ { url = "https://files.pythonhosted.org/packages/3f/48/826db3d02645d84e7ee5d5ce8407f771057d40fe224d9c3e89536674ccef/tf2onnx-1.16.1-py3-none-any.whl", hash = "sha256:90fb5f62575896d47884d27dc313cfebff36b8783e1094335ad00824ce923a8a", size = 455820, upload-time = "2024-01-16T10:30:19.345Z" },
3167
+ ]
3168
+
3169
  [[package]]
3170
  name = "threadpoolctl"
3171
  version = "3.6.0"
 
3275
  { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" },
3276
  ]
3277
 
3278
+ [[package]]
3279
+ name = "umap-learn"
3280
+ version = "0.5.7"
3281
+ source = { registry = "https://pypi.org/simple" }
3282
+ dependencies = [
3283
+ { name = "numba" },
3284
+ { name = "numpy" },
3285
+ { name = "pynndescent" },
3286
+ { name = "scikit-learn" },
3287
+ { name = "scipy" },
3288
+ { name = "tqdm" },
3289
+ ]
3290
+ sdist = { url = "https://files.pythonhosted.org/packages/6f/d4/9ed627905f7993349671283b3c5bf2d9f543ef79229fa1c7e01324eb900c/umap-learn-0.5.7.tar.gz", hash = "sha256:b2a97973e4c6ffcebf241100a8de589a4c84126a832ab40f296c6d9fcc5eb19e", size = 92680, upload-time = "2024-10-28T18:05:57.093Z" }
3291
+ wheels = [
3292
+ { url = "https://files.pythonhosted.org/packages/3c/8f/671c0e1f2572ba625cbcc1faeba9435e00330c3d6962858711445cf1e817/umap_learn-0.5.7-py3-none-any.whl", hash = "sha256:6a7e0be2facfa365a5ed6588447102bdbef32a0ef449535c25c97ea7e680073c", size = 88815, upload-time = "2024-10-28T18:05:55.333Z" },
3293
+ ]
3294
+
3295
  [[package]]
3296
  name = "uri-template"
3297
  version = "1.3.0"