Skip to content

Commit 77dba60

Browse files
committed
unbalanced + cylinders
1 parent 831cff5 commit 77dba60

File tree

6 files changed

+222
-5096
lines changed

6 files changed

+222
-5096
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Many of the examples and studies depend on the [ParticleLoader](https://github.c
5454

5555
## Changelog
5656

57+
- v1.1.0: 13 May 2025. Added support for cylindrical metrics. Added support for unbalanced OT. Resolved bugs relating to zero-padding.
5758
- v1.0.0: 8 October 2024. Official public release.
5859

5960
Based on the work in ["SPECTER: fficient Evaluation of the Spectral EMD" (arxiv:2410.XXXXX)](https://arxiv.org/abs/2410.XXXXX)

examples/unbalanced.ipynb

Lines changed: 101 additions & 4924 deletions
Large diffs are not rendered by default.

pairwise_semds_examples.ipynb

Lines changed: 29 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,14 @@
115115
},
116116
{
117117
"cell_type": "code",
118-
"execution_count": 3,
118+
"execution_count": null,
119119
"metadata": {},
120120
"outputs": [
121121
{
122122
"name": "stderr",
123123
"output_type": "stream",
124124
"text": [
125-
"2025-02-24 11:39:26.726815: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n",
125+
"2025-05-13 21:22:40.558926: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n",
126126
"No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n",
127127
"/home/rikab/miniconda3/envs/SHAPER/lib/python3.8/site-packages/ot/backend.py:2998: UserWarning: To use TensorflowBackend, you need to activate the tensorflow numpy API. You can activate it by running: \n",
128128
"from tensorflow.python.ops.numpy_ops import np_config\n",
@@ -140,107 +140,20 @@
140140
"Compiling with vmap after jit\n",
141141
"Compiling with vmap after jit\n",
142142
"Compiling with vmap after jit\n",
143-
"1-sPronginess: Epoch 0 of 50, Mean Loss: 9.244e-02, Time: 2.356s ( 2.356s), Early Stopping: 0.000\n",
144-
"1-sPronginess: Epoch 1 of 50, Mean Loss: 9.244e-02, Time: 2.520s ( 0.164s), Early Stopping: 0.000\n",
145-
"1-sPronginess: Epoch 2 of 50, Mean Loss: 9.244e-02, Time: 2.603s ( 0.083s), Early Stopping: 0.000\n",
146-
"1-sPronginess: Epoch 3 of 50, Mean Loss: 9.244e-02, Time: 2.676s ( 0.073s), Early Stopping: 0.000\n",
147-
"1-sPronginess: Epoch 4 of 50, Mean Loss: 9.244e-02, Time: 2.750s ( 0.075s), Early Stopping: 0.000\n",
148-
"1-sPronginess: Epoch 5 of 50, Mean Loss: 9.244e-02, Time: 2.823s ( 0.073s), Early Stopping: 0.000\n",
149-
"1-sPronginess: Epoch 6 of 50, Mean Loss: 9.244e-02, Time: 2.899s ( 0.076s), Early Stopping: 0.000\n",
150-
"1-sPronginess: Epoch 7 of 50, Mean Loss: 9.244e-02, Time: 2.974s ( 0.075s), Early Stopping: 0.000\n",
151-
"1-sPronginess: Epoch 8 of 50, Mean Loss: 9.244e-02, Time: 3.050s ( 0.076s), Early Stopping: 0.000\n",
152-
"1-sPronginess: Epoch 9 of 50, Mean Loss: 9.244e-02, Time: 3.128s ( 0.078s), Early Stopping: 0.000\n",
153-
"1-sPronginess: Epoch 10 of 50, Mean Loss: 9.244e-02, Time: 3.212s ( 0.083s), Early Stopping: 0.000\n",
154-
"1-sPronginess: Epoch 11 of 50, Mean Loss: 9.244e-02, Time: 3.308s ( 0.097s), Early Stopping: 0.000\n",
155-
"1-sPronginess: Epoch 12 of 50, Mean Loss: 9.244e-02, Time: 3.388s ( 0.080s), Early Stopping: 0.000\n",
156-
"1-sPronginess: Epoch 13 of 50, Mean Loss: 9.244e-02, Time: 3.474s ( 0.086s), Early Stopping: 0.000\n",
157-
"1-sPronginess: Epoch 14 of 50, Mean Loss: 9.244e-02, Time: 3.554s ( 0.080s), Early Stopping: 0.000\n",
158-
"1-sPronginess: Epoch 15 of 50, Mean Loss: 9.244e-02, Time: 3.632s ( 0.079s), Early Stopping: 0.000\n",
159-
"1-sPronginess: Epoch 16 of 50, Mean Loss: 9.244e-02, Time: 3.711s ( 0.079s), Early Stopping: 0.000\n",
160-
"1-sPronginess: Epoch 17 of 50, Mean Loss: 9.244e-02, Time: 3.787s ( 0.076s), Early Stopping: 0.000\n",
161-
"1-sPronginess: Epoch 18 of 50, Mean Loss: 9.244e-02, Time: 3.865s ( 0.077s), Early Stopping: 0.000\n",
162-
"1-sPronginess: Epoch 19 of 50, Mean Loss: 9.244e-02, Time: 3.942s ( 0.077s), Early Stopping: 0.000\n",
163-
"1-sPronginess: Epoch 20 of 50, Mean Loss: 9.244e-02, Time: 4.020s ( 0.078s), Early Stopping: 0.000\n",
164-
"1-sPronginess: Epoch 21 of 50, Mean Loss: 9.244e-02, Time: 4.112s ( 0.092s), Early Stopping: 0.000\n",
165-
"1-sPronginess: Epoch 22 of 50, Mean Loss: 9.244e-02, Time: 4.204s ( 0.092s), Early Stopping: 0.000\n",
166-
"1-sPronginess: Epoch 23 of 50, Mean Loss: 9.244e-02, Time: 4.278s ( 0.074s), Early Stopping: 0.000\n",
167-
"1-sPronginess: Epoch 24 of 50, Mean Loss: 9.244e-02, Time: 4.352s ( 0.073s), Early Stopping: 0.000\n",
168-
"1-sPronginess: Epoch 25 of 50, Mean Loss: 9.244e-02, Time: 4.429s ( 0.078s), Early Stopping: 0.000\n",
169-
"1-sPronginess: Epoch 26 of 50, Mean Loss: 9.244e-02, Time: 4.505s ( 0.076s), Early Stopping: 0.000\n",
170-
"1-sPronginess: Epoch 27 of 50, Mean Loss: 9.244e-02, Time: 4.589s ( 0.084s), Early Stopping: 0.000\n",
171-
"1-sPronginess: Epoch 28 of 50, Mean Loss: 9.244e-02, Time: 4.668s ( 0.079s), Early Stopping: 0.000\n",
172-
"1-sPronginess: Epoch 29 of 50, Mean Loss: 9.244e-02, Time: 4.751s ( 0.083s), Early Stopping: 0.000\n",
173-
"1-sPronginess: Epoch 30 of 50, Mean Loss: 9.244e-02, Time: 4.840s ( 0.089s), Early Stopping: 0.000\n",
174-
"1-sPronginess: Epoch 31 of 50, Mean Loss: 9.244e-02, Time: 4.930s ( 0.090s), Early Stopping: 0.000\n",
175-
"1-sPronginess: Epoch 32 of 50, Mean Loss: 9.244e-02, Time: 5.006s ( 0.076s), Early Stopping: 0.000\n",
176-
"1-sPronginess: Epoch 33 of 50, Mean Loss: 9.244e-02, Time: 5.086s ( 0.079s), Early Stopping: 0.000\n",
177-
"1-sPronginess: Epoch 34 of 50, Mean Loss: 9.244e-02, Time: 5.166s ( 0.080s), Early Stopping: 0.000\n",
178-
"1-sPronginess: Epoch 35 of 50, Mean Loss: 9.244e-02, Time: 5.250s ( 0.085s), Early Stopping: 0.000\n",
179-
"1-sPronginess: Epoch 36 of 50, Mean Loss: 9.244e-02, Time: 5.330s ( 0.080s), Early Stopping: 0.000\n",
180-
"1-sPronginess: Epoch 37 of 50, Mean Loss: 9.244e-02, Time: 5.414s ( 0.084s), Early Stopping: 0.000\n",
181-
"1-sPronginess: Epoch 38 of 50, Mean Loss: 9.244e-02, Time: 5.496s ( 0.082s), Early Stopping: 0.000\n",
182-
"1-sPronginess: Epoch 39 of 50, Mean Loss: 9.244e-02, Time: 5.577s ( 0.081s), Early Stopping: 0.000\n",
183-
"1-sPronginess: Epoch 40 of 50, Mean Loss: 9.244e-02, Time: 5.665s ( 0.087s), Early Stopping: 0.000\n",
184-
"1-sPronginess: Epoch 41 of 50, Mean Loss: 9.244e-02, Time: 5.744s ( 0.079s), Early Stopping: 0.000\n",
185-
"1-sPronginess: Epoch 42 of 50, Mean Loss: 9.244e-02, Time: 5.823s ( 0.079s), Early Stopping: 0.000\n",
186-
"1-sPronginess: Epoch 43 of 50, Mean Loss: 9.244e-02, Time: 5.900s ( 0.077s), Early Stopping: 0.000\n",
187-
"1-sPronginess: Epoch 44 of 50, Mean Loss: 9.244e-02, Time: 5.975s ( 0.075s), Early Stopping: 0.000\n",
188-
"1-sPronginess: Epoch 45 of 50, Mean Loss: 9.244e-02, Time: 6.053s ( 0.078s), Early Stopping: 0.000\n",
189-
"1-sPronginess: Epoch 46 of 50, Mean Loss: 9.244e-02, Time: 6.135s ( 0.082s), Early Stopping: 0.000\n",
190-
"1-sPronginess: Epoch 47 of 50, Mean Loss: 9.244e-02, Time: 6.216s ( 0.081s), Early Stopping: 0.000\n",
191-
"1-sPronginess: Epoch 48 of 50, Mean Loss: 9.244e-02, Time: 6.302s ( 0.086s), Early Stopping: 0.000\n",
192-
"1-sPronginess: Epoch 49 of 50, Mean Loss: 9.244e-02, Time: 6.381s ( 0.079s), Early Stopping: 0.000\n",
193-
"1-sPronginess: Epoch 0 of 50, Mean Loss: 7.292e-03, Time: 3.952s ( 3.952s), Early Stopping: 0.000\n",
194-
"1-sPronginess: Epoch 1 of 50, Mean Loss: 7.019e-03, Time: 4.066s ( 0.114s), Early Stopping: 0.000\n",
195-
"1-sPronginess: Epoch 2 of 50, Mean Loss: 6.795e-03, Time: 4.177s ( 0.111s), Early Stopping: 0.000\n",
196-
"1-sPronginess: Epoch 3 of 50, Mean Loss: 6.624e-03, Time: 4.291s ( 0.114s), Early Stopping: 0.000\n",
197-
"1-sPronginess: Epoch 4 of 50, Mean Loss: 6.502e-03, Time: 4.413s ( 0.123s), Early Stopping: 0.000\n",
198-
"1-sPronginess: Epoch 5 of 50, Mean Loss: 6.406e-03, Time: 4.533s ( 0.119s), Early Stopping: 0.000\n",
199-
"1-sPronginess: Epoch 6 of 50, Mean Loss: 6.250e-03, Time: 4.652s ( 0.120s), Early Stopping: 0.000\n",
200-
"1-sPronginess: Epoch 7 of 50, Mean Loss: 6.187e-03, Time: 4.768s ( 0.115s), Early Stopping: 0.000\n",
201-
"1-sPronginess: Epoch 8 of 50, Mean Loss: 6.132e-03, Time: 4.893s ( 0.125s), Early Stopping: 0.000\n",
202-
"1-sPronginess: Epoch 9 of 50, Mean Loss: 6.050e-03, Time: 5.013s ( 0.120s), Early Stopping: 0.000\n",
203-
"1-sPronginess: Epoch 10 of 50, Mean Loss: 6.040e-03, Time: 5.122s ( 0.109s), Early Stopping: 0.000\n",
204-
"1-sPronginess: Epoch 11 of 50, Mean Loss: 5.981e-03, Time: 5.240s ( 0.117s), Early Stopping: 0.000\n",
205-
"1-sPronginess: Epoch 12 of 50, Mean Loss: 5.951e-03, Time: 5.356s ( 0.116s), Early Stopping: 0.000\n",
206-
"1-sPronginess: Epoch 13 of 50, Mean Loss: 5.973e-03, Time: 5.467s ( 0.111s), Early Stopping: 0.000\n",
207-
"1-sPronginess: Epoch 14 of 50, Mean Loss: 5.887e-03, Time: 5.583s ( 0.116s), Early Stopping: 0.000\n",
208-
"1-sPronginess: Epoch 15 of 50, Mean Loss: 5.891e-03, Time: 5.693s ( 0.111s), Early Stopping: 0.000\n",
209-
"1-sPronginess: Epoch 16 of 50, Mean Loss: 5.873e-03, Time: 5.806s ( 0.113s), Early Stopping: 0.000\n",
210-
"1-sPronginess: Epoch 17 of 50, Mean Loss: 5.852e-03, Time: 5.923s ( 0.117s), Early Stopping: 0.000\n",
211-
"1-sPronginess: Epoch 18 of 50, Mean Loss: 5.843e-03, Time: 6.033s ( 0.110s), Early Stopping: 0.000\n",
212-
"1-sPronginess: Epoch 19 of 50, Mean Loss: 5.855e-03, Time: 6.144s ( 0.111s), Early Stopping: 0.000\n",
213-
"1-sPronginess: Epoch 20 of 50, Mean Loss: 5.824e-03, Time: 6.271s ( 0.127s), Early Stopping: 0.000\n",
214-
"1-sPronginess: Epoch 21 of 50, Mean Loss: 5.805e-03, Time: 6.391s ( 0.120s), Early Stopping: 0.000\n",
215-
"1-sPronginess: Epoch 22 of 50, Mean Loss: 5.873e-03, Time: 6.507s ( 0.116s), Early Stopping: 0.000\n",
216-
"1-sPronginess: Epoch 23 of 50, Mean Loss: 5.809e-03, Time: 6.630s ( 0.123s), Early Stopping: 0.000\n",
217-
"1-sPronginess: Epoch 24 of 50, Mean Loss: 5.791e-03, Time: 6.746s ( 0.116s), Early Stopping: 0.000\n",
218-
"1-sPronginess: Epoch 25 of 50, Mean Loss: 5.803e-03, Time: 6.867s ( 0.122s), Early Stopping: 0.000\n",
219-
"1-sPronginess: Epoch 26 of 50, Mean Loss: 5.803e-03, Time: 6.980s ( 0.113s), Early Stopping: 0.000\n",
220-
"1-sPronginess: Epoch 27 of 50, Mean Loss: 5.795e-03, Time: 7.109s ( 0.129s), Early Stopping: 0.000\n",
221-
"1-sPronginess: Epoch 28 of 50, Mean Loss: 5.778e-03, Time: 7.229s ( 0.120s), Early Stopping: 0.000\n",
222-
"1-sPronginess: Epoch 29 of 50, Mean Loss: 5.783e-03, Time: 7.349s ( 0.120s), Early Stopping: 0.000\n",
223-
"1-sPronginess: Epoch 30 of 50, Mean Loss: 5.780e-03, Time: 7.467s ( 0.118s), Early Stopping: 0.000\n",
224-
"1-sPronginess: Epoch 31 of 50, Mean Loss: 5.822e-03, Time: 7.584s ( 0.117s), Early Stopping: 0.000\n",
225-
"1-sPronginess: Epoch 32 of 50, Mean Loss: 5.786e-03, Time: 7.734s ( 0.150s), Early Stopping: 0.000\n",
226-
"1-sPronginess: Epoch 33 of 50, Mean Loss: 5.777e-03, Time: 7.852s ( 0.119s), Early Stopping: 0.000\n",
227-
"1-sPronginess: Epoch 34 of 50, Mean Loss: 5.787e-03, Time: 7.975s ( 0.123s), Early Stopping: 0.000\n",
228-
"1-sPronginess: Epoch 35 of 50, Mean Loss: 5.785e-03, Time: 8.102s ( 0.127s), Early Stopping: 0.000\n",
229-
"1-sPronginess: Epoch 36 of 50, Mean Loss: 5.778e-03, Time: 8.234s ( 0.132s), Early Stopping: 0.000\n",
230-
"1-sPronginess: Epoch 37 of 50, Mean Loss: 5.777e-03, Time: 8.361s ( 0.127s), Early Stopping: 0.000\n",
231-
"1-sPronginess: Epoch 38 of 50, Mean Loss: 5.770e-03, Time: 8.480s ( 0.120s), Early Stopping: 0.000\n",
232-
"1-sPronginess: Epoch 39 of 50, Mean Loss: 5.791e-03, Time: 8.604s ( 0.124s), Early Stopping: 0.000\n",
233-
"1-sPronginess: Epoch 40 of 50, Mean Loss: 5.773e-03, Time: 8.721s ( 0.117s), Early Stopping: 0.000\n",
234-
"1-sPronginess: Epoch 41 of 50, Mean Loss: 5.786e-03, Time: 8.842s ( 0.121s), Early Stopping: 0.000\n",
235-
"1-sPronginess: Epoch 42 of 50, Mean Loss: 5.799e-03, Time: 8.966s ( 0.124s), Early Stopping: 0.000\n",
236-
"1-sPronginess: Epoch 43 of 50, Mean Loss: 5.769e-03, Time: 9.103s ( 0.137s), Early Stopping: 0.000\n",
237-
"1-sPronginess: Epoch 44 of 50, Mean Loss: 5.770e-03, Time: 9.232s ( 0.129s), Early Stopping: 0.000\n",
238-
"1-sPronginess: Epoch 45 of 50, Mean Loss: 5.783e-03, Time: 9.364s ( 0.133s), Early Stopping: 0.000\n",
239-
"1-sPronginess: Epoch 46 of 50, Mean Loss: 5.783e-03, Time: 9.501s ( 0.137s), Early Stopping: 0.000\n",
240-
"1-sPronginess: Epoch 47 of 50, Mean Loss: 5.768e-03, Time: 9.629s ( 0.128s), Early Stopping: 0.000\n",
241-
"1-sPronginess: Epoch 48 of 50, Mean Loss: 5.767e-03, Time: 9.777s ( 0.148s), Early Stopping: 0.000\n",
242-
"1-sPronginess: Epoch 49 of 50, Mean Loss: 5.757e-03, Time: 9.897s ( 0.120s), Early Stopping: 0.000\n",
243-
"Compiling with vmap after jit\n"
143+
"1-sPronginess: Epoch 0 of 50, Mean Loss: 9.244e-02, Time: 2.494s ( 2.494s), Early Stopping: 0.000\n",
144+
"1-sPronginess: Epoch 1 of 50, Mean Loss: 9.244e-02, Time: 2.672s ( 0.178s), Early Stopping: 0.000\n",
145+
"1-sPronginess: Epoch 2 of 50, Mean Loss: 9.244e-02, Time: 2.757s ( 0.085s), Early Stopping: 0.000\n",
146+
"1-sPronginess: Epoch 3 of 50, Mean Loss: 9.244e-02, Time: 2.833s ( 0.075s), Early Stopping: 0.000\n",
147+
"1-sPronginess: Epoch 4 of 50, Mean Loss: 9.244e-02, Time: 2.910s ( 0.077s), Early Stopping: 0.000\n",
148+
"1-sPronginess: Epoch 5 of 50, Mean Loss: 9.244e-02, Time: 2.989s ( 0.079s), Early Stopping: 0.000\n",
149+
"1-sPronginess: Epoch 6 of 50, Mean Loss: 9.244e-02, Time: 3.069s ( 0.080s), Early Stopping: 0.000\n",
150+
"1-sPronginess: Epoch 7 of 50, Mean Loss: 9.244e-02, Time: 3.150s ( 0.081s), Early Stopping: 0.000\n",
151+
"1-sPronginess: Epoch 8 of 50, Mean Loss: 9.244e-02, Time: 3.231s ( 0.081s), Early Stopping: 0.000\n",
152+
"1-sPronginess: Epoch 9 of 50, Mean Loss: 9.244e-02, Time: 3.334s ( 0.103s), Early Stopping: 0.000\n",
153+
"1-sPronginess: Epoch 10 of 50, Mean Loss: 9.244e-02, Time: 3.418s ( 0.084s), Early Stopping: 0.000\n",
154+
"1-sPronginess: Epoch 11 of 50, Mean Loss: 9.244e-02, Time: 3.493s ( 0.075s), Early Stopping: 0.000\n",
155+
"1-sPronginess: Epoch 12 of 50, Mean Loss: 9.244e-02, Time: 3.571s ( 0.078s), Early Stopping: 0.000\n",
156+
"1-sPronginess: Epoch 13 of 50, Mean Loss: 9.244e-02, Time: 3.650s ( 0.079s), Early Stopping: 0.000\n"
244157
]
245158
}
246159
],
@@ -279,7 +192,7 @@
279192
},
280193
{
281194
"cell_type": "code",
282-
"execution_count": 4,
195+
"execution_count": null,
283196
"metadata": {},
284197
"outputs": [],
285198
"source": [
@@ -295,7 +208,7 @@
295208
},
296209
{
297210
"cell_type": "code",
298-
"execution_count": 5,
211+
"execution_count": null,
299212
"metadata": {},
300213
"outputs": [
301214
{
@@ -349,7 +262,7 @@
349262
},
350263
{
351264
"cell_type": "code",
352-
"execution_count": 6,
265+
"execution_count": null,
353266
"metadata": {},
354267
"outputs": [
355268
{
@@ -403,7 +316,7 @@
403316
},
404317
{
405318
"cell_type": "code",
406-
"execution_count": 7,
319+
"execution_count": null,
407320
"metadata": {},
408321
"outputs": [
409322
{
@@ -452,7 +365,7 @@
452365
},
453366
{
454367
"cell_type": "code",
455-
"execution_count": 14,
368+
"execution_count": null,
456369
"metadata": {},
457370
"outputs": [
458371
{
@@ -529,7 +442,7 @@
529442
},
530443
{
531444
"cell_type": "code",
532-
"execution_count": 12,
445+
"execution_count": null,
533446
"metadata": {},
534447
"outputs": [
535448
{
@@ -576,7 +489,7 @@
576489
},
577490
{
578491
"cell_type": "code",
579-
"execution_count": 16,
492+
"execution_count": null,
580493
"metadata": {},
581494
"outputs": [
582495
{
@@ -617,7 +530,7 @@
617530
},
618531
{
619532
"cell_type": "code",
620-
"execution_count": 53,
533+
"execution_count": null,
621534
"metadata": {},
622535
"outputs": [
623536
{
@@ -5646,7 +5559,7 @@
56465559
},
56475560
{
56485561
"cell_type": "code",
5649-
"execution_count": 32,
5562+
"execution_count": null,
56505563
"metadata": {},
56515564
"outputs": [
56525565
{
@@ -10635,7 +10548,7 @@
1063510548
},
1063610549
{
1063710550
"cell_type": "code",
10638-
"execution_count": 16,
10551+
"execution_count": null,
1063910552
"metadata": {},
1064010553
"outputs": [
1064110554
{
@@ -15671,7 +15584,7 @@
1567115584
},
1567215585
{
1567315586
"cell_type": "code",
15674-
"execution_count": 34,
15587+
"execution_count": null,
1567515588
"metadata": {},
1567615589
"outputs": [
1567715590
{
@@ -15708,7 +15621,7 @@
1570815621
},
1570915622
{
1571015623
"cell_type": "code",
15711-
"execution_count": 50,
15624+
"execution_count": null,
1571215625
"metadata": {},
1571315626
"outputs": [
1571415627
{
@@ -15791,7 +15704,7 @@
1579115704
},
1579215705
{
1579315706
"cell_type": "code",
15794-
"execution_count": 23,
15707+
"execution_count": null,
1579515708
"metadata": {},
1579615709
"outputs": [
1579715710
{

0 commit comments

Comments
 (0)