ofs | hex dump | ascii |
---|
0000 | 50 4b 03 04 14 00 00 00 00 00 2d 60 cb 4c 88 ac 62 ba 81 11 00 00 81 11 00 00 11 00 00 00 70 6c | PK........-`.L..b.............pl |
0020 | 6f 74 5f 67 72 6f 6d 6f 76 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 | ot_gromov.ipynb{..."cells":.[... |
0040 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 | ..{......."cell_type":."code",.. |
0060 | 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 | ....."execution_count":.null,... |
0080 | 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 | ...."metadata":.{........."colla |
00a0 | 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 | psed":.false.......},......."out |
00c0 | 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | puts":.[],......."source":.[.... |
00e0 | 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 | ....."%matplotlib.inline"....... |
0100 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
0120 | 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | :."markdown",......."metadata":. |
0140 | 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c | {},......."source":.[........."\ |
0160 | 6e 23 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 65 78 61 6d 70 6c 65 5c 6e 5c | n#.Gromov-Wasserstein.example\n\ |
0180 | 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 | n\nThis.example.is.designed.to.s |
01a0 | 68 6f 77 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 65 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 | how.how.to.use.the.Gromov-Wasser |
01c0 | 74 73 65 69 6e 20 64 69 73 74 61 6e 63 65 5c 6e 63 6f 6d 70 75 74 61 74 69 6f 6e 20 69 6e 20 50 | tsein.distance\ncomputation.in.P |
01e0 | 4f 54 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | OT.\n\n".......].....},.....{... |
0200 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 | ...."cell_type":."code",......." |
0220 | 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d | execution_count":.null,......."m |
0240 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a | etadata":.{........."collapsed": |
0260 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | .false.......},......."outputs": |
0280 | 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .[],......."source":.[........." |
02a0 | 23 20 41 75 74 68 6f 72 3a 20 45 72 77 61 6e 20 56 61 75 74 69 65 72 20 3c 65 72 77 61 6e 2e 76 | #.Author:.Erwan.Vautier.<erwan.v |
02c0 | 61 75 74 69 65 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 4e 69 63 | autier@gmail.com>\n#.........Nic |
02e0 | 6f 6c 61 73 20 43 6f 75 72 74 79 20 3c 6e 63 6f 75 72 74 79 40 69 72 69 73 61 2e 66 72 3e 5c 6e | olas.Courty.<ncourty@irisa.fr>\n |
0300 | 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 | #\n#.License:.MIT.License\n\nimp |
0320 | 6f 72 74 20 73 63 69 70 79 20 61 73 20 73 70 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 | ort.scipy.as.sp\nimport.numpy.as |
0340 | 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 | .np\nimport.matplotlib.pylab.as. |
0360 | 70 6c 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d | pl\nfrom.mpl_toolkits.mplot3d.im |
0380 | 70 6f 72 74 20 41 78 65 73 33 44 20 20 23 20 6e 6f 71 61 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a | port.Axes3D..#.noqa\nimport.ot". |
03a0 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
03c0 | 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 | _type":."markdown",......."metad |
03e0 | 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | ata":.{},......."source":.[..... |
0400 | 20 20 20 20 22 53 61 6d 70 6c 65 20 74 77 6f 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 | ...."Sample.two.Gaussian.distrib |
0420 | 75 74 69 6f 6e 73 20 28 32 44 20 61 6e 64 20 33 44 29 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | utions.(2D.and.3D)\n------------ |
0440 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
0460 | 2d 5c 6e 5c 6e 54 68 65 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 | -\n\nThe.Gromov-Wasserstein.dist |
0480 | 61 6e 63 65 20 61 6c 6c 6f 77 73 20 74 6f 20 63 6f 6d 70 75 74 65 20 64 69 73 74 61 6e 63 65 73 | ance.allows.to.compute.distances |
04a0 | 20 77 69 74 68 20 73 61 6d 70 6c 65 73 20 74 68 61 74 5c 6e 64 6f 20 6e 6f 74 20 62 65 6c 6f 6e | .with.samples.that\ndo.not.belon |
04c0 | 67 20 74 6f 20 74 68 65 20 73 61 6d 65 20 6d 65 74 72 69 63 20 73 70 61 63 65 2e 20 46 6f 72 20 | g.to.the.same.metric.space..For. |
04e0 | 64 65 6d 6f 6e 73 74 72 61 74 69 6f 6e 20 70 75 72 70 6f 73 65 2c 20 77 65 20 73 61 6d 70 6c 65 | demonstration.purpose,.we.sample |
0500 | 5c 6e 74 77 6f 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 | \ntwo.Gaussian.distributions.in. |
0520 | 32 2d 20 61 6e 64 20 33 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 73 70 61 63 65 73 2e 5c 6e 5c 6e | 2-.and.3-dimensional.spaces.\n\n |
0540 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
0560 | 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 | ll_type":."code",......."executi |
0580 | 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | on_count":.null,......."metadata |
05a0 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a | ":.{........."collapsed":.false. |
05c0 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 | ......},......."outputs":.[],... |
05e0 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 61 6d 70 6c | ...."source":.[........."n_sampl |
0600 | 65 73 20 3d 20 33 30 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 6d 75 5f 73 20 3d 20 | es.=.30..#.nb.samples\n\nmu_s.=. |
0620 | 6e 70 2e 61 72 72 61 79 28 5b 30 2c 20 30 5d 29 5c 6e 63 6f 76 5f 73 20 3d 20 6e 70 2e 61 72 72 | np.array([0,.0])\ncov_s.=.np.arr |
0640 | 61 79 28 5b 5b 31 2c 20 30 5d 2c 20 5b 30 2c 20 31 5d 5d 29 5c 6e 5c 6e 6d 75 5f 74 20 3d 20 6e | ay([[1,.0],.[0,.1]])\n\nmu_t.=.n |
0660 | 70 2e 61 72 72 61 79 28 5b 34 2c 20 34 2c 20 34 5d 29 5c 6e 63 6f 76 5f 74 20 3d 20 6e 70 2e 61 | p.array([4,.4,.4])\ncov_t.=.np.a |
0680 | 72 72 61 79 28 5b 5b 31 2c 20 30 2c 20 30 5d 2c 20 5b 30 2c 20 31 2c 20 30 5d 2c 20 5b 30 2c 20 | rray([[1,.0,.0],.[0,.1,.0],.[0,. |
06a0 | 30 2c 20 31 5d 5d 29 5c 6e 5c 6e 5c 6e 78 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 | 0,.1]])\n\n\nxs.=.ot.datasets.ma |
06c0 | 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 6d | ke_2D_samples_gauss(n_samples,.m |
06e0 | 75 5f 73 2c 20 63 6f 76 5f 73 29 5c 6e 50 20 3d 20 73 70 2e 6c 69 6e 61 6c 67 2e 73 71 72 74 6d | u_s,.cov_s)\nP.=.sp.linalg.sqrtm |
0700 | 28 63 6f 76 5f 74 29 5c 6e 78 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 5f | (cov_t)\nxt.=.np.random.randn(n_ |
0720 | 73 61 6d 70 6c 65 73 2c 20 33 29 2e 64 6f 74 28 50 29 20 2b 20 6d 75 5f 74 22 0a 20 20 20 20 20 | samples,.3).dot(P).+.mu_t"...... |
0740 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
0760 | 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | ":."markdown",......."metadata": |
0780 | 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .{},......."source":.[........." |
07a0 | 50 6c 6f 74 74 69 6e 67 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 2d 2d 2d 2d | Plotting.the.distributions\n---- |
07c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 | ----------------------\n\n"..... |
07e0 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
0800 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
0820 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
0840 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
0860 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
0880 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 66 69 67 20 3d 20 70 6c 2e 66 69 67 75 | ource":.[........."fig.=.pl.figu |
08a0 | 72 65 28 29 5c 6e 61 78 31 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c 6f 74 28 31 32 31 29 | re()\nax1.=.fig.add_subplot(121) |
08c0 | 5c 6e 61 78 31 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 | \nax1.plot(xs[:,.0],.xs[:,.1],.' |
08e0 | 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 61 78 | +b',.label='Source.samples')\nax |
0900 | 32 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c 6f 74 28 31 32 32 2c 20 70 72 6f 6a 65 63 74 | 2.=.fig.add_subplot(122,.project |
0920 | 69 6f 6e 3d 27 33 64 27 29 5c 6e 61 78 32 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 30 5d 2c | ion='3d')\nax2.scatter(xt[:,.0], |
0940 | 20 78 74 5b 3a 2c 20 31 5d 2c 20 78 74 5b 3a 2c 20 32 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c | .xt[:,.1],.xt[:,.2],.color='r')\ |
0960 | 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b | npl.show()".......].....},.....{ |
0980 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a | ......."cell_type":."markdown",. |
09a0 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......"metadata":.{},......."sou |
09c0 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 64 69 73 74 61 6e 63 | rce":.[........."Compute.distanc |
09e0 | 65 20 6b 65 72 6e 65 6c 73 2c 20 6e 6f 72 6d 61 6c 69 7a 65 20 74 68 65 6d 20 61 6e 64 20 74 68 | e.kernels,.normalize.them.and.th |
0a00 | 65 6e 20 64 69 73 70 6c 61 79 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | en.display\n-------------------- |
0a20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
0a40 | 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | -----\n\n".......].....},.....{. |
0a60 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 | ......"cell_type":."code",...... |
0a80 | 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 | ."execution_count":.null,....... |
0aa0 | 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 | "metadata":.{........."collapsed |
0ac0 | 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 | ":.false.......},......."outputs |
0ae0 | 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 | ":.[],......."source":.[........ |
0b00 | 20 22 43 31 20 3d 20 73 70 2e 73 70 61 74 69 61 6c 2e 64 69 73 74 61 6e 63 65 2e 63 64 69 73 74 | ."C1.=.sp.spatial.distance.cdist |
0b20 | 28 78 73 2c 20 78 73 29 5c 6e 43 32 20 3d 20 73 70 2e 73 70 61 74 69 61 6c 2e 64 69 73 74 61 6e | (xs,.xs)\nC2.=.sp.spatial.distan |
0b40 | 63 65 2e 63 64 69 73 74 28 78 74 2c 20 78 74 29 5c 6e 5c 6e 43 31 20 2f 3d 20 43 31 2e 6d 61 78 | ce.cdist(xt,.xt)\n\nC1./=.C1.max |
0b60 | 28 29 5c 6e 43 32 20 2f 3d 20 43 32 2e 6d 61 78 28 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 | ()\nC2./=.C2.max()\n\npl.figure( |
0b80 | 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 32 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 43 31 | )\npl.subplot(121)\npl.imshow(C1 |
0ba0 | 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 32 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 43 32 | )\npl.subplot(122)\npl.imshow(C2 |
0bc0 | 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | )\npl.show()".......].....},.... |
0be0 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 | .{......."cell_type":."markdown" |
0c00 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 | ,......."metadata":.{},......."s |
0c20 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 47 72 6f 6d 6f | ource":.[........."Compute.Gromo |
0c40 | 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 70 6c 61 6e 73 20 61 6e 64 20 64 69 73 74 61 6e 63 65 | v-Wasserstein.plans.and.distance |
0c60 | 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | \n------------------------------ |
0c80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | ---------------\n\n".......].... |
0ca0 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | .},.....{......."cell_type":."co |
0cc0 | 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 | de",......."execution_count":.nu |
0ce0 | 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ll,......."metadata":.{......... |
0d00 | 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 | "collapsed":.false.......},..... |
0d20 | 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | .."outputs":.[],......."source": |
0d40 | 20 5b 0a 20 20 20 20 20 20 20 20 22 70 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 5f 73 61 6d 70 6c 65 | .[........."p.=.ot.unif(n_sample |
0d60 | 73 29 5c 6e 71 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 5f 73 61 6d 70 6c 65 73 29 5c 6e 5c 6e 67 77 | s)\nq.=.ot.unif(n_samples)\n\ngw |
0d80 | 30 2c 20 6c 6f 67 30 20 3d 20 6f 74 2e 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 77 61 73 73 65 | 0,.log0.=.ot.gromov.gromov_wasse |
0da0 | 72 73 74 65 69 6e 28 5c 6e 20 20 20 20 43 31 2c 20 43 32 2c 20 70 2c 20 71 2c 20 27 73 71 75 61 | rstein(\n....C1,.C2,.p,.q,.'squa |
0dc0 | 72 65 5f 6c 6f 73 73 27 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 20 6c 6f 67 3d 54 72 75 65 | re_loss',.verbose=True,.log=True |
0de0 | 29 5c 6e 5c 6e 67 77 2c 20 6c 6f 67 20 3d 20 6f 74 2e 67 72 6f 6d 6f 76 2e 65 6e 74 72 6f 70 69 | )\n\ngw,.log.=.ot.gromov.entropi |
0e00 | 63 5f 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 28 5c 6e 20 20 20 20 43 31 2c 20 43 | c_gromov_wasserstein(\n....C1,.C |
0e20 | 32 2c 20 70 2c 20 71 2c 20 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 65 70 73 69 6c 6f 6e 3d | 2,.p,.q,.'square_loss',.epsilon= |
0e40 | 35 65 2d 34 2c 20 6c 6f 67 3d 54 72 75 65 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c | 5e-4,.log=True,.verbose=True)\n\ |
0e60 | 6e 5c 6e 70 72 69 6e 74 28 27 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 | n\nprint('Gromov-Wasserstein.dis |
0e80 | 74 61 6e 63 65 73 3a 20 27 20 2b 20 73 74 72 28 6c 6f 67 30 5b 27 67 77 5f 64 69 73 74 27 5d 29 | tances:.'.+.str(log0['gw_dist']) |
0ea0 | 29 5c 6e 70 72 69 6e 74 28 27 45 6e 74 72 6f 70 69 63 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 | )\nprint('Entropic.Gromov-Wasser |
0ec0 | 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 73 3a 20 27 20 2b 20 73 74 72 28 6c 6f 67 5b 27 67 77 | stein.distances:.'.+.str(log['gw |
0ee0 | 5f 64 69 73 74 27 5d 29 29 5c 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 28 31 30 2c | _dist']))\n\n\npl.figure(1,.(10, |
0f00 | 20 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e | .5))\n\npl.subplot(1,.2,.1)\npl. |
0f20 | 69 6d 73 68 6f 77 28 67 77 30 2c 20 63 6d 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e 74 69 74 6c | imshow(gw0,.cmap='jet')\npl.titl |
0f40 | 65 28 27 47 72 6f 6d 6f 76 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 | e('Gromov.Wasserstein')\n\npl.su |
0f60 | 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 67 77 2c 20 63 6d | bplot(1,.2,.2)\npl.imshow(gw,.cm |
0f80 | 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 6e 74 72 6f 70 69 63 20 47 72 | ap='jet')\npl.title('Entropic.Gr |
0fa0 | 6f 6d 6f 76 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 | omov.Wasserstein')\n\npl.show()" |
0fc0 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 | .......].....}...],..."metadata" |
0fe0 | 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 | :.{....."kernelspec":.{......."d |
1000 | 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 | isplay_name":."Python.3",....... |
1020 | 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d | "language":."python",......."nam |
1040 | 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 | e":."python3".....},....."langua |
1060 | 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f | ge_info":.{......."codemirror_mo |
1080 | 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 | de":.{........."name":."ipython" |
10a0 | 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a | ,........."version":.3.......},. |
10c0 | 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 | ......"file_extension":.".py",.. |
10e0 | 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 | ....."mimetype":."text/x-python" |
1100 | 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 | ,......."name":."python",....... |
1120 | 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a | "nbconvert_exporter":."python",. |
1140 | 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e | ......"pygments_lexer":."ipython |
1160 | 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 35 22 0a 20 20 20 | 3",......."version":."3.6.5".... |
1180 | 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f | .}...},..."nbformat":.4,..."nbfo |
11a0 | 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 a7 6e a2 4c ae 38 | rmat_minor":.0.}PK.........n.L.8 |
11c0 | 61 57 26 14 00 00 26 14 00 00 0e 00 00 00 70 6c 6f 74 5f 57 44 41 2e 69 70 79 6e 62 7b 0a 20 20 | aW&...&.......plot_WDA.ipynb{... |
11e0 | 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 2c 20 0a 20 20 22 6e 62 66 6f 72 6d 61 | "nbformat_minor":.0,...."nbforma |
1200 | 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 | t":.4,...."cells":.[.....{...... |
1220 | 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 | ."execution_count":.null,....... |
1240 | 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f | ."cell_type":."code",........"so |
1260 | 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e | urce":.[........."%matplotlib.in |
1280 | 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | line".......],........"outputs": |
12a0 | 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | .[],........"metadata":.{....... |
12c0 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 | .."collapsed":.false.......}.... |
12e0 | 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | .},......{......."source":.[.... |
1300 | 20 20 20 20 20 22 5c 6e 23 20 57 61 73 73 65 72 73 74 65 69 6e 20 44 69 73 63 72 69 6d 69 6e 61 | ....."\n#.Wasserstein.Discrimina |
1320 | 6e 74 20 41 6e 61 6c 79 73 69 73 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c | nt.Analysis\n\n\nThis.example.il |
1340 | 6c 75 73 74 72 61 74 65 20 74 68 65 20 75 73 65 20 6f 66 20 57 44 41 20 61 73 20 70 72 6f 70 6f | lustrate.the.use.of.WDA.as.propo |
1360 | 73 65 64 20 69 6e 20 5b 31 31 5d 2e 5c 6e 5c 6e 5c 6e 5b 31 31 5d 20 46 6c 61 6d 61 72 79 2c 20 | sed.in.[11].\n\n\n[11].Flamary,. |
1380 | 52 2e 2c 20 43 75 74 75 72 69 2c 20 4d 2e 2c 20 43 6f 75 72 74 79 2c 20 4e 2e 2c 20 26 20 52 61 | R.,.Cuturi,.M.,.Courty,.N.,.&.Ra |
13a0 | 6b 6f 74 6f 6d 61 6d 6f 6e 6a 79 2c 20 41 2e 20 28 32 30 31 36 29 2e 5c 6e 57 61 73 73 65 72 73 | kotomamonjy,.A..(2016).\nWassers |
13c0 | 74 65 69 6e 20 44 69 73 63 72 69 6d 69 6e 61 6e 74 20 41 6e 61 6c 79 73 69 73 2e 5c 6e 5c 6e 5c | tein.Discriminant.Analysis.\n\n\ |
13e0 | 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | n".......],........"cell_type":. |
1400 | 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b | "markdown",........"metadata":.{ |
1420 | 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e | }.....},......{......."execution |
1440 | 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | _count":.null,........"cell_type |
1460 | 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | ":."code",........"source":.[... |
1480 | 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 | ......"#.Author:.Remi.Flamary.<r |
14a0 | 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 | emi.flamary@unice.fr>\n#\n#.Lice |
14c0 | 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 | nse:.MIT.License\n\nimport.numpy |
14e0 | 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 | .as.np\nimport.matplotlib.pylab. |
1500 | 61 73 20 70 6c 5c 6e 5c 6e 66 72 6f 6d 20 6f 74 2e 64 72 20 69 6d 70 6f 72 74 20 77 64 61 2c 20 | as.pl\n\nfrom.ot.dr.import.wda,. |
1520 | 66 64 61 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 | fda".......],........"outputs":. |
1540 | 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 | [],........"metadata":.{........ |
1560 | 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 | ."collapsed":.false.......}..... |
1580 | 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | },......{......."source":.[..... |
15a0 | 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...."Generate.data\n------------ |
15c0 | 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | -\n\n".......],........"cell_typ |
15e0 | 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | e":."markdown",........"metadata |
1600 | 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 | ":.{}.....},......{......."execu |
1620 | 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f | tion_count":.null,........"cell_ |
1640 | 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 | type":."code",........"source":. |
1660 | 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 20 3d | [........."#%%.parameters\n\nn.= |
1680 | 20 31 30 30 30 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 20 69 6e 20 73 6f 75 72 63 65 20 61 6e | .1000..#.nb.samples.in.source.an |
16a0 | 64 20 74 61 72 67 65 74 20 64 61 74 61 73 65 74 73 5c 6e 6e 7a 20 3d 20 30 2e 32 5c 6e 5c 6e 23 | d.target.datasets\nnz.=.0.2\n\n# |
16c0 | 20 67 65 6e 65 72 61 74 65 20 63 69 72 63 6c 65 20 64 61 74 61 73 65 74 5c 6e 74 20 3d 20 6e 70 | .generate.circle.dataset\nt.=.np |
16e0 | 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 29 20 2a 20 32 20 2a 20 6e 70 2e 70 69 5c 6e 79 73 20 | .random.rand(n).*.2.*.np.pi\nys. |
1700 | 3d 20 6e 70 2e 66 6c 6f 6f 72 28 28 6e 70 2e 61 72 61 6e 67 65 28 6e 29 20 2a 20 31 2e 30 20 2f | =.np.floor((np.arange(n).*.1.0./ |
1720 | 20 6e 20 2a 20 33 29 29 20 2b 20 31 5c 6e 78 73 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 65 6e 61 74 | .n.*.3)).+.1\nxs.=.np.concatenat |
1740 | 65 28 5c 6e 20 20 20 20 28 6e 70 2e 63 6f 73 28 74 29 2e 72 65 73 68 61 70 65 28 28 2d 31 2c 20 | e(\n....(np.cos(t).reshape((-1,. |
1760 | 31 29 29 2c 20 6e 70 2e 73 69 6e 28 74 29 2e 72 65 73 68 61 70 65 28 28 2d 31 2c 20 31 29 29 29 | 1)),.np.sin(t).reshape((-1,.1))) |
1780 | 2c 20 31 29 5c 6e 78 73 20 3d 20 78 73 20 2a 20 79 73 2e 72 65 73 68 61 70 65 28 2d 31 2c 20 31 | ,.1)\nxs.=.xs.*.ys.reshape(-1,.1 |
17a0 | 29 20 2b 20 6e 7a 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 32 29 5c 6e | ).+.nz.*.np.random.randn(n,.2)\n |
17c0 | 5c 6e 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 29 20 2a 20 32 20 2a 20 6e 70 | \nt.=.np.random.rand(n).*.2.*.np |
17e0 | 2e 70 69 5c 6e 79 74 20 3d 20 6e 70 2e 66 6c 6f 6f 72 28 28 6e 70 2e 61 72 61 6e 67 65 28 6e 29 | .pi\nyt.=.np.floor((np.arange(n) |
1800 | 20 2a 20 31 2e 30 20 2f 20 6e 20 2a 20 33 29 29 20 2b 20 31 5c 6e 78 74 20 3d 20 6e 70 2e 63 6f | .*.1.0./.n.*.3)).+.1\nxt.=.np.co |
1820 | 6e 63 61 74 65 6e 61 74 65 28 5c 6e 20 20 20 20 28 6e 70 2e 63 6f 73 28 74 29 2e 72 65 73 68 61 | ncatenate(\n....(np.cos(t).resha |
1840 | 70 65 28 28 2d 31 2c 20 31 29 29 2c 20 6e 70 2e 73 69 6e 28 74 29 2e 72 65 73 68 61 70 65 28 28 | pe((-1,.1)),.np.sin(t).reshape(( |
1860 | 2d 31 2c 20 31 29 29 29 2c 20 31 29 5c 6e 78 74 20 3d 20 78 74 20 2a 20 79 74 2e 72 65 73 68 61 | -1,.1))),.1)\nxt.=.xt.*.yt.resha |
1880 | 70 65 28 2d 31 2c 20 31 29 20 2b 20 6e 7a 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e | pe(-1,.1).+.nz.*.np.random.randn |
18a0 | 28 6e 2c 20 32 29 5c 6e 5c 6e 6e 62 6e 6f 69 73 65 20 3d 20 38 5c 6e 5c 6e 78 73 20 3d 20 6e 70 | (n,.2)\n\nnbnoise.=.8\n\nxs.=.np |
18c0 | 2e 68 73 74 61 63 6b 28 28 78 73 2c 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 | .hstack((xs,.np.random.randn(n,. |
18e0 | 6e 62 6e 6f 69 73 65 29 29 29 5c 6e 78 74 20 3d 20 6e 70 2e 68 73 74 61 63 6b 28 28 78 74 2c 20 | nbnoise)))\nxt.=.np.hstack((xt,. |
1900 | 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 6e 62 6e 6f 69 73 65 29 29 29 22 0a 20 | np.random.randn(n,.nbnoise)))".. |
1920 | 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 | .....],........"outputs":.[],... |
1940 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c | ....."metadata":.{........."coll |
1960 | 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 | apsed":.false.......}.....},.... |
1980 | 20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 | ..{......."source":.[........."P |
19a0 | 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d | lot.data\n---------\n\n".......] |
19c0 | 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 | ,........"cell_type":."markdown" |
19e0 | 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a | ,........"metadata":.{}.....},.. |
1a00 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e | ....{......."execution_count":.n |
1a20 | 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ull,........"cell_type":."code", |
1a40 | 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 | ........"source":.[........."#%% |
1a60 | 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 | .plot.samples\npl.figure(1,.figs |
1a80 | 69 7a 65 3d 28 36 2e 34 2c 20 33 2e 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c | ize=(6.4,.3.5))\n\npl.subplot(1, |
1aa0 | 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b | .2,.1)\npl.scatter(xt[:,.0],.xt[ |
1ac0 | 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 | :,.1],.c=ys,.marker='+',.label=' |
1ae0 | 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d | Source.samples')\npl.legend(loc= |
1b00 | 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 63 72 69 6d 69 6e 61 6e 74 20 64 69 6d 65 6e | 0)\npl.title('Discriminant.dimen |
1b20 | 73 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e | sions')\n\npl.subplot(1,.2,.2)\n |
1b40 | 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 32 5d 2c 20 78 74 5b 3a 2c 20 33 5d 2c 20 63 | pl.scatter(xt[:,.2],.xt[:,.3],.c |
1b60 | 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 | =ys,.marker='+',.label='Source.s |
1b80 | 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 | amples')\npl.legend(loc=0)\npl.t |
1ba0 | 69 74 6c 65 28 27 4f 74 68 65 72 20 64 69 6d 65 6e 73 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 | itle('Other.dimensions')\npl.tig |
1bc0 | 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 | ht_layout()".......],........"ou |
1be0 | 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b | tputs":.[],........"metadata":.{ |
1c00 | 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 | ........."collapsed":.false..... |
1c20 | 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 | ..}.....},......{......."source" |
1c40 | 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 46 69 73 68 65 72 20 44 69 73 63 | :.[........."Compute.Fisher.Disc |
1c60 | 72 69 6d 69 6e 61 6e 74 20 41 6e 61 6c 79 73 69 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | riminant.Analysis\n------------- |
1c80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 | -----------------------\n\n".... |
1ca0 | 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 | ...],........"cell_type":."markd |
1cc0 | 6f 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 | own",........"metadata":.{}..... |
1ce0 | 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 | },......{......."execution_count |
1d00 | 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | ":.null,........"cell_type":."co |
1d20 | 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 | de",........"source":.[......... |
1d40 | 22 23 25 25 20 43 6f 6d 70 75 74 65 20 46 44 41 5c 6e 70 20 3d 20 32 5c 6e 5c 6e 50 66 64 61 2c | "#%%.Compute.FDA\np.=.2\n\nPfda, |
1d60 | 20 70 72 6f 6a 66 64 61 20 3d 20 66 64 61 28 78 73 2c 20 79 73 2c 20 70 29 22 0a 20 20 20 20 20 | .projfda.=.fda(xs,.ys,.p)"...... |
1d80 | 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 | .],........"outputs":.[],....... |
1da0 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 | ."metadata":.{........."collapse |
1dc0 | 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a | d":.false.......}.....},......{. |
1de0 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 | ......"source":.[........."Compu |
1e00 | 74 65 20 57 61 73 73 65 72 73 74 65 69 6e 20 44 69 73 63 72 69 6d 69 6e 61 6e 74 20 41 6e 61 6c | te.Wasserstein.Discriminant.Anal |
1e20 | 79 73 69 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ysis\n-------------------------- |
1e40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 | ---------------\n\n".......],... |
1e60 | 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 | ....."cell_type":."markdown",... |
1e80 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 | ....."metadata":.{}.....},...... |
1ea0 | 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | {......."execution_count":.null, |
1ec0 | 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 | ........"cell_type":."code",.... |
1ee0 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 43 6f 6d | ...."source":.[........."#%%.Com |
1f00 | 70 75 74 65 20 57 44 41 5c 6e 70 20 3d 20 32 5c 6e 72 65 67 20 3d 20 31 65 30 5c 6e 6b 20 3d 20 | pute.WDA\np.=.2\nreg.=.1e0\nk.=. |
1f20 | 31 30 5c 6e 6d 61 78 69 74 65 72 20 3d 20 31 30 30 5c 6e 5c 6e 50 77 64 61 2c 20 70 72 6f 6a 77 | 10\nmaxiter.=.100\n\nPwda,.projw |
1f40 | 64 61 20 3d 20 77 64 61 28 78 73 2c 20 79 73 2c 20 70 2c 20 72 65 67 2c 20 6b 2c 20 6d 61 78 69 | da.=.wda(xs,.ys,.p,.reg,.k,.maxi |
1f60 | 74 65 72 3d 6d 61 78 69 74 65 72 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f | ter=maxiter)".......],........"o |
1f80 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | utputs":.[],........"metadata":. |
1fa0 | 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 | {........."collapsed":.false.... |
1fc0 | 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...}.....},......{......."source |
1fe0 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 32 44 20 70 72 6f 6a 65 63 74 69 6f 6e | ":.[........."Plot.2D.projection |
2000 | 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 | s\n-------------------\n\n"..... |
2020 | 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f | ..],........"cell_type":."markdo |
2040 | 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d | wn",........"metadata":.{}.....} |
2060 | 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 | ,......{......."execution_count" |
2080 | 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 | :.null,........"cell_type":."cod |
20a0 | 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | e",........"source":.[........." |
20c0 | 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 78 73 70 20 3d 20 70 72 6f 6a 66 64 | #%%.plot.samples\n\nxsp.=.projfd |
20e0 | 61 28 78 73 29 5c 6e 78 74 70 20 3d 20 70 72 6f 6a 66 64 61 28 78 74 29 5c 6e 5c 6e 78 73 70 77 | a(xs)\nxtp.=.projfda(xt)\n\nxspw |
2100 | 20 3d 20 70 72 6f 6a 77 64 61 28 78 73 29 5c 6e 78 74 70 77 20 3d 20 70 72 6f 6a 77 64 61 28 78 | .=.projwda(xs)\nxtpw.=.projwda(x |
2120 | 74 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 | t)\n\npl.figure(2)\n\npl.subplot |
2140 | 28 32 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 70 5b 3a 2c 20 30 5d 2c | (2,.2,.1)\npl.scatter(xsp[:,.0], |
2160 | 20 78 73 70 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 | .xsp[:,.1],.c=ys,.marker='+',.la |
2180 | 62 65 6c 3d 27 50 72 6f 6a 65 63 74 65 64 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 | bel='Projected.samples')\npl.leg |
21a0 | 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a 65 63 74 65 64 20 | end(loc=0)\npl.title('Projected. |
21c0 | 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 20 46 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 | training.samples.FDA')\n\npl.sub |
21e0 | 70 6c 6f 74 28 32 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 70 5b 3a 2c | plot(2,.2,.2)\npl.scatter(xtp[:, |
2200 | 20 30 5d 2c 20 78 74 70 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 | .0],.xtp[:,.1],.c=ys,.marker='+' |
2220 | 2c 20 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 63 74 65 64 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c | ,.label='Projected.samples')\npl |
2240 | 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a 65 63 | .legend(loc=0)\npl.title('Projec |
2260 | 74 65 64 20 74 65 73 74 20 73 61 6d 70 6c 65 73 20 46 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 | ted.test.samples.FDA')\n\npl.sub |
2280 | 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 70 77 5b 3a | plot(2,.2,.3)\npl.scatter(xspw[: |
22a0 | 2c 20 30 5d 2c 20 78 73 70 77 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 | ,.0],.xspw[:,.1],.c=ys,.marker=' |
22c0 | 2b 27 2c 20 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 63 74 65 64 20 73 61 6d 70 6c 65 73 27 29 5c 6e | +',.label='Projected.samples')\n |
22e0 | 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a | pl.legend(loc=0)\npl.title('Proj |
2300 | 65 63 74 65 64 20 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 20 57 44 41 27 29 5c 6e 5c 6e | ected.training.samples.WDA')\n\n |
2320 | 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 34 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 | pl.subplot(2,.2,.4)\npl.scatter( |
2340 | 78 74 70 77 5b 3a 2c 20 30 5d 2c 20 78 74 70 77 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 | xtpw[:,.0],.xtpw[:,.1],.c=ys,.ma |
2360 | 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 63 74 65 64 20 73 61 6d 70 6c | rker='+',.label='Projected.sampl |
2380 | 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 | es')\npl.legend(loc=0)\npl.title |
23a0 | 28 27 50 72 6f 6a 65 63 74 65 64 20 74 65 73 74 20 73 61 6d 70 6c 65 73 20 57 44 41 27 29 5c 6e | ('Projected.test.samples.WDA')\n |
23c0 | 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a | pl.tight_layout()\n\npl.show()". |
23e0 | 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a | ......],........"outputs":.[],.. |
2400 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
2420 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 5d | lapsed":.false.......}.....}...] |
2440 | 2c 20 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 | ,...."metadata":.{....."kernelsp |
2460 | 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 | ec":.{......."display_name":."Py |
2480 | 74 68 6f 6e 20 32 22 2c 20 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 32 | thon.2",........"name":."python2 |
24a0 | 22 2c 20 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 | ",........"language":."python".. |
24c0 | 20 20 20 7d 2c 20 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 | ...},......"language_info":.{... |
24e0 | 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c | ...."mimetype":."text/x-python", |
2500 | 20 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 | ........"nbconvert_exporter":."p |
2520 | 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c | ython",........"name":."python", |
2540 | 20 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c | ........"file_extension":.".py", |
2560 | 20 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 32 2e 37 2e 31 32 22 2c 20 0a 20 20 | ........"version":."2.7.12",.... |
2580 | 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 32 22 | ...."pygments_lexer":."ipython2" |
25a0 | 2c 20 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 | ,........"codemirror_mode":.{... |
25c0 | 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 32 2c 20 0a 20 20 20 20 20 20 20 20 22 6e 61 | ......"version":.2,.........."na |
25e0 | 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d | me":."ipython".......}.....}...} |
2600 | 0a 7d 50 4b 03 04 14 00 00 00 00 00 18 7f a2 4c aa d3 d6 af 27 23 00 00 27 23 00 00 1c 00 00 00 | .}PK...........L....'#..'#...... |
2620 | 70 6c 6f 74 5f 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 79 6e 62 7b 0a 20 20 | plot_gromov_barycenter.ipynb{... |
2640 | 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f | "cells":.[.....{......."executio |
2660 | 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 | n_count":.null,......."metadata" |
2680 | 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 | :.{........."collapsed":.false.. |
26a0 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 | .....},......."outputs":.[],.... |
26c0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 | ..."source":.[........."%matplot |
26e0 | 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c | lib.inline".......],......."cell |
2700 | 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 | _type":."code".....},.....{..... |
2720 | 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 | .."metadata":.{},......."source" |
2740 | 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 | :.[........."\n#.Gromov-Wasserst |
2760 | 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 20 65 78 61 6d 70 6c 65 5c 6e 5c 6e 5c 6e 54 68 69 73 | ein.Barycenter.example\n\n\nThis |
2780 | 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 68 6f 77 20 68 6f 77 | .example.is.designed.to.show.how |
27a0 | 20 74 6f 20 75 73 65 20 74 68 65 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 64 | .to.use.the.Gromov-Wasserstein.d |
27c0 | 69 73 74 61 6e 63 65 5c 6e 63 6f 6d 70 75 74 61 74 69 6f 6e 20 69 6e 20 50 4f 54 2e 5c 6e 5c 6e | istance\ncomputation.in.POT.\n\n |
27e0 | 22 0a 20 20 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d | ".......],......."cell_type":."m |
2800 | 61 72 6b 64 6f 77 6e 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 | arkdown".....},.....{......."exe |
2820 | 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | cution_count":.null,......."meta |
2840 | 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 | data":.{........."collapsed":.fa |
2860 | 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d | lse.......},......."outputs":.[] |
2880 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 | ,......."source":.[........."#.A |
28a0 | 75 74 68 6f 72 3a 20 45 72 77 61 6e 20 56 61 75 74 69 65 72 20 3c 65 72 77 61 6e 2e 76 61 75 74 | uthor:.Erwan.Vautier.<erwan.vaut |
28c0 | 69 65 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 4e 69 63 6f 6c 61 | ier@gmail.com>\n#.........Nicola |
28e0 | 73 20 43 6f 75 72 74 79 20 3c 6e 63 6f 75 72 74 79 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 5c 6e | s.Courty.<ncourty@irisa.fr>\n#\n |
2900 | 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 5c 6e 69 6d 70 6f | #.License:.MIT.License\n\n\nimpo |
2920 | 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 73 63 69 70 79 20 61 73 20 | rt.numpy.as.np\nimport.scipy.as. |
2940 | 73 70 5c 6e 5c 6e 69 6d 70 6f 72 74 20 73 63 69 70 79 2e 6e 64 69 6d 61 67 65 20 61 73 20 73 70 | sp\n\nimport.scipy.ndimage.as.sp |
2960 | 69 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c | i\nimport.matplotlib.pylab.as.pl |
2980 | 5c 6e 66 72 6f 6d 20 73 6b 6c 65 61 72 6e 20 69 6d 70 6f 72 74 20 6d 61 6e 69 66 6f 6c 64 5c 6e | \nfrom.sklearn.import.manifold\n |
29a0 | 66 72 6f 6d 20 73 6b 6c 65 61 72 6e 2e 64 65 63 6f 6d 70 6f 73 69 74 69 6f 6e 20 69 6d 70 6f 72 | from.sklearn.decomposition.impor |
29c0 | 74 20 50 43 41 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 2c 0a 20 20 20 | t.PCA\n\nimport.ot".......],.... |
29e0 | 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 0a 20 20 20 20 7d 2c 0a 20 20 | ..."cell_type":."code".....},... |
2a00 | 20 20 7b 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 | ..{......."metadata":.{},....... |
2a20 | 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6d 61 63 6f 66 20 4d 44 53 5c | "source":.[........."Smacof.MDS\ |
2a40 | 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c | n----------\n\nThis.function.all |
2a60 | 6f 77 73 20 74 6f 20 66 69 6e 64 20 61 6e 20 65 6d 62 65 64 64 69 6e 67 20 6f 66 20 70 6f 69 6e | ows.to.find.an.embedding.of.poin |
2a80 | 74 73 20 67 69 76 65 6e 20 61 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 20 6d 61 74 72 69 78 5c | ts.given.a.dissimilarity.matrix\ |
2aa0 | 6e 74 68 61 74 20 77 69 6c 6c 20 62 65 20 67 69 76 65 6e 20 62 79 20 74 68 65 20 6f 75 74 70 75 | nthat.will.be.given.by.the.outpu |
2ac0 | 74 20 6f 66 20 74 68 65 20 61 6c 67 6f 72 69 74 68 6d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c | t.of.the.algorithm\n\n".......], |
2ae0 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 0a 20 | ......."cell_type":."markdown".. |
2b00 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | ...},.....{......."execution_cou |
2b20 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
2b40 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
2b60 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
2b80 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 73 6d 61 63 6f 66 5f 6d 64 | ource":.[........."def.smacof_md |
2ba0 | 73 28 43 2c 20 64 69 6d 2c 20 6d 61 78 5f 69 74 65 72 3d 33 30 30 30 2c 20 65 70 73 3d 31 65 2d | s(C,.dim,.max_iter=3000,.eps=1e- |
2bc0 | 39 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 52 65 74 75 72 6e 73 20 61 6e 20 | 9):\n....\"\"\"\n....Returns.an. |
2be0 | 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 70 6f 69 6e 74 20 63 6c 6f 75 64 20 66 6f 6c 6c 6f 77 69 | interpolated.point.cloud.followi |
2c00 | 6e 67 20 74 68 65 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 20 6d 61 74 72 69 78 20 43 5c 6e 20 | ng.the.dissimilarity.matrix.C\n. |
2c20 | 20 20 20 75 73 69 6e 67 20 53 4d 41 43 4f 46 20 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c | ...using.SMACOF.multidimensional |
2c40 | 20 73 63 61 6c 69 6e 67 20 28 4d 44 53 29 20 69 6e 20 73 70 65 63 69 66 69 63 20 64 69 6d 65 6e | .scaling.(MDS).in.specific.dimen |
2c60 | 73 69 6f 6e 6e 65 64 5c 6e 20 20 20 20 74 61 72 67 65 74 20 73 70 61 63 65 5c 6e 5c 6e 20 20 20 | sionned\n....target.space\n\n... |
2c80 | 20 50 61 72 61 6d 65 74 65 72 73 5c 6e 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 | .Parameters\n....----------\n... |
2ca0 | 20 43 20 3a 20 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 6e 73 2c 20 6e 73 29 5c 6e 20 20 | .C.:.ndarray,.shape.(ns,.ns)\n.. |
2cc0 | 20 20 20 20 20 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 20 6d 61 74 72 69 78 5c 6e 20 20 20 20 | ......dissimilarity.matrix\n.... |
2ce0 | 64 69 6d 20 3a 20 69 6e 74 5c 6e 20 20 20 20 20 20 20 20 20 20 64 69 6d 65 6e 73 69 6f 6e 20 6f | dim.:.int\n..........dimension.o |
2d00 | 66 20 74 68 65 20 74 61 72 67 65 74 65 64 20 73 70 61 63 65 5c 6e 20 20 20 20 6d 61 78 5f 69 74 | f.the.targeted.space\n....max_it |
2d20 | 65 72 20 3a 20 20 69 6e 74 5c 6e 20 20 20 20 20 20 20 20 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 | er.:..int\n........Maximum.numbe |
2d40 | 72 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 4d 41 43 4f 46 20 61 6c | r.of.iterations.of.the.SMACOF.al |
2d60 | 67 6f 72 69 74 68 6d 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 72 75 6e 5c 6e 20 20 20 20 65 70 | gorithm.for.a.single.run\n....ep |
2d80 | 73 20 3a 20 66 6c 6f 61 74 5c 6e 20 20 20 20 20 20 20 20 72 65 6c 61 74 69 76 65 20 74 6f 6c 65 | s.:.float\n........relative.tole |
2da0 | 72 61 6e 63 65 20 77 2e 72 2e 74 20 73 74 72 65 73 73 20 74 6f 20 64 65 63 6c 61 72 65 20 63 6f | rance.w.r.t.stress.to.declare.co |
2dc0 | 6e 76 65 72 67 65 5c 6e 5c 6e 20 20 20 20 52 65 74 75 72 6e 73 5c 6e 20 20 20 20 2d 2d 2d 2d 2d | nverge\n\n....Returns\n....----- |
2de0 | 2d 2d 5c 6e 20 20 20 20 6e 70 6f 73 20 3a 20 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 52 | --\n....npos.:.ndarray,.shape.(R |
2e00 | 2c 20 64 69 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 45 6d 62 65 64 64 65 64 20 63 6f 6f 72 | ,.dim)\n...........Embedded.coor |
2e20 | 64 69 6e 61 74 65 73 20 6f 66 20 74 68 65 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 70 6f 69 6e | dinates.of.the.interpolated.poin |
2e40 | 74 20 63 6c 6f 75 64 20 28 64 65 66 69 6e 65 64 20 77 69 74 68 5c 6e 20 20 20 20 20 20 20 20 20 | t.cloud.(defined.with\n......... |
2e60 | 20 20 6f 6e 65 20 69 73 6f 6d 65 74 72 79 29 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 5c 6e 20 | ..one.isometry)\n....\"\"\"\n\n. |
2e80 | 20 20 20 72 6e 67 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 65 28 73 | ...rng.=.np.random.RandomState(s |
2ea0 | 65 65 64 3d 33 29 5c 6e 5c 6e 20 20 20 20 6d 64 73 20 3d 20 6d 61 6e 69 66 6f 6c 64 2e 4d 44 53 | eed=3)\n\n....mds.=.manifold.MDS |
2ec0 | 28 5c 6e 20 20 20 20 20 20 20 20 64 69 6d 2c 5c 6e 20 20 20 20 20 20 20 20 6d 61 78 5f 69 74 65 | (\n........dim,\n........max_ite |
2ee0 | 72 3d 6d 61 78 5f 69 74 65 72 2c 5c 6e 20 20 20 20 20 20 20 20 65 70 73 3d 31 65 2d 39 2c 5c 6e | r=max_iter,\n........eps=1e-9,\n |
2f00 | 20 20 20 20 20 20 20 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 3d 27 70 72 65 63 6f 6d 70 75 74 | ........dissimilarity='precomput |
2f20 | 65 64 27 2c 5c 6e 20 20 20 20 20 20 20 20 6e 5f 69 6e 69 74 3d 31 29 5c 6e 20 20 20 20 70 6f 73 | ed',\n........n_init=1)\n....pos |
2f40 | 20 3d 20 6d 64 73 2e 66 69 74 28 43 29 2e 65 6d 62 65 64 64 69 6e 67 5f 5c 6e 5c 6e 20 20 20 20 | .=.mds.fit(C).embedding_\n\n.... |
2f60 | 6e 6d 64 73 20 3d 20 6d 61 6e 69 66 6f 6c 64 2e 4d 44 53 28 5c 6e 20 20 20 20 20 20 20 20 32 2c | nmds.=.manifold.MDS(\n........2, |
2f80 | 5c 6e 20 20 20 20 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 6d 61 78 5f 69 74 65 72 2c 5c 6e 20 20 | \n........max_iter=max_iter,\n.. |
2fa0 | 20 20 20 20 20 20 65 70 73 3d 31 65 2d 39 2c 5c 6e 20 20 20 20 20 20 20 20 64 69 73 73 69 6d 69 | ......eps=1e-9,\n........dissimi |
2fc0 | 6c 61 72 69 74 79 3d 5c 22 70 72 65 63 6f 6d 70 75 74 65 64 5c 22 2c 5c 6e 20 20 20 20 20 20 20 | larity=\"precomputed\",\n....... |
2fe0 | 20 72 61 6e 64 6f 6d 5f 73 74 61 74 65 3d 72 6e 67 2c 5c 6e 20 20 20 20 20 20 20 20 6e 5f 69 6e | .random_state=rng,\n........n_in |
3000 | 69 74 3d 31 29 5c 6e 20 20 20 20 6e 70 6f 73 20 3d 20 6e 6d 64 73 2e 66 69 74 5f 74 72 61 6e 73 | it=1)\n....npos.=.nmds.fit_trans |
3020 | 66 6f 72 6d 28 43 2c 20 69 6e 69 74 3d 70 6f 73 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 | form(C,.init=pos)\n\n....return. |
3040 | 6e 70 6f 73 22 0a 20 20 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | npos".......],......."cell_type" |
3060 | 3a 20 22 63 6f 64 65 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 6d 65 74 | :."code".....},.....{......."met |
3080 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
30a0 | 20 20 20 20 20 20 22 44 61 74 61 20 70 72 65 70 61 72 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d | ......"Data.preparation\n------- |
30c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 54 68 65 20 66 6f 75 72 20 64 69 73 74 72 69 62 75 74 69 | ---------\n\nThe.four.distributi |
30e0 | 6f 6e 73 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 34 20 73 69 6d 70 6c | ons.are.constructed.from.4.simpl |
3100 | 65 20 69 6d 61 67 65 73 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 | e.images\n\n".......],......."ce |
3120 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | ll_type":."markdown".....},..... |
3140 | 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | {......."execution_count":.null, |
3160 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f | ......."metadata":.{........."co |
3180 | 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | llapsed":.false.......},......." |
31a0 | 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | outputs":.[],......."source":.[. |
31c0 | 20 20 20 20 20 20 20 20 22 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e 20 20 20 20 5c 22 5c | ........"def.im2mat(I):\n....\"\ |
31e0 | 22 5c 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 65 20 74 6f 20 6d 61 74 72 69 78 20 | "\"Converts.and.image.to.matrix. |
3200 | 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 | (one.pixel.per.line)\"\"\"\n.... |
3220 | 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 5b 30 5d 20 2a 20 49 | return.I.reshape((I.shape[0].*.I |
3240 | 2e 73 68 61 70 65 5b 31 5d 2c 20 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e 5c 6e 5c 6e 73 71 75 | .shape[1],.I.shape[2]))\n\n\nsqu |
3260 | 61 72 65 20 3d 20 73 70 69 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 73 71 75 61 72 65 | are.=.spi.imread('../data/square |
3280 | 2e 70 6e 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 5b 3a 2c 20 3a 2c 20 | .png').astype(np.float64)[:,.:,. |
32a0 | 32 5d 20 2f 20 32 35 36 5c 6e 63 72 6f 73 73 20 3d 20 73 70 69 2e 69 6d 72 65 61 64 28 27 2e 2e | 2]./.256\ncross.=.spi.imread('.. |
32c0 | 2f 64 61 74 61 2f 63 72 6f 73 73 2e 70 6e 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 | /data/cross.png').astype(np.floa |
32e0 | 74 36 34 29 5b 3a 2c 20 3a 2c 20 32 5d 20 2f 20 32 35 36 5c 6e 74 72 69 61 6e 67 6c 65 20 3d 20 | t64)[:,.:,.2]./.256\ntriangle.=. |
3300 | 73 70 69 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 74 72 69 61 6e 67 6c 65 2e 70 6e 67 | spi.imread('../data/triangle.png |
3320 | 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 5b 3a 2c 20 3a 2c 20 32 5d 20 2f | ').astype(np.float64)[:,.:,.2]./ |
3340 | 20 32 35 36 5c 6e 73 74 61 72 20 3d 20 73 70 69 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 | .256\nstar.=.spi.imread('../data |
3360 | 2f 73 74 61 72 2e 70 6e 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 5b 3a | /star.png').astype(np.float64)[: |
3380 | 2c 20 3a 2c 20 32 5d 20 2f 20 32 35 36 5c 6e 5c 6e 73 68 61 70 65 73 20 3d 20 5b 73 71 75 61 72 | ,.:,.2]./.256\n\nshapes.=.[squar |
33a0 | 65 2c 20 63 72 6f 73 73 2c 20 74 72 69 61 6e 67 6c 65 2c 20 73 74 61 72 5d 5c 6e 5c 6e 53 20 3d | e,.cross,.triangle,.star]\n\nS.= |
33c0 | 20 34 5c 6e 78 73 20 3d 20 5b 5b 5d 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c | .4\nxs.=.[[].for.i.in.range(S)]\ |
33e0 | 6e 5c 6e 5c 6e 66 6f 72 20 6e 62 20 69 6e 20 72 61 6e 67 65 28 34 29 3a 5c 6e 20 20 20 20 66 6f | n\n\nfor.nb.in.range(4):\n....fo |
3400 | 72 20 69 20 69 6e 20 72 61 6e 67 65 28 38 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6a 20 | r.i.in.range(8):\n........for.j. |
3420 | 69 6e 20 72 61 6e 67 65 28 38 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 68 61 | in.range(8):\n............if.sha |
3440 | 70 65 73 5b 6e 62 5d 5b 69 2c 20 6a 5d 20 3c 20 30 2e 39 35 3a 5c 6e 20 20 20 20 20 20 20 20 20 | pes[nb][i,.j].<.0.95:\n......... |
3460 | 20 20 20 20 20 20 20 78 73 5b 6e 62 5d 2e 61 70 70 65 6e 64 28 5b 6a 2c 20 38 20 2d 20 69 5d 29 | .......xs[nb].append([j,.8.-.i]) |
3480 | 5c 6e 5c 6e 78 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 6e 70 2e 61 72 72 61 79 28 78 73 5b 30 | \n\nxs.=.np.array([np.array(xs[0 |
34a0 | 5d 29 2c 20 6e 70 2e 61 72 72 61 79 28 78 73 5b 31 5d 29 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 | ]),.np.array(xs[1]),\n.......... |
34c0 | 20 20 20 20 20 6e 70 2e 61 72 72 61 79 28 78 73 5b 32 5d 29 2c 20 6e 70 2e 61 72 72 61 79 28 78 | .....np.array(xs[2]),.np.array(x |
34e0 | 73 5b 33 5d 29 5d 29 22 0a 20 20 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 | s[3])])".......],......."cell_ty |
3500 | 70 65 22 3a 20 22 63 6f 64 65 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | pe":."code".....},.....{......." |
3520 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | metadata":.{},......."source":.[ |
3540 | 0a 20 20 20 20 20 20 20 20 22 42 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e | ........."Barycenter.computation |
3560 | 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 | \n----------------------\n\n"... |
3580 | 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 | ....],......."cell_type":."markd |
35a0 | 6f 77 6e 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 | own".....},.....{......."executi |
35c0 | 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | on_count":.null,......."metadata |
35e0 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a | ":.{........."collapsed":.false. |
3600 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 | ......},......."outputs":.[],... |
3620 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 73 20 3d 20 5b 6c | ...."source":.[........."ns.=.[l |
3640 | 65 6e 28 78 73 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 6e 5f | en(xs[s]).for.s.in.range(S)]\nn_ |
3660 | 73 61 6d 70 6c 65 73 20 3d 20 33 30 5c 6e 5c 6e 5c 22 5c 22 5c 22 43 6f 6d 70 75 74 65 20 61 6c | samples.=.30\n\n\"\"\"Compute.al |
3680 | 6c 20 64 69 73 74 61 6e 63 65 73 20 6d 61 74 72 69 63 65 73 20 66 6f 72 20 74 68 65 20 66 6f 75 | l.distances.matrices.for.the.fou |
36a0 | 72 20 73 68 61 70 65 73 5c 22 5c 22 5c 22 5c 6e 43 73 20 3d 20 5b 73 70 2e 73 70 61 74 69 61 6c | r.shapes\"\"\"\nCs.=.[sp.spatial |
36c0 | 2e 64 69 73 74 61 6e 63 65 2e 63 64 69 73 74 28 78 73 5b 73 5d 2c 20 78 73 5b 73 5d 29 20 66 6f | .distance.cdist(xs[s],.xs[s]).fo |
36e0 | 72 20 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 43 73 20 3d 20 5b 63 73 20 2f 20 63 73 2e | r.s.in.range(S)]\nCs.=.[cs./.cs. |
3700 | 6d 61 78 28 29 20 66 6f 72 20 63 73 20 69 6e 20 43 73 5d 5c 6e 5c 6e 70 73 20 3d 20 5b 6f 74 2e | max().for.cs.in.Cs]\n\nps.=.[ot. |
3720 | 75 6e 69 66 28 6e 73 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e | unif(ns[s]).for.s.in.range(S)]\n |
3740 | 70 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 5f 73 61 6d 70 6c 65 73 29 5c 6e 5c 6e 5c 6e 6c 61 6d 62 | p.=.ot.unif(n_samples)\n\n\nlamb |
3760 | 64 61 73 74 20 3d 20 5b 5b 66 6c 6f 61 74 28 69 29 20 2f 20 33 2c 20 66 6c 6f 61 74 28 33 20 2d | dast.=.[[float(i)./.3,.float(3.- |
3780 | 20 69 29 20 2f 20 33 5d 20 66 6f 72 20 69 20 69 6e 20 5b 31 2c 20 32 5d 5d 5c 6e 5c 6e 43 74 30 | .i)./.3].for.i.in.[1,.2]]\n\nCt0 |
37a0 | 31 20 3d 20 5b 30 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 20 69 | 1.=.[0.for.i.in.range(2)]\nfor.i |
37c0 | 20 69 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e 20 20 20 20 43 74 30 31 5b 69 5d 20 3d 20 6f 74 2e | .in.range(2):\n....Ct01[i].=.ot. |
37e0 | 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 6d 70 | gromov.gromov_barycenters(n_samp |
3800 | 6c 65 73 2c 20 5b 43 73 5b 30 5d 2c 20 43 73 5b 31 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 | les,.[Cs[0],.Cs[1]],\n.......... |
3820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
3840 | 20 5b 70 73 5b 30 5d 2c 20 70 73 5b 31 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .[ps[0],.ps[1]\n................ |
3860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 2c 20 70 | ............................],.p |
3880 | 2c 20 6c 61 6d 62 64 61 73 74 5b 69 5d 2c 20 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 20 23 | ,.lambdast[i],.'square_loss',..# |
38a0 | 20 35 65 2d 34 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .5e-4,\n........................ |
38c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 2c | ...................max_iter=100, |
38e0 | 20 74 6f 6c 3d 31 65 2d 33 29 5c 6e 5c 6e 43 74 30 32 20 3d 20 5b 30 20 66 6f 72 20 69 20 69 6e | .tol=1e-3)\n\nCt02.=.[0.for.i.in |
3900 | 20 72 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e | .range(2)]\nfor.i.in.range(2):\n |
3920 | 20 20 20 20 43 74 30 32 5b 69 5d 20 3d 20 6f 74 2e 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 62 | ....Ct02[i].=.ot.gromov.gromov_b |
3940 | 61 72 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 5b 43 73 5b 30 5d 2c 20 43 73 | arycenters(n_samples,.[Cs[0],.Cs |
3960 | 5b 32 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | [2]],\n......................... |
3980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 70 73 5b 30 5d 2c 20 70 73 5b 32 5d 5c | ..................[ps[0],.ps[2]\ |
39a0 | 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n............................... |
39c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 2c 20 70 2c 20 6c 61 6d 62 64 61 73 74 5b 69 5d 2c 20 | .............],.p,.lambdast[i],. |
39e0 | 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 20 23 20 35 65 2d 34 2c 5c 6e 20 20 20 20 20 20 20 | 'square_loss',..#.5e-4,\n....... |
3a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
3a20 | 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 2c 20 74 6f 6c 3d 31 65 2d 33 29 5c 6e 5c 6e 43 | ....max_iter=100,.tol=1e-3)\n\nC |
3a40 | 74 31 33 20 3d 20 5b 30 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 | t13.=.[0.for.i.in.range(2)]\nfor |
3a60 | 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e 20 20 20 20 43 74 31 33 5b 69 5d 20 3d 20 6f | .i.in.range(2):\n....Ct13[i].=.o |
3a80 | 74 2e 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 | t.gromov.gromov_barycenters(n_sa |
3aa0 | 6d 70 6c 65 73 2c 20 5b 43 73 5b 31 5d 2c 20 43 73 5b 33 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 | mples,.[Cs[1],.Cs[3]],\n........ |
3ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
3ae0 | 20 20 20 5b 70 73 5b 31 5d 2c 20 70 73 5b 33 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...[ps[1],.ps[3]\n.............. |
3b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 2c | ..............................], |
3b20 | 20 70 2c 20 6c 61 6d 62 64 61 73 74 5b 69 5d 2c 20 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 | .p,.lambdast[i],.'square_loss',. |
3b40 | 20 23 20 35 65 2d 34 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .#.5e-4,\n...................... |
3b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 | .....................max_iter=10 |
3b80 | 30 2c 20 74 6f 6c 3d 31 65 2d 33 29 5c 6e 5c 6e 43 74 32 33 20 3d 20 5b 30 20 66 6f 72 20 69 20 | 0,.tol=1e-3)\n\nCt23.=.[0.for.i. |
3ba0 | 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 3a | in.range(2)]\nfor.i.in.range(2): |
3bc0 | 5c 6e 20 20 20 20 43 74 32 33 5b 69 5d 20 3d 20 6f 74 2e 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 | \n....Ct23[i].=.ot.gromov.gromov |
3be0 | 5f 62 61 72 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 5b 43 73 5b 32 5d 2c 20 | _barycenters(n_samples,.[Cs[2],. |
3c00 | 43 73 5b 33 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Cs[3]],\n....................... |
3c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 70 73 5b 32 5d 2c 20 70 73 5b 33 | ....................[ps[2],.ps[3 |
3c40 | 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ]\n............................. |
3c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 2c 20 70 2c 20 6c 61 6d 62 64 61 73 74 5b 69 5d | ...............],.p,.lambdast[i] |
3c80 | 2c 20 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 20 23 20 35 65 2d 34 2c 5c 6e 20 20 20 20 20 | ,.'square_loss',..#.5e-4,\n..... |
3ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
3cc0 | 20 20 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 2c 20 74 6f 6c 3d 31 65 2d 33 29 22 0a 20 | ......max_iter=100,.tol=1e-3)".. |
3ce0 | 20 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 | .....],......."cell_type":."code |
3d00 | 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | ".....},.....{......."metadata": |
3d20 | 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .{},......."source":.[........." |
3d40 | 56 69 73 75 61 6c 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e | Visualization\n-------------\n\n |
3d60 | 54 68 65 20 50 43 41 20 68 65 6c 70 73 20 69 6e 20 67 65 74 74 69 6e 67 20 63 6f 6e 73 69 73 74 | The.PCA.helps.in.getting.consist |
3d80 | 65 6e 63 79 20 62 65 74 77 65 65 6e 20 74 68 65 20 72 6f 74 61 74 69 6f 6e 73 5c 6e 5c 6e 22 0a | ency.between.the.rotations\n\n". |
3da0 | 20 20 20 20 20 20 5d 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 | ......],......."cell_type":."mar |
3dc0 | 6b 64 6f 77 6e 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 | kdown".....},.....{......."execu |
3de0 | 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | tion_count":.null,......."metada |
3e00 | 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 | ta":.{........."collapsed":.fals |
3e20 | 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a | e.......},......."outputs":.[],. |
3e40 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 63 6c 66 20 3d | ......"source":.[........."clf.= |
3e60 | 20 50 43 41 28 6e 5f 63 6f 6d 70 6f 6e 65 6e 74 73 3d 32 29 5c 6e 6e 70 6f 73 20 3d 20 5b 30 2c | .PCA(n_components=2)\nnpos.=.[0, |
3e80 | 20 30 2c 20 30 2c 20 30 5d 5c 6e 6e 70 6f 73 20 3d 20 5b 73 6d 61 63 6f 66 5f 6d 64 73 28 43 73 | .0,.0,.0]\nnpos.=.[smacof_mds(Cs |
3ea0 | 5b 73 5d 2c 20 32 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 5c 6e 6e 70 | [s],.2).for.s.in.range(S)]\n\nnp |
3ec0 | 6f 73 74 30 31 20 3d 20 5b 30 2c 20 30 5d 5c 6e 6e 70 6f 73 74 30 31 20 3d 20 5b 73 6d 61 63 6f | ost01.=.[0,.0]\nnpost01.=.[smaco |
3ee0 | 66 5f 6d 64 73 28 43 74 30 31 5b 73 5d 2c 20 32 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 | f_mds(Ct01[s],.2).for.s.in.range |
3f00 | 28 32 29 5d 5c 6e 6e 70 6f 73 74 30 31 20 3d 20 5b 63 6c 66 2e 66 69 74 5f 74 72 61 6e 73 66 6f | (2)]\nnpost01.=.[clf.fit_transfo |
3f20 | 72 6d 28 6e 70 6f 73 74 30 31 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 | rm(npost01[s]).for.s.in.range(2) |
3f40 | 5d 5c 6e 5c 6e 6e 70 6f 73 74 30 32 20 3d 20 5b 30 2c 20 30 5d 5c 6e 6e 70 6f 73 74 30 32 20 3d | ]\n\nnpost02.=.[0,.0]\nnpost02.= |
3f60 | 20 5b 73 6d 61 63 6f 66 5f 6d 64 73 28 43 74 30 32 5b 73 5d 2c 20 32 29 20 66 6f 72 20 73 20 69 | .[smacof_mds(Ct02[s],.2).for.s.i |
3f80 | 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 6e 70 6f 73 74 30 32 20 3d 20 5b 63 6c 66 2e 66 69 74 5f | n.range(2)]\nnpost02.=.[clf.fit_ |
3fa0 | 74 72 61 6e 73 66 6f 72 6d 28 6e 70 6f 73 74 30 32 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 | transform(npost02[s]).for.s.in.r |
3fc0 | 61 6e 67 65 28 32 29 5d 5c 6e 5c 6e 6e 70 6f 73 74 31 33 20 3d 20 5b 30 2c 20 30 5d 5c 6e 6e 70 | ange(2)]\n\nnpost13.=.[0,.0]\nnp |
3fe0 | 6f 73 74 31 33 20 3d 20 5b 73 6d 61 63 6f 66 5f 6d 64 73 28 43 74 31 33 5b 73 5d 2c 20 32 29 20 | ost13.=.[smacof_mds(Ct13[s],.2). |
4000 | 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 6e 70 6f 73 74 31 33 20 3d 20 5b 63 | for.s.in.range(2)]\nnpost13.=.[c |
4020 | 6c 66 2e 66 69 74 5f 74 72 61 6e 73 66 6f 72 6d 28 6e 70 6f 73 74 31 33 5b 73 5d 29 20 66 6f 72 | lf.fit_transform(npost13[s]).for |
4040 | 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 5c 6e 6e 70 6f 73 74 32 33 20 3d 20 5b 30 2c | .s.in.range(2)]\n\nnpost23.=.[0, |
4060 | 20 30 5d 5c 6e 6e 70 6f 73 74 32 33 20 3d 20 5b 73 6d 61 63 6f 66 5f 6d 64 73 28 43 74 32 33 5b | .0]\nnpost23.=.[smacof_mds(Ct23[ |
4080 | 73 5d 2c 20 32 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 6e 70 6f 73 74 | s],.2).for.s.in.range(2)]\nnpost |
40a0 | 32 33 20 3d 20 5b 63 6c 66 2e 66 69 74 5f 74 72 61 6e 73 66 6f 72 6d 28 6e 70 6f 73 74 32 33 5b | 23.=.[clf.fit_transform(npost23[ |
40c0 | 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 5c 6e 5c 6e 66 69 67 20 | s]).for.s.in.range(2)]\n\n\nfig. |
40e0 | 3d 20 70 6c 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 5c | =.pl.figure(figsize=(10,.10))\n\ |
4100 | 6e 61 78 31 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 | nax1.=.pl.subplot2grid((4,.4),.( |
4120 | 30 2c 20 30 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 | 0,.0))\npl.xlim((-1,.1))\npl.yli |
4140 | 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 31 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 30 5d 5b | m((-1,.1))\nax1.scatter(npos[0][ |
4160 | 3a 2c 20 30 5d 2c 20 6e 70 6f 73 5b 30 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 | :,.0],.npos[0][:,.1],.color='r') |
4180 | 5c 6e 5c 6e 61 78 32 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 | \n\nax2.=.pl.subplot2grid((4,.4) |
41a0 | 2c 20 28 30 2c 20 31 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e | ,.(0,.1))\npl.xlim((-1,.1))\npl. |
41c0 | 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 32 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 | ylim((-1,.1))\nax2.scatter(npost |
41e0 | 30 31 5b 31 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 30 31 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 | 01[1][:,.0],.npost01[1][:,.1],.c |
4200 | 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 33 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 | olor='b')\n\nax3.=.pl.subplot2gr |
4220 | 69 64 28 28 34 2c 20 34 29 2c 20 28 30 2c 20 32 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c | id((4,.4),.(0,.2))\npl.xlim((-1, |
4240 | 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 33 2e 73 63 61 74 | .1))\npl.ylim((-1,.1))\nax3.scat |
4260 | 74 65 72 28 6e 70 6f 73 74 30 31 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 30 31 5b 30 5d | ter(npost01[0][:,.0],.npost01[0] |
4280 | 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 34 20 3d 20 70 6c 2e 73 | [:,.1],.color='b')\n\nax4.=.pl.s |
42a0 | 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 30 2c 20 33 29 29 5c 6e 70 6c 2e | ubplot2grid((4,.4),.(0,.3))\npl. |
42c0 | 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c | xlim((-1,.1))\npl.ylim((-1,.1))\ |
42e0 | 6e 61 78 34 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 31 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 | nax4.scatter(npos[1][:,.0],.npos |
4300 | 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c 6e 5c 6e 61 78 35 20 3d 20 70 | [1][:,.1],.color='r')\n\nax5.=.p |
4320 | 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 31 2c 20 30 29 29 5c 6e | l.subplot2grid((4,.4),.(1,.0))\n |
4340 | 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 | pl.xlim((-1,.1))\npl.ylim((-1,.1 |
4360 | 29 29 5c 6e 61 78 35 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 30 32 5b 31 5d 5b 3a 2c 20 30 5d | ))\nax5.scatter(npost02[1][:,.0] |
4380 | 2c 20 6e 70 6f 73 74 30 32 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e | ,.npost02[1][:,.1],.color='b')\n |
43a0 | 5c 6e 61 78 36 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 | \nax6.=.pl.subplot2grid((4,.4),. |
43c0 | 28 31 2c 20 33 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c | (1,.3))\npl.xlim((-1,.1))\npl.yl |
43e0 | 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 36 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 31 33 | im((-1,.1))\nax6.scatter(npost13 |
4400 | 5b 31 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 31 33 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c | [1][:,.0],.npost13[1][:,.1],.col |
4420 | 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 37 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 | or='b')\n\nax7.=.pl.subplot2grid |
4440 | 28 28 34 2c 20 34 29 2c 20 28 32 2c 20 30 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 | ((4,.4),.(2,.0))\npl.xlim((-1,.1 |
4460 | 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 37 2e 73 63 61 74 74 65 | ))\npl.ylim((-1,.1))\nax7.scatte |
4480 | 72 28 6e 70 6f 73 74 30 32 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 30 32 5b 30 5d 5b 3a | r(npost02[0][:,.0],.npost02[0][: |
44a0 | 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 38 20 3d 20 70 6c 2e 73 75 62 | ,.1],.color='b')\n\nax8.=.pl.sub |
44c0 | 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 32 2c 20 33 29 29 5c 6e 70 6c 2e 78 6c | plot2grid((4,.4),.(2,.3))\npl.xl |
44e0 | 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 | im((-1,.1))\npl.ylim((-1,.1))\na |
4500 | 78 38 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 31 33 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f | x8.scatter(npost13[0][:,.0],.npo |
4520 | 73 74 31 33 5b 30 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 39 | st13[0][:,.1],.color='b')\n\nax9 |
4540 | 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 33 2c 20 30 | .=.pl.subplot2grid((4,.4),.(3,.0 |
4560 | 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d | ))\npl.xlim((-1,.1))\npl.ylim((- |
4580 | 31 2c 20 31 29 29 5c 6e 61 78 39 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 32 5d 5b 3a 2c 20 30 | 1,.1))\nax9.scatter(npos[2][:,.0 |
45a0 | 5d 2c 20 6e 70 6f 73 5b 32 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c 6e 5c 6e | ],.npos[2][:,.1],.color='r')\n\n |
45c0 | 61 78 31 30 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 | ax10.=.pl.subplot2grid((4,.4),.( |
45e0 | 33 2c 20 31 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 | 3,.1))\npl.xlim((-1,.1))\npl.yli |
4600 | 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 31 30 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 32 33 | m((-1,.1))\nax10.scatter(npost23 |
4620 | 5b 31 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 32 33 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c | [1][:,.0],.npost23[1][:,.1],.col |
4640 | 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 31 31 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 | or='b')\n\nax11.=.pl.subplot2gri |
4660 | 64 28 28 34 2c 20 34 29 2c 20 28 33 2c 20 32 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 | d((4,.4),.(3,.2))\npl.xlim((-1,. |
4680 | 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 31 31 2e 73 63 61 74 | 1))\npl.ylim((-1,.1))\nax11.scat |
46a0 | 74 65 72 28 6e 70 6f 73 74 32 33 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 32 33 5b 30 5d | ter(npost23[0][:,.0],.npost23[0] |
46c0 | 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 31 32 20 3d 20 70 6c 2e | [:,.1],.color='b')\n\nax12.=.pl. |
46e0 | 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 33 2c 20 33 29 29 5c 6e 70 6c | subplot2grid((4,.4),.(3,.3))\npl |
4700 | 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 | .xlim((-1,.1))\npl.ylim((-1,.1)) |
4720 | 5c 6e 61 78 31 32 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 33 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 | \nax12.scatter(npos[3][:,.0],.np |
4740 | 6f 73 5b 33 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 22 0a 20 20 20 20 20 20 5d | os[3][:,.1],.color='r')".......] |
4760 | 2c 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 0a 20 20 20 20 | ,......."cell_type":."code"..... |
4780 | 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6c 61 6e 67 | }...],..."metadata":.{....."lang |
47a0 | 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 | uage_info":.{......."name":."pyt |
47c0 | 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b | hon",......."codemirror_mode":.{ |
47e0 | 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 | ........."name":."ipython",..... |
4800 | 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 | ...."version":.3.......},....... |
4820 | 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a | "nbconvert_exporter":."python",. |
4840 | 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 35 2e 32 22 2c 0a 20 20 20 20 20 20 | ......"version":."3.5.2",....... |
4860 | 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 | "pygments_lexer":."ipython3",... |
4880 | 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 | ...."file_extension":.".py",.... |
48a0 | 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 0a 20 | ..."mimetype":."text/x-python".. |
48c0 | 20 20 20 7d 2c 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 | ...},....."kernelspec":.{....... |
48e0 | 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 | "display_name":."Python.3",..... |
4900 | 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 | .."name":."python3",......."lang |
4920 | 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 | uage":."python".....}...},..."nb |
4940 | 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 | format_minor":.0,..."nbformat":. |
4960 | 34 0a 7d 50 4b 03 04 14 00 00 00 00 00 2d 60 cb 4c 17 03 7f 9a 5e 13 00 00 5e 13 00 00 16 00 00 | 4.}PK........-`.L....^...^...... |
4980 | 00 70 6c 6f 74 5f 6f 70 74 69 6d 5f 4f 54 72 65 67 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c | .plot_optim_OTreg.ipynb{..."cell |
49a0 | 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | s":.[.....{......."cell_type":." |
49c0 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
49e0 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
4a00 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
4a20 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
4a40 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 | ":.[........."%matplotlib.inline |
4a60 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
4a80 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
4aa0 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
4ac0 | 20 20 20 20 20 20 22 5c 6e 23 20 52 65 67 75 6c 61 72 69 7a 65 64 20 4f 54 20 77 69 74 68 20 67 | ......"\n#.Regularized.OT.with.g |
4ae0 | 65 6e 65 72 69 63 20 73 6f 6c 76 65 72 5c 6e 5c 6e 5c 6e 49 6c 6c 75 73 74 72 61 74 65 73 20 74 | eneric.solver\n\n\nIllustrates.t |
4b00 | 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 67 65 6e 65 72 69 63 20 73 6f 6c 76 65 72 20 66 6f 72 | he.use.of.the.generic.solver.for |
4b20 | 20 72 65 67 75 6c 61 72 69 7a 65 64 20 4f 54 20 77 69 74 68 5c 6e 75 73 65 72 2d 64 65 73 69 67 | .regularized.OT.with\nuser-desig |
4b40 | 6e 65 64 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 74 65 72 6d 2e 20 49 74 20 75 73 65 73 | ned.regularization.term..It.uses |
4b60 | 20 43 6f 6e 64 69 74 69 6f 6e 61 6c 20 67 72 61 64 69 65 6e 74 20 61 73 20 69 6e 20 5b 36 5d 20 | .Conditional.gradient.as.in.[6]. |
4b80 | 61 6e 64 5c 6e 67 65 6e 65 72 61 6c 69 7a 65 64 20 43 6f 6e 64 69 74 69 6f 6e 61 6c 20 47 72 61 | and\ngeneralized.Conditional.Gra |
4ba0 | 64 69 65 6e 74 20 61 73 20 70 72 6f 70 6f 73 65 64 20 69 6e 20 5b 35 5d 5b 37 5d 2e 5c 6e 5c 6e | dient.as.proposed.in.[5][7].\n\n |
4bc0 | 5c 6e 5b 35 5d 20 4e 2e 20 43 6f 75 72 74 79 3b 20 52 2e 20 46 6c 61 6d 61 72 79 3b 20 44 2e 20 | \n[5].N..Courty;.R..Flamary;.D.. |
4be0 | 54 75 69 61 3b 20 41 2e 20 52 61 6b 6f 74 6f 6d 61 6d 6f 6e 6a 79 2c 20 4f 70 74 69 6d 61 6c 20 | Tuia;.A..Rakotomamonjy,.Optimal. |
4c00 | 54 72 61 6e 73 70 6f 72 74 20 66 6f 72 5c 6e 44 6f 6d 61 69 6e 20 41 64 61 70 74 61 74 69 6f 6e | Transport.for\nDomain.Adaptation |
4c20 | 2c 20 69 6e 20 49 45 45 45 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 6e 20 50 61 74 74 65 72 | ,.in.IEEE.Transactions.on.Patter |
4c40 | 6e 20 41 6e 61 6c 79 73 69 73 20 61 6e 64 20 4d 61 63 68 69 6e 65 5c 6e 49 6e 74 65 6c 6c 69 67 | n.Analysis.and.Machine\nIntellig |
4c60 | 65 6e 63 65 20 2c 20 76 6f 6c 2e 50 50 2c 20 6e 6f 2e 39 39 2c 20 70 70 2e 31 2d 31 2e 5c 6e 5c | ence.,.vol.PP,.no.99,.pp.1-1.\n\ |
4c80 | 6e 5b 36 5d 20 46 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 64 61 6b 69 73 2c 20 4e | n[6].Ferradans,.S.,.Papadakis,.N |
4ca0 | 2e 2c 20 50 65 79 72 5c 75 30 30 65 39 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 | .,.Peyr\u00e9,.G.,.&.Aujol,.J..F |
4cc0 | 2e 20 28 32 30 31 34 29 2e 5c 6e 52 65 67 75 6c 61 72 69 7a 65 64 20 64 69 73 63 72 65 74 65 20 | ..(2014).\nRegularized.discrete. |
4ce0 | 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 | optimal.transport..SIAM.Journal. |
4d00 | 6f 6e 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e 63 65 73 2c 5c 6e 37 28 33 29 2c 20 31 38 35 33 | on.Imaging.Sciences,\n7(3),.1853 |
4d20 | 2d 31 38 38 32 2e 5c 6e 5c 6e 5b 37 5d 20 52 61 6b 6f 74 6f 6d 61 6d 6f 6e 6a 79 2c 20 41 2e 2c | -1882.\n\n[7].Rakotomamonjy,.A., |
4d40 | 20 46 6c 61 6d 61 72 79 2c 20 52 2e 2c 20 26 20 43 6f 75 72 74 79 2c 20 4e 2e 20 28 32 30 31 35 | .Flamary,.R.,.&.Courty,.N..(2015 |
4d60 | 29 2e 20 47 65 6e 65 72 61 6c 69 7a 65 64 5c 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 67 72 61 64 | )..Generalized\nconditional.grad |
4d80 | 69 65 6e 74 3a 20 61 6e 61 6c 79 73 69 73 20 6f 66 20 63 6f 6e 76 65 72 67 65 6e 63 65 20 61 6e | ient:.analysis.of.convergence.an |
4da0 | 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 5c 6e 61 72 58 69 76 20 70 72 65 70 72 69 6e 74 20 | d.applications.\narXiv.preprint. |
4dc0 | 61 72 58 69 76 3a 31 35 31 30 2e 30 36 35 36 37 2e 5c 6e 5c 6e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 | arXiv:1510.06567.\n\n\n\n\n".... |
4de0 | 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 | ...].....},.....{......."cell_ty |
4e00 | 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f | pe":."code",......."execution_co |
4e20 | 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a | unt":.null,......."metadata":.{. |
4e40 | 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 | ........"collapsed":.false...... |
4e60 | 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 | .},......."outputs":.[],......." |
4e80 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 | source":.[........."import.numpy |
4ea0 | 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 | .as.np\nimport.matplotlib.pylab. |
4ec0 | 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 | as.pl\nimport.ot\nimport.ot.plot |
4ee0 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
4f00 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
4f20 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
4f40 | 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ......"Generate.data\n---------- |
4f60 | 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | ---\n\n".......].....},.....{... |
4f80 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 | ...."cell_type":."code",......." |
4fa0 | 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d | execution_count":.null,......."m |
4fc0 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a | etadata":.{........."collapsed": |
4fe0 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | .false.......},......."outputs": |
5000 | 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .[],......."source":.[........." |
5020 | 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 | #%%.parameters\n\nn.=.100..#.nb. |
5040 | 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e | bins\n\n#.bin.positions\nx.=.np. |
5060 | 61 72 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 | arange(n,.dtype=np.float64)\n\n# |
5080 | 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 6f 74 2e | .Gaussian.distributions\na.=.ot. |
50a0 | 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 | datasets.make_1D_gauss(n,.m=20,. |
50c0 | 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 62 20 3d 20 6f 74 2e | s=5)..#.m=.mean,.s=.std\nb.=.ot. |
50e0 | 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 | datasets.make_1D_gauss(n,.m=60,. |
5100 | 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 | s=10)\n\n#.loss.matrix\nM.=.ot.d |
5120 | 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 65 | ist(x.reshape((n,.1)),.x.reshape |
5140 | 28 28 6e 2c 20 31 29 29 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d | ((n,.1)))\nM./=.M.max()".......] |
5160 | 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a | .....},.....{......."cell_type": |
5180 | 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b | ."markdown",......."metadata":.{ |
51a0 | 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f | },......."source":.[........."So |
51c0 | 6c 76 65 20 45 4d 44 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a | lve.EMD\n---------\n\n".......]. |
51e0 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
5200 | 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a | "code",......."execution_count": |
5220 | 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 | .null,......."metadata":.{...... |
5240 | 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 | ..."collapsed":.false.......},.. |
5260 | 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 | ....."outputs":.[],......."sourc |
5280 | 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 20 3d 20 6f | e":.[........."#%%.EMD\n\nG0.=.o |
52a0 | 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 | t.emd(a,.b,.M)\n\npl.figure(3,.f |
52c0 | 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d | igsize=(5,.5))\not.plot.plot1D_m |
52e0 | 61 74 28 61 2c 20 62 2c 20 47 30 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 22 0a 20 20 | at(a,.b,.G0,.'OT.matrix.G0')"... |
5300 | 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 | ....].....},.....{......."cell_t |
5320 | 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ype":."markdown",......."metadat |
5340 | 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | a":.{},......."source":.[....... |
5360 | 20 20 22 53 6f 6c 76 65 20 45 4d 44 20 77 69 74 68 20 46 72 6f 62 65 6e 69 75 73 20 6e 6f 72 6d | .."Solve.EMD.with.Frobenius.norm |
5380 | 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .regularization\n--------------- |
53a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c | -----------------------------\n\ |
53c0 | 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | n".......].....},.....{......."c |
53e0 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 | ell_type":."code",......."execut |
5400 | 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ion_count":.null,......."metadat |
5420 | 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 | a":.{........."collapsed":.false |
5440 | 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 | .......},......."outputs":.[],.. |
5460 | 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 45 78 | ....."source":.[........."#%%.Ex |
5480 | 61 6d 70 6c 65 20 77 69 74 68 20 46 72 6f 62 65 6e 69 75 73 20 6e 6f 72 6d 20 72 65 67 75 6c 61 | ample.with.Frobenius.norm.regula |
54a0 | 72 69 7a 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 64 65 66 20 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 | rization\n\n\ndef.f(G):\n....ret |
54c0 | 75 72 6e 20 30 2e 35 20 2a 20 6e 70 2e 73 75 6d 28 47 2a 2a 32 29 5c 6e 5c 6e 5c 6e 64 65 66 20 | urn.0.5.*.np.sum(G**2)\n\n\ndef. |
54e0 | 64 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 72 65 67 20 3d 20 | df(G):\n....return.G\n\n\nreg.=. |
5500 | 31 65 2d 31 5c 6e 5c 6e 47 6c 32 20 3d 20 6f 74 2e 6f 70 74 69 6d 2e 63 67 28 61 2c 20 62 2c 20 | 1e-1\n\nGl2.=.ot.optim.cg(a,.b,. |
5520 | 4d 2c 20 72 65 67 2c 20 66 2c 20 64 66 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e | M,.reg,.f,.df,.verbose=True)\n\n |
5540 | 70 6c 2e 66 69 67 75 72 65 28 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 | pl.figure(3)\not.plot.plot1D_mat |
5560 | 28 61 2c 20 62 2c 20 47 6c 32 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 46 72 6f 62 2e 20 72 65 67 | (a,.b,.Gl2,.'OT.matrix.Frob..reg |
5580 | 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | ')".......].....},.....{......." |
55a0 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d | cell_type":."markdown",......."m |
55c0 | 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | etadata":.{},......."source":.[. |
55e0 | 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 45 4d 44 20 77 69 74 68 20 65 6e 74 72 6f 70 69 63 | ........"Solve.EMD.with.entropic |
5600 | 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .regularization\n--------------- |
5620 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 | -----------------------\n\n".... |
5640 | 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 | ...].....},.....{......."cell_ty |
5660 | 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f | pe":."code",......."execution_co |
5680 | 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a | unt":.null,......."metadata":.{. |
56a0 | 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 | ........"collapsed":.false...... |
56c0 | 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 | .},......."outputs":.[],......." |
56e0 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 45 78 61 6d 70 6c 65 20 | source":.[........."#%%.Example. |
5700 | 77 69 74 68 20 65 6e 74 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 5c 6e | with.entropic.regularization\n\n |
5720 | 5c 6e 64 65 66 20 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 73 75 6d 28 47 | \ndef.f(G):\n....return.np.sum(G |
5740 | 20 2a 20 6e 70 2e 6c 6f 67 28 47 29 29 5c 6e 5c 6e 5c 6e 64 65 66 20 64 66 28 47 29 3a 5c 6e 20 | .*.np.log(G))\n\n\ndef.df(G):\n. |
5760 | 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 6c 6f 67 28 47 29 20 2b 20 31 2e 5c 6e 5c 6e 5c 6e 72 65 | ...return.np.log(G).+.1.\n\n\nre |
5780 | 67 20 3d 20 31 65 2d 33 5c 6e 5c 6e 47 65 20 3d 20 6f 74 2e 6f 70 74 69 6d 2e 63 67 28 61 2c 20 | g.=.1e-3\n\nGe.=.ot.optim.cg(a,. |
57a0 | 62 2c 20 4d 2c 20 72 65 67 2c 20 66 2c 20 64 66 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c | b,.M,.reg,.f,.df,.verbose=True)\ |
57c0 | 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c | n\npl.figure(4,.figsize=(5,.5))\ |
57e0 | 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 65 2c 20 27 4f | not.plot.plot1D_mat(a,.b,.Ge,.'O |
5800 | 54 20 6d 61 74 72 69 78 20 45 6e 74 72 6f 70 2e 20 72 65 67 27 29 22 0a 20 20 20 20 20 20 5d 0a | T.matrix.Entrop..reg')".......]. |
5820 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
5840 | 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d | "markdown",......."metadata":.{} |
5860 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c | ,......."source":.[........."Sol |
5880 | 76 65 20 45 4d 44 20 77 69 74 68 20 46 72 6f 62 65 6e 69 75 73 20 6e 6f 72 6d 20 2b 20 65 6e 74 | ve.EMD.with.Frobenius.norm.+.ent |
58a0 | 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ropic.regularization\n---------- |
58c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
58e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | -------------\n\n".......].....} |
5900 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 | ,.....{......."cell_type":."code |
5920 | 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c | ",......."execution_count":.null |
5940 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 | ,......."metadata":.{........."c |
5960 | 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 | ollapsed":.false.......},....... |
5980 | 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | "outputs":.[],......."source":.[ |
59a0 | 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 45 78 61 6d 70 6c 65 20 77 69 74 68 20 46 72 6f 62 65 | ........."#%%.Example.with.Frobe |
59c0 | 6e 69 75 73 20 6e 6f 72 6d 20 2b 20 65 6e 74 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 | nius.norm.+.entropic.regularizat |
59e0 | 69 6f 6e 20 77 69 74 68 20 67 63 67 5c 6e 5c 6e 5c 6e 64 65 66 20 66 28 47 29 3a 5c 6e 20 20 20 | ion.with.gcg\n\n\ndef.f(G):\n... |
5a00 | 20 72 65 74 75 72 6e 20 30 2e 35 20 2a 20 6e 70 2e 73 75 6d 28 47 2a 2a 32 29 5c 6e 5c 6e 5c 6e | .return.0.5.*.np.sum(G**2)\n\n\n |
5a20 | 64 65 66 20 64 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 72 65 | def.df(G):\n....return.G\n\n\nre |
5a40 | 67 31 20 3d 20 31 65 2d 33 5c 6e 72 65 67 32 20 3d 20 31 65 2d 31 5c 6e 5c 6e 47 65 6c 32 20 3d | g1.=.1e-3\nreg2.=.1e-1\n\nGel2.= |
5a60 | 20 6f 74 2e 6f 70 74 69 6d 2e 67 63 67 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 31 2c 20 72 65 67 | .ot.optim.gcg(a,.b,.M,.reg1,.reg |
5a80 | 32 2c 20 66 2c 20 64 66 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 | 2,.f,.df,.verbose=True)\n\npl.fi |
5aa0 | 67 75 72 65 28 35 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 | gure(5,.figsize=(5,.5))\not.plot |
5ac0 | 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 65 6c 32 2c 20 27 4f 54 20 65 6e 74 72 | .plot1D_mat(a,.b,.Gel2,.'OT.entr |
5ae0 | 6f 70 69 63 20 2b 20 6d 61 74 72 69 78 20 46 72 6f 62 2e 20 72 65 67 27 29 5c 6e 70 6c 2e 73 68 | opic.+.matrix.Frob..reg')\npl.sh |
5b00 | 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 | ow()".......].....}...],..."meta |
5b20 | 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 | data":.{....."kernelspec":.{.... |
5b40 | 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 | ..."display_name":."Python.3",.. |
5b60 | 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 | ....."language":."python",...... |
5b80 | 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c | ."name":."python3".....},....."l |
5ba0 | 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 | anguage_info":.{......."codemirr |
5bc0 | 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 | or_mode":.{........."name":."ipy |
5be0 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 | thon",........."version":.3..... |
5c00 | 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 | ..},......."file_extension":.".p |
5c20 | 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 | y",......."mimetype":."text/x-py |
5c40 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 | thon",......."name":."python",.. |
5c60 | 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 | ....."nbconvert_exporter":."pyth |
5c80 | 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 | on",......."pygments_lexer":."ip |
5ca0 | 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 35 | ython3",......."version":."3.6.5 |
5cc0 | 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 | ".....}...},..."nbformat":.4,... |
5ce0 | 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 2d | "nbformat_minor":.0.}PK........- |
5d00 | 60 cb 4c d1 72 b5 4d f4 1c 00 00 f4 1c 00 00 12 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 64 32 2e | `.L.r.M............plot_otda_d2. |
5d20 | 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 | ipynb{..."cells":.[.....{....... |
5d40 | 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 | "cell_type":."code",......."exec |
5d60 | 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 | ution_count":.null,......."metad |
5d80 | 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c | ata":.{........."collapsed":.fal |
5da0 | 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c | se.......},......."outputs":.[], |
5dc0 | 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 | ......."source":.[........."%mat |
5de0 | 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 | plotlib.inline".......].....},.. |
5e00 | 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 | ...{......."cell_type":."markdow |
5e20 | 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 | n",......."metadata":.{},....... |
5e40 | 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 66 6f 72 20 | "source":.[........."\n#.OT.for. |
5e60 | 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 6f 6e 20 65 6d 70 69 72 69 63 61 6c 20 64 | domain.adaptation.on.empirical.d |
5e80 | 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 | istributions\n\n\nThis.example.i |
5ea0 | 6e 74 72 6f 64 75 63 65 73 20 61 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 69 6e | ntroduces.a.domain.adaptation.in |
5ec0 | 20 61 20 32 44 20 73 65 74 74 69 6e 67 2e 20 49 74 20 65 78 70 6c 69 63 69 74 73 5c 6e 74 68 65 | .a.2D.setting..It.explicits\nthe |
5ee0 | 20 70 72 6f 62 6c 65 6d 20 6f 66 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 61 6e | .problem.of.domain.adaptation.an |
5f00 | 64 20 69 6e 74 72 6f 64 75 63 65 73 20 73 6f 6d 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 | d.introduces.some.optimal.transp |
5f20 | 6f 72 74 5c 6e 61 70 70 72 6f 61 63 68 65 73 20 74 6f 20 73 6f 6c 76 65 20 69 74 2e 5c 6e 5c 6e | ort\napproaches.to.solve.it.\n\n |
5f40 | 51 75 61 6e 74 69 74 69 65 73 20 73 75 63 68 20 61 73 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c | Quantities.such.as.optimal.coupl |
5f60 | 69 6e 67 73 2c 20 67 72 65 61 74 65 72 20 63 6f 75 70 6c 69 6e 67 20 63 6f 65 66 66 69 63 69 65 | ings,.greater.coupling.coefficie |
5f80 | 6e 74 73 20 61 6e 64 5c 6e 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 20 61 72 65 | nts.and\ntransported.samples.are |
5fa0 | 20 72 65 70 72 65 73 65 6e 74 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 67 69 76 65 20 61 20 | .represented.in.order.to.give.a. |
5fc0 | 76 69 73 75 61 6c 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 5c 6e 6f 66 20 77 68 61 74 20 74 68 | visual.understanding\nof.what.th |
5fe0 | 65 20 74 72 61 6e 73 70 6f 72 74 20 6d 65 74 68 6f 64 73 20 61 72 65 20 64 6f 69 6e 67 2e 5c 6e | e.transport.methods.are.doing.\n |
6000 | 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | \n".......].....},.....{......." |
6020 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 | cell_type":."code",......."execu |
6040 | 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | tion_count":.null,......."metada |
6060 | 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 | ta":.{........."collapsed":.fals |
6080 | 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a | e.......},......."outputs":.[],. |
60a0 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 | ......"source":.[........."#.Aut |
60c0 | 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 | hors:.Remi.Flamary.<remi.flamary |
60e0 | 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 | @unice.fr>\n#..........Stanislas |
6100 | 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d | .Chambon.<stan.chambon@gmail.com |
6120 | 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e | >\n#\n#.License:.MIT.License\n\n |
6140 | 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 | import.matplotlib.pylab.as.pl\ni |
6160 | 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 22 0a 20 20 20 20 20 20 | mport.ot\nimport.ot.plot"....... |
6180 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
61a0 | 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | :."markdown",......."metadata":. |
61c0 | 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 67 | {},......."source":.[........."g |
61e0 | 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 | enerate.data\n-------------\n\n" |
6200 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
6220 | 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f | l_type":."code",......."executio |
6240 | 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 | n_count":.null,......."metadata" |
6260 | 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 | :.{........."collapsed":.false.. |
6280 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 | .....},......."outputs":.[],.... |
62a0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 61 6d 70 6c 65 | ..."source":.[........."n_sample |
62c0 | 73 5f 73 6f 75 72 63 65 20 3d 20 31 35 30 5c 6e 6e 5f 73 61 6d 70 6c 65 73 5f 74 61 72 67 65 74 | s_source.=.150\nn_samples_target |
62e0 | 20 3d 20 31 35 30 5c 6e 5c 6e 58 73 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d | .=.150\n\nXs,.ys.=.ot.datasets.m |
6300 | 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 20 6e 5f 73 61 6d | ake_data_classif('3gauss',.n_sam |
6320 | 70 6c 65 73 5f 73 6f 75 72 63 65 29 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e 64 61 74 61 73 65 | ples_source)\nXt,.yt.=.ot.datase |
6340 | 74 73 2e 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 32 27 2c 20 | ts.make_data_classif('3gauss2',. |
6360 | 6e 5f 73 61 6d 70 6c 65 73 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 23 20 43 6f 73 74 20 6d 61 74 72 | n_samples_target)\n\n#.Cost.matr |
6380 | 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 58 73 2c 20 58 74 2c 20 6d 65 74 72 69 63 3d 27 | ix\nM.=.ot.dist(Xs,.Xt,.metric=' |
63a0 | 73 71 65 75 63 6c 69 64 65 61 6e 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | sqeuclidean')".......].....},... |
63c0 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
63e0 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
6400 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 73 74 61 6e 74 69 61 74 65 20 | source":.[........."Instantiate. |
6420 | 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 74 72 61 6e 73 70 6f 72 74 20 61 6c 67 6f 72 69 74 68 | the.different.transport.algorith |
6440 | 6d 73 20 61 6e 64 20 66 69 74 20 74 68 65 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ms.and.fit.them\n--------------- |
6460 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
6480 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | ------------\n\n".......].....}, |
64a0 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 | .....{......."cell_type":."code" |
64c0 | 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | ,......."execution_count":.null, |
64e0 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f | ......."metadata":.{........."co |
6500 | 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | llapsed":.false.......},......." |
6520 | 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | outputs":.[],......."source":.[. |
6540 | 20 20 20 20 20 20 20 20 22 23 20 45 4d 44 20 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 65 6d 64 | ........"#.EMD.Transport\not_emd |
6560 | 20 3d 20 6f 74 2e 64 61 2e 45 4d 44 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e 6f 74 5f 65 6d 64 2e | .=.ot.da.EMDTransport()\not_emd. |
6580 | 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 20 | fit(Xs=Xs,.Xt=Xt)\n\n#.Sinkhorn. |
65a0 | 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 64 61 2e 53 | Transport\not_sinkhorn.=.ot.da.S |
65c0 | 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f 74 | inkhornTransport(reg_e=1e-1)\not |
65e0 | 5f 73 69 6e 6b 68 6f 72 6e 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 | _sinkhorn.fit(Xs=Xs,.Xt=Xt)\n\n# |
6600 | 20 53 69 6e 6b 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 20 77 69 74 68 20 47 72 6f 75 70 20 6c | .Sinkhorn.Transport.with.Group.l |
6620 | 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 6f 74 5f 6c 70 6c 31 20 3d 20 6f | asso.regularization\not_lpl1.=.o |
6640 | 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 | t.da.SinkhornLpl1Transport(reg_e |
6660 | 3d 31 65 2d 31 2c 20 72 65 67 5f 63 6c 3d 31 65 30 29 5c 6e 6f 74 5f 6c 70 6c 31 2e 66 69 74 28 | =1e-1,.reg_cl=1e0)\not_lpl1.fit( |
6680 | 58 73 3d 58 73 2c 20 79 73 3d 79 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 74 72 61 6e 73 70 | Xs=Xs,.ys=ys,.Xt=Xt)\n\n#.transp |
66a0 | 6f 72 74 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 20 6f 6e 74 6f 20 74 61 72 67 65 74 20 73 | ort.source.samples.onto.target.s |
66c0 | 61 6d 70 6c 65 73 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 20 3d 20 6f 74 5f 65 6d 64 2e 74 | amples\ntransp_Xs_emd.=.ot_emd.t |
66e0 | 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 | ransform(Xs=Xs)\ntransp_Xs_sinkh |
6700 | 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 | orn.=.ot_sinkhorn.transform(Xs=X |
6720 | 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 20 3d 20 6f 74 5f 6c 70 6c 31 2e 74 72 61 | s)\ntransp_Xs_lpl1.=.ot_lpl1.tra |
6740 | 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | nsform(Xs=Xs)".......].....},... |
6760 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
6780 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
67a0 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 31 20 3a 20 70 6c 6f 74 | source":.[........."Fig.1.:.plot |
67c0 | 73 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 20 2b 20 6d 61 | s.source.and.target.samples.+.ma |
67e0 | 74 72 69 78 20 6f 66 20 70 61 69 72 77 69 73 65 20 64 69 73 74 61 6e 63 65 5c 6e 2d 2d 2d 2d 2d | trix.of.pairwise.distance\n----- |
6800 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
6820 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
6840 | 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 | \n\n".......].....},.....{...... |
6860 | 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 | ."cell_type":."code",......."exe |
6880 | 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | cution_count":.null,......."meta |
68a0 | 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 | data":.{........."collapsed":.fa |
68c0 | 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d | lse.......},......."outputs":.[] |
68e0 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e | ,......."source":.[........."pl. |
6900 | 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 70 6c 2e | figure(1,.figsize=(10,.10))\npl. |
6920 | 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b | subplot(2,.2,.1)\npl.scatter(Xs[ |
6940 | 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b | :,.0],.Xs[:,.1],.c=ys,.marker='+ |
6960 | 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 | ',.label='Source.samples')\npl.x |
6980 | 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 67 | ticks([])\npl.yticks([])\npl.leg |
69a0 | 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 73 61 | end(loc=0)\npl.title('Source..sa |
69c0 | 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 32 29 5c 6e | mples')\n\npl.subplot(2,.2,.2)\n |
69e0 | 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 | pl.scatter(Xt[:,.0],.Xt[:,.1],.c |
6a00 | 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 | =yt,.marker='o',.label='Target.s |
6a20 | 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 | amples')\npl.xticks([])\npl.ytic |
6a40 | 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 | ks([])\npl.legend(loc=0)\npl.tit |
6a60 | 6c 65 28 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c | le('Target.samples')\n\npl.subpl |
6a80 | 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 20 69 6e 74 65 72 70 | ot(2,.2,.3)\npl.imshow(M,.interp |
6aa0 | 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d | olation='nearest')\npl.xticks([] |
6ac0 | 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 74 72 | )\npl.yticks([])\npl.title('Matr |
6ae0 | 69 78 20 6f 66 20 70 61 69 72 77 69 73 65 20 64 69 73 74 61 6e 63 65 73 27 29 5c 6e 70 6c 2e 74 | ix.of.pairwise.distances')\npl.t |
6b00 | 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | ight_layout()".......].....},... |
6b20 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
6b40 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
6b60 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 32 20 3a 20 70 6c 6f 74 | source":.[........."Fig.2.:.plot |
6b80 | 73 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 73 20 66 6f 72 20 74 68 65 20 64 69 66 66 | s.optimal.couplings.for.the.diff |
6ba0 | 65 72 65 6e 74 20 6d 65 74 68 6f 64 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | erent.methods\n----------------- |
6bc0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
6be0 | 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | --------\n\n".......].....},.... |
6c00 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
6c20 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
6c40 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
6c60 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
6c80 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
6ca0 | 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 36 | ...."pl.figure(2,.figsize=(10,.6 |
6cc0 | 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d | ))\n\npl.subplot(2,.3,.1)\npl.im |
6ce0 | 73 68 6f 77 28 6f 74 5f 65 6d 64 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 | show(ot_emd.coupling_,.interpola |
6d00 | 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e | tion='nearest')\npl.xticks([])\n |
6d20 | 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c | pl.yticks([])\npl.title('Optimal |
6d40 | 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 45 4d 44 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c | .coupling\\nEMDTransport')\n\npl |
6d60 | 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f | .subplot(2,.3,.2)\npl.imshow(ot_ |
6d80 | 73 69 6e 6b 68 6f 72 6e 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f | sinkhorn.coupling_,.interpolatio |
6da0 | 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e | n='nearest')\npl.xticks([])\npl. |
6dc0 | 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f | yticks([])\npl.title('Optimal.co |
6de0 | 75 70 6c 69 6e 67 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e | upling\\nSinkhornTransport')\n\n |
6e00 | 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f | pl.subplot(2,.3,.3)\npl.imshow(o |
6e20 | 74 5f 6c 70 6c 31 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d | t_lpl1.coupling_,.interpolation= |
6e40 | 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 | 'nearest')\npl.xticks([])\npl.yt |
6e60 | 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 | icks([])\npl.title('Optimal.coup |
6e80 | 6c 69 6e 67 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e | ling\\nSinkhornLpl1Transport')\n |
6ea0 | 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 34 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 | \npl.subplot(2,.3,.4)\not.plot.p |
6ec0 | 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 58 73 2c 20 58 74 2c 20 6f 74 5f 65 6d 64 | lot2D_samples_mat(Xs,.Xt,.ot_emd |
6ee0 | 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 73 | .coupling_,.c=[.5,..5,.1])\npl.s |
6f00 | 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c | catter(Xs[:,.0],.Xs[:,.1],.c=ys, |
6f20 | 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c | .marker='+',.label='Source.sampl |
6f40 | 65 73 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c | es')\npl.scatter(Xt[:,.0],.Xt[:, |
6f60 | 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 | .1],.c=yt,.marker='o',.label='Ta |
6f80 | 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 | rget.samples')\npl.xticks([])\np |
6fa0 | 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 69 6e 20 63 6f 75 | l.yticks([])\npl.title('Main.cou |
6fc0 | 70 6c 69 6e 67 20 63 6f 65 66 66 69 63 69 65 6e 74 73 5c 5c 6e 45 4d 44 54 72 61 6e 73 70 6f 72 | pling.coefficients\\nEMDTranspor |
6fe0 | 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 35 29 5c 6e 6f 74 2e 70 | t')\n\npl.subplot(2,.3,.5)\not.p |
7000 | 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 58 73 2c 20 58 74 2c 20 6f | lot.plot2D_samples_mat(Xs,.Xt,.o |
7020 | 74 5f 73 69 6e 6b 68 6f 72 6e 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c | t_sinkhorn.coupling_,.c=[.5,..5, |
7040 | 20 31 5d 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c | .1])\npl.scatter(Xs[:,.0],.Xs[:, |
7060 | 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f | .1],.c=ys,.marker='+',.label='So |
7080 | 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c | urce.samples')\npl.scatter(Xt[:, |
70a0 | 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c | .0],.Xt[:,.1],.c=yt,.marker='o', |
70c0 | 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 | .label='Target.samples')\npl.xti |
70e0 | 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 | cks([])\npl.yticks([])\npl.title |
7100 | 28 27 4d 61 69 6e 20 63 6f 75 70 6c 69 6e 67 20 63 6f 65 66 66 69 63 69 65 6e 74 73 5c 5c 6e 53 | ('Main.coupling.coefficients\\nS |
7120 | 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 | inkhornTransport')\n\npl.subplot |
7140 | 28 32 2c 20 33 2c 20 36 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 | (2,.3,.6)\not.plot.plot2D_sample |
7160 | 73 5f 6d 61 74 28 58 73 2c 20 58 74 2c 20 6f 74 5f 6c 70 6c 31 2e 63 6f 75 70 6c 69 6e 67 5f 2c | s_mat(Xs,.Xt,.ot_lpl1.coupling_, |
7180 | 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a | .c=[.5,..5,.1])\npl.scatter(Xs[: |
71a0 | 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 | ,.0],.Xs[:,.1],.c=ys,.marker='+' |
71c0 | 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 73 63 | ,.label='Source.samples')\npl.sc |
71e0 | 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 | atter(Xt[:,.0],.Xt[:,.1],.c=yt,. |
7200 | 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 | marker='o',.label='Target.sample |
7220 | 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d | s')\npl.xticks([])\npl.yticks([] |
7240 | 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 69 6e 20 63 6f 75 70 6c 69 6e 67 20 63 6f 65 66 66 | )\npl.title('Main.coupling.coeff |
7260 | 69 63 69 65 6e 74 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 27 | icients\\nSinkhornLpl1Transport' |
7280 | 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 | )\npl.tight_layout()".......]... |
72a0 | 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d | ..},.....{......."cell_type":."m |
72c0 | 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a | arkdown",......."metadata":.{},. |
72e0 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 33 | ......"source":.[........."Fig.3 |
7300 | 20 3a 20 70 6c 6f 74 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d | .:.plot.transported.samples\n--- |
7320 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c | -----------------------------\n\ |
7340 | 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | n".......].....},.....{......."c |
7360 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 | ell_type":."code",......."execut |
7380 | 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ion_count":.null,......."metadat |
73a0 | 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 | a":.{........."collapsed":.false |
73c0 | 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 | .......},......."outputs":.[],.. |
73e0 | 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 64 69 73 70 | ....."source":.[........."#.disp |
7400 | 6c 61 79 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 70 6c 2e 66 69 67 75 | lay.transported.samples\npl.figu |
7420 | 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 34 29 29 5c 6e 70 6c 2e 73 75 62 70 6c | re(4,.figsize=(10,.4))\npl.subpl |
7440 | 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d | ot(1,.3,.1)\npl.scatter(Xt[:,.0] |
7460 | 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 | ,.Xt[:,.1],.c=yt,.marker='o',\n. |
7480 | 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 | ..........label='Target.samples' |
74a0 | 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f | ,.alpha=0.5)\npl.scatter(transp_ |
74c0 | 58 73 5f 65 6d 64 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 5b 3a 2c 20 31 | Xs_emd[:,.0],.transp_Xs_emd[:,.1 |
74e0 | 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c | ],.c=ys,\n...........marker='+', |
7500 | 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e | .label='Transp.samples',.s=30)\n |
7520 | 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e | pl.title('Transported.samples\\n |
7540 | 45 6d 64 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 | EmdTransport')\npl.legend(loc=0) |
7560 | 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e | \npl.xticks([])\npl.yticks([])\n |
7580 | 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 | \npl.subplot(1,.3,.2)\npl.scatte |
75a0 | 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b | r(Xt[:,.0],.Xt[:,.1],.c=yt,.mark |
75c0 | 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 | er='o',\n...........label='Targe |
75e0 | 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 | t.samples',.alpha=0.5)\npl.scatt |
7600 | 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5b 3a 2c 20 30 5d 2c 20 74 72 61 | er(transp_Xs_sinkhorn[:,.0],.tra |
7620 | 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 | nsp_Xs_sinkhorn[:,.1],.c=ys,\n.. |
7640 | 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e | .........marker='+',.label='Tran |
7660 | 73 70 20 73 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 | sp.samples',.s=30)\npl.title('Tr |
7680 | 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e | ansported.samples\\nSinkhornTran |
76a0 | 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b | sport')\npl.xticks([])\npl.ytick |
76c0 | 73 28 5b 5d 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 70 6c | s([])\n\npl.subplot(1,.3,.3)\npl |
76e0 | 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 | .scatter(Xt[:,.0],.Xt[:,.1],.c=y |
7700 | 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c | t,.marker='o',\n...........label |
7720 | 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 | ='Target.samples',.alpha=0.5)\np |
7740 | 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 5b 3a 2c 20 30 5d 2c 20 | l.scatter(transp_Xs_lpl1[:,.0],. |
7760 | 74 72 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 | transp_Xs_lpl1[:,.1],.c=ys,\n... |
7780 | 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 | ........marker='+',.label='Trans |
77a0 | 70 20 73 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 | p.samples',.s=30)\npl.title('Tra |
77c0 | 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 | nsported.samples\\nSinkhornLpl1T |
77e0 | 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 | ransport')\npl.xticks([])\npl.yt |
7800 | 69 63 6b 73 28 5b 5d 29 5c 6e 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 | icks([])\n\npl.tight_layout()\np |
7820 | 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 | l.show()".......].....}...],..." |
7840 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b | metadata":.{....."kernelspec":.{ |
7860 | 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 | ......."display_name":."Python.3 |
7880 | 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 | ",......."language":."python",.. |
78a0 | 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 | ....."name":."python3".....},... |
78c0 | 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 | .."language_info":.{......."code |
78e0 | 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 | mirror_mode":.{........."name":. |
7900 | 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a | "ipython",........."version":.3. |
7920 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a | ......},......."file_extension": |
7940 | 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f | .".py",......."mimetype":."text/ |
7960 | 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e | x-python",......."name":."python |
7980 | 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 | ",......."nbconvert_exporter":." |
79a0 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a | python",......."pygments_lexer": |
79c0 | 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 | ."ipython3",......."version":."3 |
79e0 | 2e 36 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 | .6.5".....}...},..."nbformat":.4 |
7a00 | 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 | ,..."nbformat_minor":.0.}PK..... |
7a20 | 00 00 00 2d 60 cb 4c a9 b8 76 f6 f8 19 00 00 f8 19 00 00 1f 00 00 00 70 6c 6f 74 5f 6f 74 64 61 | ...-`.L..v.............plot_otda |
7a40 | 5f 73 65 6d 69 5f 73 75 70 65 72 76 69 73 65 64 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 | _semi_supervised.ipynb{..."cells |
7a60 | 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 | ":.[.....{......."cell_type":."c |
7a80 | 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e | ode",......."execution_count":.n |
7aa0 | 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 | ull,......."metadata":.{........ |
7ac0 | 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 | ."collapsed":.false.......},.... |
7ae0 | 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 | ..."outputs":.[],......."source" |
7b00 | 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 | :.[........."%matplotlib.inline" |
7b20 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
7b40 | 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | l_type":."markdown",......."meta |
7b60 | 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | data":.{},......."source":.[.... |
7b80 | 20 20 20 20 20 22 5c 6e 23 20 4f 54 44 41 20 75 6e 73 75 70 65 72 76 69 73 65 64 20 76 73 20 73 | ....."\n#.OTDA.unsupervised.vs.s |
7ba0 | 65 6d 69 2d 73 75 70 65 72 76 69 73 65 64 20 73 65 74 74 69 6e 67 5c 6e 5c 6e 5c 6e 54 68 69 73 | emi-supervised.setting\n\n\nThis |
7bc0 | 20 65 78 61 6d 70 6c 65 20 69 6e 74 72 6f 64 75 63 65 73 20 61 20 73 65 6d 69 20 73 75 70 65 72 | .example.introduces.a.semi.super |
7be0 | 76 69 73 65 64 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 69 6e 20 61 20 32 44 20 | vised.domain.adaptation.in.a.2D. |
7c00 | 73 65 74 74 69 6e 67 2e 5c 6e 49 74 20 65 78 70 6c 69 63 69 74 73 20 74 68 65 20 70 72 6f 62 6c | setting.\nIt.explicits.the.probl |
7c20 | 65 6d 20 6f 66 20 73 65 6d 69 20 73 75 70 65 72 76 69 73 65 64 20 64 6f 6d 61 69 6e 20 61 64 61 | em.of.semi.supervised.domain.ada |
7c40 | 70 74 61 74 69 6f 6e 20 61 6e 64 20 69 6e 74 72 6f 64 75 63 65 73 5c 6e 73 6f 6d 65 20 6f 70 74 | ptation.and.introduces\nsome.opt |
7c60 | 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 61 70 70 72 6f 61 63 68 65 73 20 74 6f 20 73 6f 6c | imal.transport.approaches.to.sol |
7c80 | 76 65 20 69 74 2e 5c 6e 5c 6e 51 75 61 6e 74 69 74 69 65 73 20 73 75 63 68 20 61 73 20 6f 70 74 | ve.it.\n\nQuantities.such.as.opt |
7ca0 | 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 73 2c 20 67 72 65 61 74 65 72 20 63 6f 75 70 6c 69 6e 67 | imal.couplings,.greater.coupling |
7cc0 | 20 63 6f 65 66 66 69 63 69 65 6e 74 73 20 61 6e 64 5c 6e 74 72 61 6e 73 70 6f 72 74 65 64 20 73 | .coefficients.and\ntransported.s |
7ce0 | 61 6d 70 6c 65 73 20 61 72 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 69 6e 20 6f 72 64 65 72 20 | amples.are.represented.in.order. |
7d00 | 74 6f 20 67 69 76 65 20 61 20 76 69 73 75 61 6c 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 5c 6e | to.give.a.visual.understanding\n |
7d20 | 6f 66 20 77 68 61 74 20 74 68 65 20 74 72 61 6e 73 70 6f 72 74 20 6d 65 74 68 6f 64 73 20 61 72 | of.what.the.transport.methods.ar |
7d40 | 65 20 64 6f 69 6e 67 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | e.doing.\n\n".......].....},.... |
7d60 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
7d80 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
7da0 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
7dc0 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
7de0 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
7e00 | 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 | ...."#.Authors:.Remi.Flamary.<re |
7e20 | 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 | mi.flamary@unice.fr>\n#......... |
7e40 | 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e 63 68 61 6d 62 6f 6e | .Stanislas.Chambon.<stan.chambon |
7e60 | 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c | @gmail.com>\n#\n#.License:.MIT.L |
7e80 | 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 | icense\n\nimport.matplotlib.pyla |
7ea0 | 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 | b.as.pl\nimport.ot".......]..... |
7ec0 | 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 | },.....{......."cell_type":."mar |
7ee0 | 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 | kdown",......."metadata":.{},... |
7f00 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 | ...."source":.[........."Generat |
7f20 | 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 | e.data\n-------------\n\n"...... |
7f40 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
7f60 | 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e | ":."code",......."execution_coun |
7f80 | 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 | t":.null,......."metadata":.{... |
7fa0 | 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d | ......"collapsed":.false.......} |
7fc0 | 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f | ,......."outputs":.[],......."so |
7fe0 | 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 61 6d 70 6c 65 73 5f 73 6f 75 72 | urce":.[........."n_samples_sour |
8000 | 63 65 20 3d 20 31 35 30 5c 6e 6e 5f 73 61 6d 70 6c 65 73 5f 74 61 72 67 65 74 20 3d 20 31 35 30 | ce.=.150\nn_samples_target.=.150 |
8020 | 5c 6e 5c 6e 58 73 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 64 61 | \n\nXs,.ys.=.ot.datasets.make_da |
8040 | 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 20 6e 5f 73 61 6d 70 6c 65 73 5f 73 | ta_classif('3gauss',.n_samples_s |
8060 | 6f 75 72 63 65 29 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b | ource)\nXt,.yt.=.ot.datasets.mak |
8080 | 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 32 27 2c 20 6e 5f 73 61 6d 70 | e_data_classif('3gauss2',.n_samp |
80a0 | 6c 65 73 5f 74 61 72 67 65 74 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | les_target)".......].....},..... |
80c0 | 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c | {......."cell_type":."markdown", |
80e0 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f | ......."metadata":.{},......."so |
8100 | 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 54 72 61 6e 73 70 6f 72 74 20 73 6f 75 72 | urce":.[........."Transport.sour |
8120 | 63 65 20 73 61 6d 70 6c 65 73 20 6f 6e 74 6f 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e | ce.samples.onto.target.samples\n |
8140 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
8160 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | ------------\n\n".......].....}, |
8180 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 | .....{......."cell_type":."code" |
81a0 | 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | ,......."execution_count":.null, |
81c0 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f | ......."metadata":.{........."co |
81e0 | 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | llapsed":.false.......},......." |
8200 | 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | outputs":.[],......."source":.[. |
8220 | 20 20 20 20 20 20 20 20 22 23 20 75 6e 73 75 70 65 72 76 69 73 65 64 20 64 6f 6d 61 69 6e 20 61 | ........"#.unsupervised.domain.a |
8240 | 64 61 70 74 61 74 69 6f 6e 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 20 3d 20 6f 74 2e 64 | daptation\not_sinkhorn_un.=.ot.d |
8260 | 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c | a.SinkhornTransport(reg_e=1e-1)\ |
8280 | 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 | not_sinkhorn_un.fit(Xs=Xs,.Xt=Xt |
82a0 | 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 20 3d 20 6f 74 5f 73 69 | )\ntransp_Xs_sinkhorn_un.=.ot_si |
82c0 | 6e 6b 68 6f 72 6e 5f 75 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 5c 6e 23 20 | nkhorn_un.transform(Xs=Xs)\n\n#. |
82e0 | 73 65 6d 69 2d 73 75 70 65 72 76 69 73 65 64 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f | semi-supervised.domain.adaptatio |
8300 | 6e 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b | n\not_sinkhorn_semi.=.ot.da.Sink |
8320 | 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f 74 5f 73 69 | hornTransport(reg_e=1e-1)\not_si |
8340 | 6e 6b 68 6f 72 6e 5f 73 65 6d 69 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 2c 20 79 73 | nkhorn_semi.fit(Xs=Xs,.Xt=Xt,.ys |
8360 | 3d 79 73 2c 20 79 74 3d 79 74 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5f | =ys,.yt=yt)\ntransp_Xs_sinkhorn_ |
8380 | 73 65 6d 69 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 2e 74 72 61 6e 73 66 6f 72 | semi.=.ot_sinkhorn_semi.transfor |
83a0 | 6d 28 58 73 3d 58 73 29 5c 6e 5c 6e 23 20 73 65 6d 69 20 73 75 70 65 72 76 69 73 65 64 20 44 41 | m(Xs=Xs)\n\n#.semi.supervised.DA |
83c0 | 20 75 73 65 73 20 61 76 61 69 6c 61 62 6c 65 20 6c 61 62 61 6c 65 64 20 74 61 72 67 65 74 20 73 | .uses.available.labaled.target.s |
83e0 | 61 6d 70 6c 65 73 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 63 6f 73 74 5c 6e 23 20 6d 61 74 | amples.to.modify.the.cost\n#.mat |
8400 | 72 69 78 20 69 6e 76 6f 6c 76 65 64 20 69 6e 20 74 68 65 20 4f 54 20 70 72 6f 62 6c 65 6d 2e 20 | rix.involved.in.the.OT.problem.. |
8420 | 54 68 65 20 63 6f 73 74 20 6f 66 20 74 72 61 6e 73 70 6f 72 74 69 6e 67 20 61 20 73 6f 75 72 63 | The.cost.of.transporting.a.sourc |
8440 | 65 20 73 61 6d 70 6c 65 5c 6e 23 20 6f 66 20 63 6c 61 73 73 20 41 20 6f 6e 74 6f 20 61 20 74 61 | e.sample\n#.of.class.A.onto.a.ta |
8460 | 72 67 65 74 20 73 61 6d 70 6c 65 20 6f 66 20 63 6c 61 73 73 20 42 20 21 3d 20 41 20 69 73 20 73 | rget.sample.of.class.B.!=.A.is.s |
8480 | 65 74 20 74 6f 20 69 6e 66 69 6e 69 74 65 2c 20 6f 72 20 61 5c 6e 23 20 76 65 72 79 20 6c 61 72 | et.to.infinite,.or.a\n#.very.lar |
84a0 | 67 65 20 76 61 6c 75 65 5c 6e 5c 6e 23 20 6e 6f 74 65 20 74 68 61 74 20 69 6e 20 74 68 65 20 70 | ge.value\n\n#.note.that.in.the.p |
84c0 | 72 65 73 65 6e 74 20 63 61 73 65 20 77 65 20 63 6f 6e 73 69 64 65 72 20 74 68 61 74 20 61 6c 6c | resent.case.we.consider.that.all |
84e0 | 20 74 68 65 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 20 61 72 65 5c 6e 23 20 6c 61 62 65 6c | .the.target.samples.are\n#.label |
8500 | 65 64 2e 20 46 6f 72 20 64 61 69 6c 79 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2c 20 73 6f 6d 65 | ed..For.daily.applications,.some |
8520 | 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 20 6d 69 67 68 74 20 6e 6f 74 20 68 61 76 65 20 6c 61 | .target.sample.might.not.have.la |
8540 | 62 65 6c 73 2c 5c 6e 23 20 69 6e 20 74 68 69 73 20 63 61 73 65 20 74 68 65 20 65 6c 65 6d 65 6e | bels,\n#.in.this.case.the.elemen |
8560 | 74 20 6f 66 20 79 74 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 73 65 20 73 | t.of.yt.corresponding.to.these.s |
8580 | 61 6d 70 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 5c 6e 23 20 66 69 6c 6c 65 64 20 77 69 74 68 20 | amples.should.be\n#.filled.with. |
85a0 | 2d 31 2e 5c 6e 5c 6e 23 20 57 61 72 6e 69 6e 67 3a 20 77 65 20 72 65 63 61 6c 6c 20 74 68 61 74 | -1.\n\n#.Warning:.we.recall.that |
85c0 | 20 2d 31 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 61 73 20 61 20 63 6c 61 73 73 20 6c 61 | .-1.cannot.be.used.as.a.class.la |
85e0 | 62 65 6c 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 | bel".......].....},.....{....... |
8600 | 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 | "cell_type":."markdown",......." |
8620 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | metadata":.{},......."source":.[ |
8640 | 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 31 20 3a 20 70 6c 6f 74 73 20 73 6f 75 72 63 65 20 61 | ........."Fig.1.:.plots.source.a |
8660 | 6e 64 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 20 2b 20 6d 61 74 72 69 78 20 6f 66 20 70 61 | nd.target.samples.+.matrix.of.pa |
8680 | 69 72 77 69 73 65 20 64 69 73 74 61 6e 63 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | irwise.distance\n--------------- |
86a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
86c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 | ----------------------\n\n"..... |
86e0 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
8700 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
8720 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
8740 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
8760 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
8780 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 | ource":.[........."pl.figure(1,. |
87a0 | 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c | figsize=(10,.10))\npl.subplot(2, |
87c0 | 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b | .2,.1)\npl.scatter(Xs[:,.0],.Xs[ |
87e0 | 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 | :,.1],.c=ys,.marker='+',.label=' |
8800 | 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c | Source.samples')\npl.xticks([])\ |
8820 | 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 | npl.yticks([])\npl.legend(loc=0) |
8840 | 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c | \npl.title('Source..samples')\n\ |
8860 | 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 | npl.subplot(2,.2,.2)\npl.scatter |
8880 | 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 | (Xt[:,.0],.Xt[:,.1],.c=yt,.marke |
88a0 | 72 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e | r='o',.label='Target.samples')\n |
88c0 | 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c | pl.xticks([])\npl.yticks([])\npl |
88e0 | 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 61 72 67 65 74 | .legend(loc=0)\npl.title('Target |
8900 | 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 33 | .samples')\n\npl.subplot(2,.2,.3 |
8920 | 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 2e 63 6f 73 74 | )\npl.imshow(ot_sinkhorn_un.cost |
8940 | 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e | _,.interpolation='nearest')\npl. |
8960 | 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 | xticks([])\npl.yticks([])\npl.ti |
8980 | 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 2d 20 75 6e 73 75 70 65 72 76 69 73 65 64 20 | tle('Cost.matrix.-.unsupervised. |
89a0 | 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 34 29 5c 6e 70 6c 2e | DA')\n\npl.subplot(2,.2,.4)\npl. |
89c0 | 69 6d 73 68 6f 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 2e 63 6f 73 74 5f 2c 20 69 | imshow(ot_sinkhorn_semi.cost_,.i |
89e0 | 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 | nterpolation='nearest')\npl.xtic |
8a00 | 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 | ks([])\npl.yticks([])\npl.title( |
8a20 | 27 43 6f 73 74 20 6d 61 74 72 69 78 20 2d 20 73 65 6d 69 73 75 70 65 72 76 69 73 65 64 20 44 41 | 'Cost.matrix.-.semisupervised.DA |
8a40 | 27 29 5c 6e 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 23 20 74 68 65 | ')\n\npl.tight_layout()\n\n#.the |
8a60 | 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 20 69 6e 20 74 68 65 20 73 65 6d 69 2d 73 75 | .optimal.coupling.in.the.semi-su |
8a80 | 70 65 72 76 69 73 65 64 20 44 41 20 63 61 73 65 20 77 69 6c 6c 20 65 78 68 69 62 69 74 20 5c 22 | pervised.DA.case.will.exhibit.\" |
8aa0 | 20 73 68 61 70 65 5c 6e 23 20 73 69 6d 69 6c 61 72 5c 22 20 74 6f 20 74 68 65 20 63 6f 73 74 20 | .shape\n#.similar\".to.the.cost. |
8ac0 | 6d 61 74 72 69 78 2c 20 28 62 6c 6f 63 6b 20 64 69 61 67 6f 6e 61 6c 20 6d 61 74 72 69 78 29 22 | matrix,.(block.diagonal.matrix)" |
8ae0 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
8b00 | 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | l_type":."markdown",......."meta |
8b20 | 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | data":.{},......."source":.[.... |
8b40 | 20 20 20 20 20 22 46 69 67 20 32 20 3a 20 70 6c 6f 74 73 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 | ....."Fig.2.:.plots.optimal.coup |
8b60 | 6c 69 6e 67 73 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 6d 65 74 68 6f 64 73 5c | lings.for.the.different.methods\ |
8b80 | 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | n------------------------------- |
8ba0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a | --------------------------\n\n". |
8bc0 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
8be0 | 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e | _type":."code",......."execution |
8c00 | 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | _count":.null,......."metadata": |
8c20 | 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 | .{........."collapsed":.false... |
8c40 | 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 | ....},......."outputs":.[],..... |
8c60 | 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 | .."source":.[........."pl.figure |
8c80 | 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 38 2c 20 34 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f | (2,.figsize=(8,.4))\n\npl.subplo |
8ca0 | 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 | t(1,.2,.1)\npl.imshow(ot_sinkhor |
8cc0 | 6e 5f 75 6e 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e | n_un.coupling_,.interpolation='n |
8ce0 | 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 | earest')\npl.xticks([])\npl.ytic |
8d00 | 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 | ks([])\npl.title('Optimal.coupli |
8d20 | 6e 67 5c 5c 6e 55 6e 73 75 70 65 72 76 69 73 65 64 20 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 | ng\\nUnsupervised.DA')\n\npl.sub |
8d40 | 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 73 69 6e 6b | plot(1,.2,.2)\npl.imshow(ot_sink |
8d60 | 68 6f 72 6e 5f 73 65 6d 69 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 | horn_semi.coupling_,.interpolati |
8d80 | 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c | on='nearest')\npl.xticks([])\npl |
8da0 | 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 | .yticks([])\npl.title('Optimal.c |
8dc0 | 6f 75 70 6c 69 6e 67 5c 5c 6e 53 65 6d 69 2d 73 75 70 65 72 76 69 73 65 64 20 44 41 27 29 5c 6e | oupling\\nSemi-supervised.DA')\n |
8de0 | 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | \npl.tight_layout()".......].... |
8e00 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 | .},.....{......."cell_type":."ma |
8e20 | 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 | rkdown",......."metadata":.{},.. |
8e40 | 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 33 20 | ....."source":.[........."Fig.3. |
8e60 | 3a 20 70 6c 6f 74 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d | :.plot.transported.samples\n---- |
8e80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e | ----------------------------\n\n |
8ea0 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
8ec0 | 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 | ll_type":."code",......."executi |
8ee0 | 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | on_count":.null,......."metadata |
8f00 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a | ":.{........."collapsed":.false. |
8f20 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 | ......},......."outputs":.[],... |
8f40 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 64 69 73 70 6c | ...."source":.[........."#.displ |
8f60 | 61 79 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 70 6c 2e 66 69 67 75 72 | ay.transported.samples\npl.figur |
8f80 | 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 38 2c 20 34 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 | e(4,.figsize=(8,.4))\npl.subplot |
8fa0 | 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 | (1,.2,.1)\npl.scatter(Xt[:,.0],. |
8fc0 | 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 | Xt[:,.1],.c=yt,.marker='o',\n... |
8fe0 | 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 | ........label='Target.samples',. |
9000 | 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 | alpha=0.5)\npl.scatter(transp_Xs |
9020 | 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 5f 73 69 | _sinkhorn_un[:,.0],.transp_Xs_si |
9040 | 6e 6b 68 6f 72 6e 5f 75 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 | nkhorn_un[:,.1],.c=ys,\n........ |
9060 | 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d | ...marker='+',.label='Transp.sam |
9080 | 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 | ples',.s=30)\npl.title('Transpor |
90a0 | 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 45 6d 64 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c | ted.samples\\nEmdTransport')\npl |
90c0 | 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 | .legend(loc=0)\npl.xticks([])\np |
90e0 | 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c | l.yticks([])\n\npl.subplot(1,.2, |
9100 | 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 | .2)\npl.scatter(Xt[:,.0],.Xt[:,. |
9120 | 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 | 1],.c=yt,.marker='o',\n......... |
9140 | 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d | ..label='Target.samples',.alpha= |
9160 | 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 | 0.5)\npl.scatter(transp_Xs_sinkh |
9180 | 6f 72 6e 5f 73 65 6d 69 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f | orn_semi[:,.0],.transp_Xs_sinkho |
91a0 | 72 6e 5f 73 65 6d 69 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 | rn_semi[:,.1],.c=ys,\n.......... |
91c0 | 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c | .marker='+',.label='Transp.sampl |
91e0 | 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 | es',.s=30)\npl.title('Transporte |
9200 | 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c | d.samples\\nSinkhornTransport')\ |
9220 | 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 5c | npl.xticks([])\npl.yticks([])\n\ |
9240 | 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 | npl.tight_layout()\npl.show()".. |
9260 | 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | .....].....}...],..."metadata":. |
9280 | 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 | {....."kernelspec":.{......."dis |
92a0 | 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c | play_name":."Python.3",......."l |
92c0 | 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 | anguage":."python",......."name" |
92e0 | 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 | :."python3".....},....."language |
9300 | 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 | _info":.{......."codemirror_mode |
9320 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a | ":.{........."name":."ipython",. |
9340 | 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | ........"version":.3.......},... |
9360 | 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 | ...."file_extension":.".py",.... |
9380 | 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a | ..."mimetype":."text/x-python",. |
93a0 | 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e | ......"name":."python",......."n |
93c0 | 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 | bconvert_exporter":."python",... |
93e0 | 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 | ...."pygments_lexer":."ipython3" |
9400 | 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 35 22 0a 20 20 20 20 7d | ,......."version":."3.6.5".....} |
9420 | 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d | ...},..."nbformat":.4,..."nbform |
9440 | 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 2d 60 cb 4c 27 4a df 9c | at_minor":.0.}PK........-`.L'J.. |
9460 | 9d 0d 00 00 9d 0d 00 00 10 00 00 00 70 6c 6f 74 5f 4f 54 5f 31 44 2e 69 70 79 6e 62 7b 0a 20 20 | ............plot_OT_1D.ipynb{... |
9480 | 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | "cells":.[.....{......."cell_typ |
94a0 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
94c0 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
94e0 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
9500 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
9520 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 | ource":.[........."%matplotlib.i |
9540 | 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 | nline".......].....},.....{..... |
9560 | 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 | .."cell_type":."markdown",...... |
9580 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | ."metadata":.{},......."source": |
95a0 | 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 | .[........."\n#.1D.optimal.trans |
95c0 | 70 6f 72 74 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 | port\n\n\nThis.example.illustrat |
95e0 | 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 45 4d 44 20 61 6e 64 20 53 69 | es.the.computation.of.EMD.and.Si |
9600 | 6e 6b 68 6f 72 6e 20 74 72 61 6e 73 70 6f 72 74 20 70 6c 61 6e 73 5c 6e 61 6e 64 20 74 68 65 69 | nkhorn.transport.plans\nand.thei |
9620 | 72 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a | r.visualization.\n\n\n".......]. |
9640 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
9660 | 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a | "code",......."execution_count": |
9680 | 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 | .null,......."metadata":.{...... |
96a0 | 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 | ..."collapsed":.false.......},.. |
96c0 | 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 | ....."outputs":.[],......."sourc |
96e0 | 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c | e":.[........."#.Author:.Remi.Fl |
9700 | 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 | amary.<remi.flamary@unice.fr>\n# |
9720 | 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f | \n#.License:.MIT.License\n\nimpo |
9740 | 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 | rt.numpy.as.np\nimport.matplotli |
9760 | 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 | b.pylab.as.pl\nimport.ot\nimport |
9780 | 20 6f 74 2e 70 6c 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 | .ot.plot\nfrom.ot.datasets.impor |
97a0 | 74 20 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 22 0a 20 20 20 20 20 20 | t.make_1D_gauss.as.gauss"....... |
97c0 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
97e0 | 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | :."markdown",......."metadata":. |
9800 | 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 | {},......."source":.[........."G |
9820 | 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 | enerate.data\n-------------\n\n" |
9840 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
9860 | 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f | l_type":."code",......."executio |
9880 | 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 | n_count":.null,......."metadata" |
98a0 | 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 | :.{........."collapsed":.false.. |
98c0 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 | .....},......."outputs":.[],.... |
98e0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 61 72 61 | ..."source":.[........."#%%.para |
9900 | 6d 65 74 65 72 73 5c 6e 5c 6e 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e | meters\n\nn.=.100..#.nb.bins\n\n |
9920 | 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e | #.bin.positions\nx.=.np.arange(n |
9940 | 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 61 | ,.dtype=np.float64)\n\n#.Gaussia |
9960 | 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d | n.distributions\na.=.gauss(n,.m= |
9980 | 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 62 20 3d | 20,.s=5)..#.m=.mean,.s=.std\nb.= |
99a0 | 20 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 | .gauss(n,.m=60,.s=10)\n\n#.loss. |
99c0 | 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e | matrix\nM.=.ot.dist(x.reshape((n |
99e0 | 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 29 5c 6e 4d 20 2f 3d 20 | ,.1)),.x.reshape((n,.1)))\nM./=. |
9a00 | 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | M.max()".......].....},.....{... |
9a20 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 | ...."cell_type":."markdown",.... |
9a40 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ..."metadata":.{},......."source |
9a60 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 | ":.[........."Plot.distributions |
9a80 | 20 61 6e 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .and.loss.matrix\n-------------- |
9aa0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 | --------------------\n\n"....... |
9ac0 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
9ae0 | 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 | :."code",......."execution_count |
9b00 | 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 | ":.null,......."metadata":.{.... |
9b20 | 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c | ....."collapsed":.false.......}, |
9b40 | 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......."outputs":.[],......."sou |
9b60 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 | rce":.[........."#%%.plot.the.di |
9b80 | 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 | stributions\n\npl.figure(1,.figs |
9ba0 | 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 61 2c 20 27 62 27 | ize=(6.4,.3))\npl.plot(x,.a,.'b' |
9bc0 | 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e | ,.label='Source.distribution')\n |
9be0 | 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 | pl.plot(x,.b,.'r',.label='Target |
9c00 | 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e | .distribution')\npl.legend()\n\n |
9c20 | 23 25 25 20 70 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 73 20 | #%%.plot.distributions.and.loss. |
9c40 | 6d 61 74 72 69 78 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 | matrix\n\npl.figure(2,.figsize=( |
9c60 | 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c | 5,.5))\not.plot.plot1D_mat(a,.b, |
9c80 | 20 4d 2c 20 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 | .M,.'Cost.matrix.M')".......]... |
9ca0 | 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d | ..},.....{......."cell_type":."m |
9cc0 | 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a | arkdown",......."metadata":.{},. |
9ce0 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 | ......"source":.[........."Solve |
9d00 | 20 45 4d 44 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | .EMD\n---------\n\n".......].... |
9d20 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | .},.....{......."cell_type":."co |
9d40 | 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 | de",......."execution_count":.nu |
9d60 | 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ll,......."metadata":.{......... |
9d80 | 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 | "collapsed":.false.......},..... |
9da0 | 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | .."outputs":.[],......."source": |
9dc0 | 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 20 3d 20 6f 74 2e 65 | .[........."#%%.EMD\n\nG0.=.ot.e |
9de0 | 6d 64 28 61 2c 20 62 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 69 67 73 | md(a,.b,.M)\n\npl.figure(3,.figs |
9e00 | 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 | ize=(5,.5))\not.plot.plot1D_mat( |
9e20 | 61 2c 20 62 2c 20 47 30 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 22 0a 20 20 20 20 20 | a,.b,.G0,.'OT.matrix.G0')"...... |
9e40 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
9e60 | 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | ":."markdown",......."metadata": |
9e80 | 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .{},......."source":.[........." |
9ea0 | 53 6f 6c 76 65 20 53 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e | Solve.Sinkhorn\n--------------\n |
9ec0 | 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | \n".......].....},.....{......." |
9ee0 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 | cell_type":."code",......."execu |
9f00 | 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | tion_count":.null,......."metada |
9f20 | 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 | ta":.{........."collapsed":.fals |
9f40 | 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a | e.......},......."outputs":.[],. |
9f60 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 53 | ......"source":.[........."#%%.S |
9f80 | 69 6e 6b 68 6f 72 6e 5c 6e 5c 6e 6c 61 6d 62 64 20 3d 20 31 65 2d 33 5c 6e 47 73 20 3d 20 6f 74 | inkhorn\n\nlambd.=.1e-3\nGs.=.ot |
9fa0 | 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 4d 2c 20 6c 61 6d 62 64 2c 20 76 65 72 62 6f 73 | .sinkhorn(a,.b,.M,.lambd,.verbos |
9fc0 | 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d | e=True)\n\npl.figure(4,.figsize= |
9fe0 | 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 | (5,.5))\not.plot.plot1D_mat(a,.b |
a000 | 2c 20 47 73 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 | ,.Gs,.'OT.matrix.Sinkhorn')\n\np |
a020 | 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 | l.show()".......].....}...],..." |
a040 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b | metadata":.{....."kernelspec":.{ |
a060 | 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 | ......."display_name":."Python.3 |
a080 | 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 | ",......."language":."python",.. |
a0a0 | 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 | ....."name":."python3".....},... |
a0c0 | 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 | .."language_info":.{......."code |
a0e0 | 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 | mirror_mode":.{........."name":. |
a100 | 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a | "ipython",........."version":.3. |
a120 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a | ......},......."file_extension": |
a140 | 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f | .".py",......."mimetype":."text/ |
a160 | 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e | x-python",......."name":."python |
a180 | 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 | ",......."nbconvert_exporter":." |
a1a0 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a | python",......."pygments_lexer": |
a1c0 | 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 | ."ipython3",......."version":."3 |
a1e0 | 2e 36 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 | .6.5".....}...},..."nbformat":.4 |
a200 | 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 | ,..."nbformat_minor":.0.}PK..... |
a220 | 00 00 00 77 6d 7d 4e 6b b3 7a d2 55 26 00 00 55 26 00 00 15 00 00 00 70 6c 6f 74 5f 73 74 6f 63 | ...wm}Nk.z.U&..U&......plot_stoc |
a240 | 68 61 73 74 69 63 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b | hastic.ipynb{..."cells":.[.....{ |
a260 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 | ......."cell_type":."code",..... |
a280 | 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 | .."execution_count":.null,...... |
a2a0 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 | ."metadata":.{........."collapse |
a2c0 | 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 | d":.false.......},......."output |
a2e0 | 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | s":.[],......."source":.[....... |
a300 | 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 | .."%matplotlib.inline".......].. |
a320 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
a340 | 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c | markdown",......."metadata":.{}, |
a360 | 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 | ......."source":.[........."\n#. |
a380 | 53 74 6f 63 68 61 73 74 69 63 20 65 78 61 6d 70 6c 65 73 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 | Stochastic.examples\n\n\nThis.ex |
a3a0 | 61 6d 70 6c 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 68 6f 77 20 68 6f 77 20 74 6f | ample.is.designed.to.show.how.to |
a3c0 | 20 75 73 65 20 74 68 65 20 73 74 6f 63 68 61 74 69 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 5c | .use.the.stochatic.optimization\ |
a3e0 | 6e 61 6c 67 6f 72 69 74 68 6d 73 20 66 6f 72 20 64 65 73 63 72 65 74 65 20 61 6e 64 20 73 65 6d | nalgorithms.for.descrete.and.sem |
a400 | 69 63 6f 6e 74 69 6e 6f 75 73 20 6d 65 61 73 75 72 65 73 20 66 72 6f 6d 20 74 68 65 20 50 4f 54 | icontinous.measures.from.the.POT |
a420 | 20 6c 69 62 72 61 72 79 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | .library.\n\n\n".......].....},. |
a440 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ....{......."cell_type":."code", |
a460 | 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a | ......."execution_count":.null,. |
a480 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
a4a0 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f | lapsed":.false.......},......."o |
a4c0 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | utputs":.[],......."source":.[.. |
a4e0 | 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 4b 69 6c 69 61 6e 20 46 61 74 72 61 73 20 | ......."#.Author:.Kilian.Fatras. |
a500 | 3c 6b 69 6c 69 61 6e 2e 66 61 74 72 61 73 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 | <kilian.fatras@gmail.com>\n#\n#. |
a520 | 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d | License:.MIT.License\n\nimport.m |
a540 | 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6e 75 | atplotlib.pylab.as.pl\nimport.nu |
a560 | 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e | mpy.as.np\nimport.ot\nimport.ot. |
a580 | 70 6c 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 | plot".......].....},.....{...... |
a5a0 | 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 | ."cell_type":."markdown",....... |
a5c0 | 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 | "metadata":.{},......."source":. |
a5e0 | 5b 0a 20 20 20 20 20 20 20 20 22 43 4f 4d 50 55 54 45 20 54 52 41 4e 53 50 4f 52 54 41 54 49 4f | [........."COMPUTE.TRANSPORTATIO |
a600 | 4e 20 4d 41 54 52 49 58 20 46 4f 52 20 53 45 4d 49 2d 44 55 41 4c 20 50 52 4f 42 4c 45 4d 5c 6e | N.MATRIX.FOR.SEMI-DUAL.PROBLEM\n |
a620 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
a640 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
a660 | 23 23 23 23 23 23 23 23 23 23 23 23 5c 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ############\n################## |
a680 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
a6a0 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 5c 6e 20 44 49 53 | ##########################\n.DIS |
a6c0 | 43 52 45 54 45 20 43 41 53 45 3a 5c 6e 5c 6e 20 53 61 6d 70 6c 65 20 74 77 6f 20 64 69 73 63 72 | CRETE.CASE:\n\n.Sample.two.discr |
a6e0 | 65 74 65 20 6d 65 61 73 75 72 65 73 20 66 6f 72 20 74 68 65 20 64 69 73 63 72 65 74 65 20 63 61 | ete.measures.for.the.discrete.ca |
a700 | 73 65 5c 6e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | se\n.--------------------------- |
a720 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 20 44 65 66 69 6e 65 20 32 20 | ------------------\n\n.Define.2. |
a740 | 64 69 73 63 72 65 74 65 20 6d 65 61 73 75 72 65 73 20 61 20 61 6e 64 20 62 2c 20 74 68 65 20 70 | discrete.measures.a.and.b,.the.p |
a760 | 6f 69 6e 74 73 20 77 68 65 72 65 20 61 72 65 20 64 65 66 69 6e 65 64 20 74 68 65 20 73 6f 75 72 | oints.where.are.defined.the.sour |
a780 | 63 65 5c 6e 20 61 6e 64 20 74 68 65 20 74 61 72 67 65 74 20 6d 65 61 73 75 72 65 73 20 61 6e 64 | ce\n.and.the.target.measures.and |
a7a0 | 20 66 69 6e 61 6c 6c 79 20 74 68 65 20 63 6f 73 74 20 6d 61 74 72 69 78 20 63 2e 5c 6e 5c 6e 22 | .finally.the.cost.matrix.c.\n\n" |
a7c0 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
a7e0 | 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f | l_type":."code",......."executio |
a800 | 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 | n_count":.null,......."metadata" |
a820 | 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 | :.{........."collapsed":.false.. |
a840 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 | .....},......."outputs":.[],.... |
a860 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 72 63 65 | ..."source":.[........."n_source |
a880 | 20 3d 20 37 5c 6e 6e 5f 74 61 72 67 65 74 20 3d 20 34 5c 6e 72 65 67 20 3d 20 31 5c 6e 6e 75 6d | .=.7\nn_target.=.4\nreg.=.1\nnum |
a8a0 | 49 74 65 72 6d 61 78 20 3d 20 31 30 30 30 5c 6e 5c 6e 61 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 | Itermax.=.1000\n\na.=.ot.utils.u |
a8c0 | 6e 69 66 28 6e 5f 73 6f 75 72 63 65 29 5c 6e 62 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 6e 69 66 | nif(n_source)\nb.=.ot.utils.unif |
a8e0 | 28 6e 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 72 6e 67 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 | (n_target)\n\nrng.=.np.random.Ra |
a900 | 6e 64 6f 6d 53 74 61 74 65 28 30 29 5c 6e 58 5f 73 6f 75 72 63 65 20 3d 20 72 6e 67 2e 72 61 6e | ndomState(0)\nX_source.=.rng.ran |
a920 | 64 6e 28 6e 5f 73 6f 75 72 63 65 2c 20 32 29 5c 6e 59 5f 74 61 72 67 65 74 20 3d 20 72 6e 67 2e | dn(n_source,.2)\nY_target.=.rng. |
a940 | 72 61 6e 64 6e 28 6e 5f 74 61 72 67 65 74 2c 20 32 29 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 | randn(n_target,.2)\nM.=.ot.dist( |
a960 | 58 5f 73 6f 75 72 63 65 2c 20 59 5f 74 61 72 67 65 74 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | X_source,.Y_target)".......].... |
a980 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 | .},.....{......."cell_type":."ma |
a9a0 | 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 | rkdown",......."metadata":.{},.. |
a9c0 | 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 61 6c 6c 20 74 | ....."source":.[........."Call.t |
a9e0 | 68 65 20 5c 22 53 41 47 5c 22 20 6d 65 74 68 6f 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 74 72 | he.\"SAG\".method.to.find.the.tr |
aa00 | 61 6e 73 70 6f 72 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 69 6e 20 74 68 65 20 64 69 73 63 72 | ansportation.matrix.in.the.discr |
aa20 | 65 74 65 20 63 61 73 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ete.case\n---------------------- |
aa40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 44 65 66 69 6e | -----------------------\n\nDefin |
aa60 | 65 20 74 68 65 20 6d 65 74 68 6f 64 20 5c 22 53 41 47 5c 22 2c 20 63 61 6c 6c 20 6f 74 2e 73 6f | e.the.method.\"SAG\",.call.ot.so |
aa80 | 6c 76 65 5f 73 65 6d 69 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 69 63 20 61 6e 64 20 70 6c 6f 74 20 | lve_semi_dual_entropic.and.plot. |
aaa0 | 74 68 65 5c 6e 72 65 73 75 6c 74 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | the\nresults.\n\n".......].....} |
aac0 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 | ,.....{......."cell_type":."code |
aae0 | 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c | ",......."execution_count":.null |
ab00 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 | ,......."metadata":.{........."c |
ab20 | 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 | ollapsed":.false.......},....... |
ab40 | 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | "outputs":.[],......."source":.[ |
ab60 | 0a 20 20 20 20 20 20 20 20 22 6d 65 74 68 6f 64 20 3d 20 5c 22 53 41 47 5c 22 5c 6e 73 61 67 5f | ........."method.=.\"SAG\"\nsag_ |
ab80 | 70 69 20 3d 20 6f 74 2e 73 74 6f 63 68 61 73 74 69 63 2e 73 6f 6c 76 65 5f 73 65 6d 69 5f 64 75 | pi.=.ot.stochastic.solve_semi_du |
aba0 | 61 6c 5f 65 6e 74 72 6f 70 69 63 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 2c 20 6d 65 74 68 6f 64 | al_entropic(a,.b,.M,.reg,.method |
abc0 | 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,\n............................. |
abe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 49 74 65 72 6d 61 78 29 5c 6e | ...................numItermax)\n |
ac00 | 70 72 69 6e 74 28 73 61 67 5f 70 69 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | print(sag_pi)".......].....},... |
ac20 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
ac40 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
ac60 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 45 4d 49 43 4f 4e 54 49 4e 4f 55 | source":.[........."SEMICONTINOU |
ac80 | 53 20 43 41 53 45 3a 5c 6e 5c 6e 53 61 6d 70 6c 65 20 6f 6e 65 20 67 65 6e 65 72 61 6c 20 6d 65 | S.CASE:\n\nSample.one.general.me |
aca0 | 61 73 75 72 65 20 61 2c 20 6f 6e 65 20 64 69 73 63 72 65 74 65 20 6d 65 61 73 75 72 65 73 20 62 | asure.a,.one.discrete.measures.b |
acc0 | 20 66 6f 72 20 74 68 65 20 73 65 6d 69 63 6f 6e 74 69 6e 6f 75 73 5c 6e 63 61 73 65 5c 6e 2d 2d | .for.the.semicontinous\ncase\n-- |
ace0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
ad00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 44 65 66 69 6e 65 20 6f 6e 65 20 67 65 6e 65 72 61 | -----------\n\nDefine.one.genera |
ad20 | 6c 20 6d 65 61 73 75 72 65 20 61 2c 20 6f 6e 65 20 64 69 73 63 72 65 74 65 20 6d 65 61 73 75 72 | l.measure.a,.one.discrete.measur |
ad40 | 65 73 20 62 2c 20 74 68 65 20 70 6f 69 6e 74 73 20 77 68 65 72 65 5c 6e 61 72 65 20 64 65 66 69 | es.b,.the.points.where\nare.defi |
ad60 | 6e 65 64 20 74 68 65 20 73 6f 75 72 63 65 20 61 6e 64 20 74 68 65 20 74 61 72 67 65 74 20 6d 65 | ned.the.source.and.the.target.me |
ad80 | 61 73 75 72 65 73 20 61 6e 64 20 66 69 6e 61 6c 6c 79 20 74 68 65 20 63 6f 73 74 20 6d 61 74 72 | asures.and.finally.the.cost.matr |
ada0 | 69 78 20 63 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | ix.c.\n\n".......].....},.....{. |
adc0 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 | ......"cell_type":."code",...... |
ade0 | 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 | ."execution_count":.null,....... |
ae00 | 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 | "metadata":.{........."collapsed |
ae20 | 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 | ":.false.......},......."outputs |
ae40 | 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 | ":.[],......."source":.[........ |
ae60 | 20 22 6e 5f 73 6f 75 72 63 65 20 3d 20 37 5c 6e 6e 5f 74 61 72 67 65 74 20 3d 20 34 5c 6e 72 65 | ."n_source.=.7\nn_target.=.4\nre |
ae80 | 67 20 3d 20 31 5c 6e 6e 75 6d 49 74 65 72 6d 61 78 20 3d 20 31 30 30 30 5c 6e 6c 6f 67 20 3d 20 | g.=.1\nnumItermax.=.1000\nlog.=. |
aea0 | 54 72 75 65 5c 6e 5c 6e 61 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 6e 69 66 28 6e 5f 73 6f 75 72 | True\n\na.=.ot.utils.unif(n_sour |
aec0 | 63 65 29 5c 6e 62 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 6e 69 66 28 6e 5f 74 61 72 67 65 74 29 | ce)\nb.=.ot.utils.unif(n_target) |
aee0 | 5c 6e 5c 6e 72 6e 67 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 65 28 | \n\nrng.=.np.random.RandomState( |
af00 | 30 29 5c 6e 58 5f 73 6f 75 72 63 65 20 3d 20 72 6e 67 2e 72 61 6e 64 6e 28 6e 5f 73 6f 75 72 63 | 0)\nX_source.=.rng.randn(n_sourc |
af20 | 65 2c 20 32 29 5c 6e 59 5f 74 61 72 67 65 74 20 3d 20 72 6e 67 2e 72 61 6e 64 6e 28 6e 5f 74 61 | e,.2)\nY_target.=.rng.randn(n_ta |
af40 | 72 67 65 74 2c 20 32 29 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 58 5f 73 6f 75 72 63 65 2c 20 | rget,.2)\nM.=.ot.dist(X_source,. |
af60 | 59 5f 74 61 72 67 65 74 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | Y_target)".......].....},.....{. |
af80 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 | ......"cell_type":."markdown",.. |
afa0 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 | ....."metadata":.{},......."sour |
afc0 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 61 6c 6c 20 74 68 65 20 5c 22 41 53 47 44 5c | ce":.[........."Call.the.\"ASGD\ |
afe0 | 22 20 6d 65 74 68 6f 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 74 72 61 6e 73 70 6f 72 74 61 74 | ".method.to.find.the.transportat |
b000 | 69 6f 6e 20 6d 61 74 72 69 78 20 69 6e 20 74 68 65 20 73 65 6d 69 63 6f 6e 74 69 6e 6f 75 73 5c | ion.matrix.in.the.semicontinous\ |
b020 | 6e 63 61 73 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ncase\n------------------------- |
b040 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 44 65 66 69 6e 65 20 74 | --------------------\n\nDefine.t |
b060 | 68 65 20 6d 65 74 68 6f 64 20 5c 22 41 53 47 44 5c 22 2c 20 63 61 6c 6c 20 6f 74 2e 73 6f 6c 76 | he.method.\"ASGD\",.call.ot.solv |
b080 | 65 5f 73 65 6d 69 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 69 63 20 61 6e 64 20 70 6c 6f 74 20 74 68 | e_semi_dual_entropic.and.plot.th |
b0a0 | 65 5c 6e 72 65 73 75 6c 74 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | e\nresults.\n\n".......].....},. |
b0c0 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ....{......."cell_type":."code", |
b0e0 | 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a | ......."execution_count":.null,. |
b100 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
b120 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f | lapsed":.false.......},......."o |
b140 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | utputs":.[],......."source":.[.. |
b160 | 20 20 20 20 20 20 20 22 6d 65 74 68 6f 64 20 3d 20 5c 22 41 53 47 44 5c 22 5c 6e 61 73 67 64 5f | ......."method.=.\"ASGD\"\nasgd_ |
b180 | 70 69 2c 20 6c 6f 67 5f 61 73 67 64 20 3d 20 6f 74 2e 73 74 6f 63 68 61 73 74 69 63 2e 73 6f 6c | pi,.log_asgd.=.ot.stochastic.sol |
b1a0 | 76 65 5f 73 65 6d 69 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 69 63 28 61 2c 20 62 2c 20 4d 2c 20 72 | ve_semi_dual_entropic(a,.b,.M,.r |
b1c0 | 65 67 2c 20 6d 65 74 68 6f 64 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eg,.method,\n................... |
b1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
b200 | 20 20 20 20 20 20 20 20 6e 75 6d 49 74 65 72 6d 61 78 2c 20 6c 6f 67 3d 6c 6f 67 29 5c 6e 70 72 | ........numItermax,.log=log)\npr |
b220 | 69 6e 74 28 6c 6f 67 5f 61 73 67 64 5b 27 61 6c 70 68 61 27 5d 2c 20 6c 6f 67 5f 61 73 67 64 5b | int(log_asgd['alpha'],.log_asgd[ |
b240 | 27 62 65 74 61 27 5d 29 5c 6e 70 72 69 6e 74 28 61 73 67 64 5f 70 69 29 22 0a 20 20 20 20 20 20 | 'beta'])\nprint(asgd_pi)"....... |
b260 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
b280 | 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | :."markdown",......."metadata":. |
b2a0 | 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 | {},......."source":.[........."C |
b2c0 | 6f 6d 70 61 72 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 77 69 74 68 20 74 68 65 20 53 69 6e 6b | ompare.the.results.with.the.Sink |
b2e0 | 68 6f 72 6e 20 61 6c 67 6f 72 69 74 68 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | horn.algorithm\n---------------- |
b300 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c | -----------------------------\n\ |
b320 | 6e 43 61 6c 6c 20 74 68 65 20 53 69 6e 6b 68 6f 72 6e 20 61 6c 67 6f 72 69 74 68 6d 20 66 72 6f | nCall.the.Sinkhorn.algorithm.fro |
b340 | 6d 20 50 4f 54 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | m.POT\n\n".......].....},.....{. |
b360 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 | ......"cell_type":."code",...... |
b380 | 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 | ."execution_count":.null,....... |
b3a0 | 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 | "metadata":.{........."collapsed |
b3c0 | 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 | ":.false.......},......."outputs |
b3e0 | 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 | ":.[],......."source":.[........ |
b400 | 20 22 73 69 6e 6b 68 6f 72 6e 5f 70 69 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 | ."sinkhorn_pi.=.ot.sinkhorn(a,.b |
b420 | 2c 20 4d 2c 20 72 65 67 29 5c 6e 70 72 69 6e 74 28 73 69 6e 6b 68 6f 72 6e 5f 70 69 29 22 0a 20 | ,.M,.reg)\nprint(sinkhorn_pi)".. |
b440 | 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f | .....].....},.....{......."cell_ |
b460 | 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | type":."markdown",......."metada |
b480 | 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 | ta":.{},......."source":.[...... |
b4a0 | 20 20 20 22 50 4c 4f 54 20 54 52 41 4e 53 50 4f 52 54 41 54 49 4f 4e 20 4d 41 54 52 49 58 5c 6e | ..."PLOT.TRANSPORTATION.MATRIX\n |
b4c0 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
b4e0 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
b500 | 23 23 23 23 23 23 23 23 23 23 23 23 23 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | #############\n\n".......].....} |
b520 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
b540 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
b560 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 53 41 47 | ..."source":.[........."Plot.SAG |
b580 | 20 72 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a | .results\n----------------\n\n". |
b5a0 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
b5c0 | 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e | _type":."code",......."execution |
b5e0 | 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | _count":.null,......."metadata": |
b600 | 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 | .{........."collapsed":.false... |
b620 | 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 | ....},......."outputs":.[],..... |
b640 | 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 | .."source":.[........."pl.figure |
b660 | 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f | (4,.figsize=(5,.5))\not.plot.plo |
b680 | 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 73 61 67 5f 70 69 2c 20 27 73 65 6d 69 2d 64 75 61 6c | t1D_mat(a,.b,.sag_pi,.'semi-dual |
b6a0 | 20 3a 20 4f 54 20 6d 61 74 72 69 78 20 53 41 47 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 | .:.OT.matrix.SAG')\npl.show()".. |
b6c0 | 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f | .....].....},.....{......."cell_ |
b6e0 | 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | type":."markdown",......."metada |
b700 | 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 | ta":.{},......."source":.[...... |
b720 | 20 20 20 22 50 6c 6f 74 20 41 53 47 44 20 72 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d | ..."Plot.ASGD.results\n--------- |
b740 | 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | --------\n\n".......].....},.... |
b760 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
b780 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
b7a0 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
b7c0 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
b7e0 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
b800 | 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 | ...."pl.figure(4,.figsize=(5,.5) |
b820 | 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 61 73 67 64 | )\not.plot.plot1D_mat(a,.b,.asgd |
b840 | 5f 70 69 2c 20 27 73 65 6d 69 2d 64 75 61 6c 20 3a 20 4f 54 20 6d 61 74 72 69 78 20 41 53 47 44 | _pi,.'semi-dual.:.OT.matrix.ASGD |
b860 | 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | ')\npl.show()".......].....},... |
b880 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
b8a0 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
b8c0 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 53 69 6e 6b 68 6f 72 | source":.[........."Plot.Sinkhor |
b8e0 | 6e 20 72 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | n.results\n--------------------- |
b900 | 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 | \n\n".......].....},.....{...... |
b920 | 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 | ."cell_type":."code",......."exe |
b940 | 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | cution_count":.null,......."meta |
b960 | 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 | data":.{........."collapsed":.fa |
b980 | 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d | lse.......},......."outputs":.[] |
b9a0 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e | ,......."source":.[........."pl. |
b9c0 | 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c | figure(4,.figsize=(5,.5))\not.pl |
b9e0 | 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 73 69 6e 6b 68 6f 72 6e 5f 70 69 2c | ot.plot1D_mat(a,.b,.sinkhorn_pi, |
ba00 | 20 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 | .'OT.matrix.Sinkhorn')\npl.show( |
ba20 | 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | )".......].....},.....{......."c |
ba40 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 | ell_type":."markdown",......."me |
ba60 | 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | tadata":.{},......."source":.[.. |
ba80 | 20 20 20 20 20 20 20 22 43 4f 4d 50 55 54 45 20 54 52 41 4e 53 50 4f 52 54 41 54 49 4f 4e 20 4d | ......."COMPUTE.TRANSPORTATION.M |
baa0 | 41 54 52 49 58 20 46 4f 52 20 44 55 41 4c 20 50 52 4f 42 4c 45 4d 5c 6e 23 23 23 23 23 23 23 23 | ATRIX.FOR.DUAL.PROBLEM\n######## |
bac0 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
bae0 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
bb00 | 23 23 23 23 5c 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ####\n########################## |
bb20 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 | ################################ |
bb40 | 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 5c 6e 20 53 45 4d 49 43 4f 4e 54 49 4e 4f | ##################\n.SEMICONTINO |
bb60 | 55 53 20 43 41 53 45 3a 5c 6e 5c 6e 20 53 61 6d 70 6c 65 20 6f 6e 65 20 67 65 6e 65 72 61 6c 20 | US.CASE:\n\n.Sample.one.general. |
bb80 | 6d 65 61 73 75 72 65 20 61 2c 20 6f 6e 65 20 64 69 73 63 72 65 74 65 20 6d 65 61 73 75 72 65 73 | measure.a,.one.discrete.measures |
bba0 | 20 62 20 66 6f 72 20 74 68 65 20 73 65 6d 69 63 6f 6e 74 69 6e 6f 75 73 5c 6e 20 63 61 73 65 5c | .b.for.the.semicontinous\n.case\ |
bbc0 | 6e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | n.------------------------------ |
bbe0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 20 44 65 66 69 6e 65 20 6f 6e 65 20 67 | ---------------\n\n.Define.one.g |
bc00 | 65 6e 65 72 61 6c 20 6d 65 61 73 75 72 65 20 61 2c 20 6f 6e 65 20 64 69 73 63 72 65 74 65 20 6d | eneral.measure.a,.one.discrete.m |
bc20 | 65 61 73 75 72 65 73 20 62 2c 20 74 68 65 20 70 6f 69 6e 74 73 20 77 68 65 72 65 5c 6e 20 61 72 | easures.b,.the.points.where\n.ar |
bc40 | 65 20 64 65 66 69 6e 65 64 20 74 68 65 20 73 6f 75 72 63 65 20 61 6e 64 20 74 68 65 20 74 61 72 | e.defined.the.source.and.the.tar |
bc60 | 67 65 74 20 6d 65 61 73 75 72 65 73 20 61 6e 64 20 66 69 6e 61 6c 6c 79 20 74 68 65 20 63 6f 73 | get.measures.and.finally.the.cos |
bc80 | 74 20 6d 61 74 72 69 78 20 63 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | t.matrix.c.\n\n".......].....},. |
bca0 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ....{......."cell_type":."code", |
bcc0 | 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a | ......."execution_count":.null,. |
bce0 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
bd00 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f | lapsed":.false.......},......."o |
bd20 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | utputs":.[],......."source":.[.. |
bd40 | 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 72 63 65 20 3d 20 37 5c 6e 6e 5f 74 61 72 67 65 74 20 3d | ......."n_source.=.7\nn_target.= |
bd60 | 20 34 5c 6e 72 65 67 20 3d 20 31 5c 6e 6e 75 6d 49 74 65 72 6d 61 78 20 3d 20 31 30 30 30 30 30 | .4\nreg.=.1\nnumItermax.=.100000 |
bd80 | 5c 6e 6c 72 20 3d 20 30 2e 31 5c 6e 62 61 74 63 68 5f 73 69 7a 65 20 3d 20 33 5c 6e 6c 6f 67 20 | \nlr.=.0.1\nbatch_size.=.3\nlog. |
bda0 | 3d 20 54 72 75 65 5c 6e 5c 6e 61 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 6e 69 66 28 6e 5f 73 6f | =.True\n\na.=.ot.utils.unif(n_so |
bdc0 | 75 72 63 65 29 5c 6e 62 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 6e 69 66 28 6e 5f 74 61 72 67 65 | urce)\nb.=.ot.utils.unif(n_targe |
bde0 | 74 29 5c 6e 5c 6e 72 6e 67 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 | t)\n\nrng.=.np.random.RandomStat |
be00 | 65 28 30 29 5c 6e 58 5f 73 6f 75 72 63 65 20 3d 20 72 6e 67 2e 72 61 6e 64 6e 28 6e 5f 73 6f 75 | e(0)\nX_source.=.rng.randn(n_sou |
be20 | 72 63 65 2c 20 32 29 5c 6e 59 5f 74 61 72 67 65 74 20 3d 20 72 6e 67 2e 72 61 6e 64 6e 28 6e 5f | rce,.2)\nY_target.=.rng.randn(n_ |
be40 | 74 61 72 67 65 74 2c 20 32 29 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 58 5f 73 6f 75 72 63 65 | target,.2)\nM.=.ot.dist(X_source |
be60 | 2c 20 59 5f 74 61 72 67 65 74 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | ,.Y_target)".......].....},..... |
be80 | 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c | {......."cell_type":."markdown", |
bea0 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f | ......."metadata":.{},......."so |
bec0 | 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 61 6c 6c 20 74 68 65 20 5c 22 53 47 44 | urce":.[........."Call.the.\"SGD |
bee0 | 5c 22 20 64 75 61 6c 20 6d 65 74 68 6f 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 74 72 61 6e 73 | \".dual.method.to.find.the.trans |
bf00 | 70 6f 72 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 69 6e 20 74 68 65 5c 6e 73 65 6d 69 63 6f 6e | portation.matrix.in.the\nsemicon |
bf20 | 74 69 6e 6f 75 73 20 63 61 73 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | tinous.case\n------------------- |
bf40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 43 61 | --------------------------\n\nCa |
bf60 | 6c 6c 20 6f 74 2e 73 6f 6c 76 65 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 69 63 20 61 6e 64 20 70 6c | ll.ot.solve_dual_entropic.and.pl |
bf80 | 6f 74 20 74 68 65 20 72 65 73 75 6c 74 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | ot.the.results.\n\n".......].... |
bfa0 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | .},.....{......."cell_type":."co |
bfc0 | 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 | de",......."execution_count":.nu |
bfe0 | 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ll,......."metadata":.{......... |
c000 | 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 | "collapsed":.false.......},..... |
c020 | 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | .."outputs":.[],......."source": |
c040 | 20 5b 0a 20 20 20 20 20 20 20 20 22 73 67 64 5f 64 75 61 6c 5f 70 69 2c 20 6c 6f 67 5f 73 67 64 | .[........."sgd_dual_pi,.log_sgd |
c060 | 20 3d 20 6f 74 2e 73 74 6f 63 68 61 73 74 69 63 2e 73 6f 6c 76 65 5f 64 75 61 6c 5f 65 6e 74 72 | .=.ot.stochastic.solve_dual_entr |
c080 | 6f 70 69 63 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 | opic(a,.b,.M,.reg,\n............ |
c0a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
c0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 74 63 68 5f 73 69 7a 65 2c 20 6e 75 6d 49 74 65 72 | .............batch_size,.numIter |
c0e0 | 6d 61 78 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | max,\n.......................... |
c100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c | ...............................l |
c120 | 72 2c 20 6c 6f 67 3d 6c 6f 67 29 5c 6e 70 72 69 6e 74 28 6c 6f 67 5f 73 67 64 5b 27 61 6c 70 68 | r,.log=log)\nprint(log_sgd['alph |
c140 | 61 27 5d 2c 20 6c 6f 67 5f 73 67 64 5b 27 62 65 74 61 27 5d 29 5c 6e 70 72 69 6e 74 28 73 67 64 | a'],.log_sgd['beta'])\nprint(sgd |
c160 | 5f 64 75 61 6c 5f 70 69 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | _dual_pi)".......].....},.....{. |
c180 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 | ......"cell_type":."markdown",.. |
c1a0 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 | ....."metadata":.{},......."sour |
c1c0 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 61 72 65 20 74 68 65 20 72 65 73 75 | ce":.[........."Compare.the.resu |
c1e0 | 6c 74 73 20 77 69 74 68 20 74 68 65 20 53 69 6e 6b 68 6f 72 6e 20 61 6c 67 6f 72 69 74 68 6d 5c | lts.with.the.Sinkhorn.algorithm\ |
c200 | 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | n------------------------------- |
c220 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 43 61 6c 6c 20 74 68 65 20 53 69 6e 6b 68 | --------------\n\nCall.the.Sinkh |
c240 | 6f 72 6e 20 61 6c 67 6f 72 69 74 68 6d 20 66 72 6f 6d 20 50 4f 54 5c 6e 5c 6e 22 0a 20 20 20 20 | orn.algorithm.from.POT\n\n"..... |
c260 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
c280 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
c2a0 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
c2c0 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
c2e0 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
c300 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 73 69 6e 6b 68 6f 72 6e 5f 70 69 20 3d | ource":.[........."sinkhorn_pi.= |
c320 | 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 29 5c 6e 70 72 69 6e | .ot.sinkhorn(a,.b,.M,.reg)\nprin |
c340 | 74 28 73 69 6e 6b 68 6f 72 6e 5f 70 69 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 | t(sinkhorn_pi)".......].....},.. |
c360 | 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 | ...{......."cell_type":."markdow |
c380 | 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 | n",......."metadata":.{},....... |
c3a0 | 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 20 53 47 44 20 72 | "source":.[........."Plot..SGD.r |
c3c0 | 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 | esults\n-----------------\n\n".. |
c3e0 | 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f | .....].....},.....{......."cell_ |
c400 | 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f | type":."code",......."execution_ |
c420 | 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | count":.null,......."metadata":. |
c440 | 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 | {........."collapsed":.false.... |
c460 | 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 | ...},......."outputs":.[],...... |
c480 | 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 | ."source":.[........."pl.figure( |
c4a0 | 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 | 4,.figsize=(5,.5))\not.plot.plot |
c4c0 | 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 73 67 64 5f 64 75 61 6c 5f 70 69 2c 20 27 64 75 61 6c 20 | 1D_mat(a,.b,.sgd_dual_pi,.'dual. |
c4e0 | 3a 20 4f 54 20 6d 61 74 72 69 78 20 53 47 44 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 | :.OT.matrix.SGD')\npl.show()"... |
c500 | 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 | ....].....},.....{......."cell_t |
c520 | 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ype":."markdown",......."metadat |
c540 | 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | a":.{},......."source":.[....... |
c560 | 20 20 22 50 6c 6f 74 20 53 69 6e 6b 68 6f 72 6e 20 72 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d | .."Plot.Sinkhorn.results\n------ |
c580 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | ---------------\n\n".......].... |
c5a0 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | .},.....{......."cell_type":."co |
c5c0 | 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 | de",......."execution_count":.nu |
c5e0 | 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ll,......."metadata":.{......... |
c600 | 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 | "collapsed":.false.......},..... |
c620 | 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | .."outputs":.[],......."source": |
c640 | 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 | .[........."pl.figure(4,.figsize |
c660 | 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 | =(5,.5))\not.plot.plot1D_mat(a,. |
c680 | 62 2c 20 73 69 6e 6b 68 6f 72 6e 5f 70 69 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 | b,.sinkhorn_pi,.'OT.matrix.Sinkh |
c6a0 | 6f 72 6e 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a | orn')\npl.show()".......].....}. |
c6c0 | 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c | ..],..."metadata":.{....."kernel |
c6e0 | 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 | spec":.{......."display_name":." |
c700 | 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 | Python.3",......."language":."py |
c720 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 | thon",......."name":."python3".. |
c740 | 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 | ...},....."language_info":.{.... |
c760 | 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ..."codemirror_mode":.{......... |
c780 | 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 | "name":."ipython",........."vers |
c7a0 | 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 | ion":.3.......},......."file_ext |
c7c0 | 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 | ension":.".py",......."mimetype" |
c7e0 | 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a | :."text/x-python",......."name": |
c800 | 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f | ."python",......."nbconvert_expo |
c820 | 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 | rter":."python",......."pygments |
c840 | 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 | _lexer":."ipython3",......."vers |
c860 | 69 6f 6e 22 3a 20 22 33 2e 36 2e 37 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f | ion":."3.6.7".....}...},..."nbfo |
c880 | 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a | rmat":.4,..."nbformat_minor":.0. |
c8a0 | 7d 50 4b 03 04 14 00 00 00 00 00 ec 45 43 4d 80 1a 80 7c 9f 15 00 00 9f 15 00 00 18 00 00 00 70 | }PK.........ECM...|............p |
c8c0 | 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c | lot_barycenter_1D.ipynb{..."cell |
c8e0 | 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | s":.[.....{......."cell_type":." |
c900 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
c920 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
c940 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
c960 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
c980 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 | ":.[........."%matplotlib.inline |
c9a0 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
c9c0 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
c9e0 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
ca00 | 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 | ......"\n#.1D.Wasserstein.baryce |
ca20 | 6e 74 65 72 20 64 65 6d 6f 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 | nter.demo\n\n\nThis.example.illu |
ca40 | 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 72 65 67 75 6c | strates.the.computation.of.regul |
ca60 | 61 72 69 7a 65 64 20 57 61 73 73 65 72 73 79 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 5c 6e 61 | arized.Wassersyein.Barycenter\na |
ca80 | 73 20 70 72 6f 70 6f 73 65 64 20 69 6e 20 5b 33 5d 2e 5c 6e 5c 6e 5c 6e 5b 33 5d 20 42 65 6e 61 | s.proposed.in.[3].\n\n\n[3].Bena |
caa0 | 6d 6f 75 2c 20 4a 2e 20 44 2e 2c 20 43 61 72 6c 69 65 72 2c 20 47 2e 2c 20 43 75 74 75 72 69 2c | mou,.J..D.,.Carlier,.G.,.Cuturi, |
cac0 | 20 4d 2e 2c 20 4e 65 6e 6e 61 2c 20 4c 2e 2c 20 26 20 50 65 79 72 5c 75 30 30 65 39 2c 20 47 2e | .M.,.Nenna,.L.,.&.Peyr\u00e9,.G. |
cae0 | 20 28 32 30 31 35 29 2e 5c 6e 49 74 65 72 61 74 69 76 65 20 42 72 65 67 6d 61 6e 20 70 72 6f 6a | .(2015).\nIterative.Bregman.proj |
cb00 | 65 63 74 69 6f 6e 73 20 66 6f 72 20 72 65 67 75 6c 61 72 69 7a 65 64 20 74 72 61 6e 73 70 6f 72 | ections.for.regularized.transpor |
cb20 | 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 73 5c 6e 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e | tation.problems\nSIAM.Journal.on |
cb40 | 20 53 63 69 65 6e 74 69 66 69 63 20 43 6f 6d 70 75 74 69 6e 67 2c 20 33 37 28 32 29 2c 20 41 31 | .Scientific.Computing,.37(2),.A1 |
cb60 | 31 31 31 2d 41 31 31 33 38 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | 111-A1138.\n\n\n".......].....}, |
cb80 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 | .....{......."cell_type":."code" |
cba0 | 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | ,......."execution_count":.null, |
cbc0 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f | ......."metadata":.{........."co |
cbe0 | 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | llapsed":.false.......},......." |
cc00 | 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | outputs":.[],......."source":.[. |
cc20 | 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 | ........"#.Author:.Remi.Flamary. |
cc40 | 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 | <remi.flamary@unice.fr>\n#\n#.Li |
cc60 | 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d | cense:.MIT.License\n\nimport.num |
cc80 | 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 | py.as.np\nimport.matplotlib.pyla |
cca0 | 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 23 20 6e 65 63 65 73 73 61 72 79 20 | b.as.pl\nimport.ot\n#.necessary. |
ccc0 | 66 6f 72 20 33 64 20 70 6c 6f 74 20 65 76 65 6e 20 69 66 20 6e 6f 74 20 75 73 65 64 5c 6e 66 72 | for.3d.plot.even.if.not.used\nfr |
cce0 | 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d 70 6f 72 74 20 41 | om.mpl_toolkits.mplot3d.import.A |
cd00 | 78 65 73 33 44 20 20 23 20 6e 6f 71 61 5c 6e 66 72 6f 6d 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 63 | xes3D..#.noqa\nfrom.matplotlib.c |
cd20 | 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e | ollections.import.PolyCollection |
cd40 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
cd60 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
cd80 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
cda0 | 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ......"Generate.data\n---------- |
cdc0 | 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | ---\n\n".......].....},.....{... |
cde0 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 | ...."cell_type":."code",......." |
ce00 | 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d | execution_count":.null,......."m |
ce20 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a | etadata":.{........."collapsed": |
ce40 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | .false.......},......."outputs": |
ce60 | 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .[],......."source":.[........." |
ce80 | 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 | #%%.parameters\n\nn.=.100..#.nb. |
cea0 | 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e | bins\n\n#.bin.positions\nx.=.np. |
cec0 | 61 72 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 | arange(n,.dtype=np.float64)\n\n# |
cee0 | 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 31 20 3d 20 6f 74 | .Gaussian.distributions\na1.=.ot |
cf00 | 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c | .datasets.make_1D_gauss(n,.m=20, |
cf20 | 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 61 32 20 3d 20 6f | .s=5)..#.m=.mean,.s=.std\na2.=.o |
cf40 | 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 | t.datasets.make_1D_gauss(n,.m=60 |
cf60 | 2c 20 73 3d 38 29 5c 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 74 72 69 78 20 41 20 63 6f | ,.s=8)\n\n#.creating.matrix.A.co |
cf80 | 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 41 20 3d 20 | ntaining.all.distributions\nA.=. |
cfa0 | 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e 6e 5f 64 69 73 74 72 69 62 | np.vstack((a1,.a2)).T\nn_distrib |
cfc0 | 75 74 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 | utions.=.A.shape[1]\n\n#.loss.ma |
cfe0 | 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 20 3d 20 6f 74 2e 75 74 69 | trix.+.normalization\nM.=.ot.uti |
d000 | 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 | ls.dist0(n)\nM./=.M.max()"...... |
d020 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
d040 | 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | ":."markdown",......."metadata": |
d060 | 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .{},......."source":.[........." |
d080 | 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 | Plot.data\n---------\n\n"....... |
d0a0 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
d0c0 | 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 | :."code",......."execution_count |
d0e0 | 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 | ":.null,......."metadata":.{.... |
d100 | 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c | ....."collapsed":.false.......}, |
d120 | 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......."outputs":.[],......."sou |
d140 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 | rce":.[........."#%%.plot.the.di |
d160 | 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 | stributions\n\npl.figure(1,.figs |
d180 | 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f | ize=(6.4,.3))\nfor.i.in.range(n_ |
d1a0 | 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 | distributions):\n....pl.plot(x,. |
d1c0 | 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e | A[:,.i])\npl.title('Distribution |
d1e0 | 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a | s')\npl.tight_layout()".......]. |
d200 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
d220 | 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d | "markdown",......."metadata":.{} |
d240 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 61 72 | ,......."source":.[........."Bar |
d260 | 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ycenter.computation\n----------- |
d280 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | -----------\n\n".......].....},. |
d2a0 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ....{......."cell_type":."code", |
d2c0 | 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a | ......."execution_count":.null,. |
d2e0 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
d300 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f | lapsed":.false.......},......."o |
d320 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | utputs":.[],......."source":.[.. |
d340 | 20 20 20 20 20 20 20 22 23 25 25 20 62 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 | ......."#%%.barycenter.computati |
d360 | 6f 6e 5c 6e 5c 6e 61 6c 70 68 61 20 3d 20 30 2e 32 20 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 | on\n\nalpha.=.0.2..#.0<=alpha<=1 |
d380 | 5c 6e 77 65 69 67 68 74 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c | \nweights.=.np.array([1.-.alpha, |
d3a0 | 20 61 6c 70 68 61 5d 29 5c 6e 5c 6e 23 20 6c 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 20 3d 20 | .alpha])\n\n#.l2bary\nbary_l2.=. |
d3c0 | 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 6e 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c | A.dot(weights)\n\n#.wasserstein\ |
d3e0 | 6e 72 65 67 20 3d 20 31 65 2d 33 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 65 67 | nreg.=.1e-3\nbary_wass.=.ot.breg |
d400 | 6d 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 | man.barycenter(A,.M,.reg,.weight |
d420 | 73 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c | s)\n\npl.figure(2)\npl.clf()\npl |
d440 | 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 | .subplot(2,.1,.1)\nfor.i.in.rang |
d460 | 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 | e(n_distributions):\n....pl.plot |
d480 | 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 | (x,.A[:,.i])\npl.title('Distribu |
d4a0 | 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e | tions')\n\npl.subplot(2,.1,.2)\n |
d4c0 | 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 6c 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 | pl.plot(x,.bary_l2,.'r',.label=' |
d4e0 | 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c | l2')\npl.plot(x,.bary_wass,.'g', |
d500 | 20 6c 61 62 65 6c 3d 27 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 | .label='Wasserstein')\npl.legend |
d520 | 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 73 27 29 5c 6e 70 6c 2e | ()\npl.title('Barycenters')\npl. |
d540 | 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 | tight_layout()".......].....},.. |
d560 | 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 | ...{......."cell_type":."markdow |
d580 | 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 | n",......."metadata":.{},....... |
d5a0 | 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 61 72 79 63 65 6e 74 72 69 63 | "source":.[........."Barycentric |
d5c0 | 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .interpolation\n---------------- |
d5e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | ---------\n\n".......].....},... |
d600 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 | ..{......."cell_type":."code",.. |
d620 | 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 | ....."execution_count":.null,... |
d640 | 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 | ...."metadata":.{........."colla |
d660 | 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 | psed":.false.......},......."out |
d680 | 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | puts":.[],......."source":.[.... |
d6a0 | 20 20 20 20 20 22 23 25 25 20 62 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 | ....."#%%.barycenter.interpolati |
d6c0 | 6f 6e 5c 6e 5c 6e 6e 5f 61 6c 70 68 61 20 3d 20 31 31 5c 6e 61 6c 70 68 61 5f 6c 69 73 74 20 3d | on\n\nn_alpha.=.11\nalpha_list.= |
d6e0 | 20 6e 70 2e 6c 69 6e 73 70 61 63 65 28 30 2c 20 31 2c 20 6e 5f 61 6c 70 68 61 29 5c 6e 5c 6e 5c | .np.linspace(0,.1,.n_alpha)\n\n\ |
d700 | 6e 42 5f 6c 32 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 6e 5f 61 6c 70 68 61 29 29 5c 6e | nB_l2.=.np.zeros((n,.n_alpha))\n |
d720 | 5c 6e 42 5f 77 61 73 73 20 3d 20 6e 70 2e 63 6f 70 79 28 42 5f 6c 32 29 5c 6e 5c 6e 66 6f 72 20 | \nB_wass.=.np.copy(B_l2)\n\nfor. |
d740 | 69 20 69 6e 20 72 61 6e 67 65 28 30 2c 20 6e 5f 61 6c 70 68 61 29 3a 5c 6e 20 20 20 20 61 6c 70 | i.in.range(0,.n_alpha):\n....alp |
d760 | 68 61 20 3d 20 61 6c 70 68 61 5f 6c 69 73 74 5b 69 5d 5c 6e 20 20 20 20 77 65 69 67 68 74 73 20 | ha.=.alpha_list[i]\n....weights. |
d780 | 3d 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 5c 6e | =.np.array([1.-.alpha,.alpha])\n |
d7a0 | 20 20 20 20 42 5f 6c 32 5b 3a 2c 20 69 5d 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c | ....B_l2[:,.i].=.A.dot(weights)\ |
d7c0 | 6e 20 20 20 20 42 5f 77 61 73 73 5b 3a 2c 20 69 5d 20 3d 20 6f 74 2e 62 72 65 67 6d 61 6e 2e 62 | n....B_wass[:,.i].=.ot.bregman.b |
d7e0 | 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 5c 6e 5c | arycenter(A,.M,.reg,.weights)\n\ |
d800 | 6e 23 25 25 20 70 6c 6f 74 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 5c 6e 70 6c 2e 66 69 | n#%%.plot.interpolation\n\npl.fi |
d820 | 67 75 72 65 28 33 29 5c 6e 5c 6e 63 6d 61 70 20 3d 20 70 6c 2e 63 6d 2e 67 65 74 5f 63 6d 61 70 | gure(3)\n\ncmap.=.pl.cm.get_cmap |
d840 | 28 27 76 69 72 69 64 69 73 27 29 5c 6e 76 65 72 74 73 20 3d 20 5b 5d 5c 6e 7a 73 20 3d 20 61 6c | ('viridis')\nverts.=.[]\nzs.=.al |
d860 | 70 68 61 5f 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 20 7a 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 | pha_list\nfor.i,.z.in.enumerate( |
d880 | 7a 73 29 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 6c 32 5b 3a 2c 20 69 5d 5c 6e 20 20 20 20 76 | zs):\n....ys.=.B_l2[:,.i]\n....v |
d8a0 | 65 72 74 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 28 7a 69 70 28 78 2c 20 79 73 29 29 29 5c 6e 5c | erts.append(list(zip(x,.ys)))\n\ |
d8c0 | 6e 61 78 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 28 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 | nax.=.pl.gcf().gca(projection='3 |
d8e0 | 64 27 29 5c 6e 5c 6e 70 6f 6c 79 20 3d 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 28 76 65 72 | d')\n\npoly.=.PolyCollection(ver |
d900 | 74 73 2c 20 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d 61 70 28 61 29 20 66 6f 72 20 61 20 69 6e | ts,.facecolors=[cmap(a).for.a.in |
d920 | 20 61 6c 70 68 61 5f 6c 69 73 74 5d 29 5c 6e 70 6f 6c 79 2e 73 65 74 5f 61 6c 70 68 61 28 30 2e | .alpha_list])\npoly.set_alpha(0. |
d940 | 37 29 5c 6e 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 74 69 6f 6e 33 64 28 70 6f 6c 79 2c 20 7a 73 | 7)\nax.add_collection3d(poly,.zs |
d960 | 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 61 62 65 6c 28 27 78 | =zs,.zdir='y')\nax.set_xlabel('x |
d980 | 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 28 30 2c 20 6e 29 5c 6e 61 78 2e 73 65 74 5f | ')\nax.set_xlim3d(0,.n)\nax.set_ |
d9a0 | 79 6c 61 62 65 6c 28 27 24 5c 5c 5c 5c 61 6c 70 68 61 24 27 29 5c 6e 61 78 2e 73 65 74 5f 79 6c | ylabel('$\\\\alpha$')\nax.set_yl |
d9c0 | 69 6d 33 64 28 30 2c 20 31 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 5c 6e 61 | im3d(0,.1)\nax.set_zlabel('')\na |
d9e0 | 78 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 2e 6d 61 78 28 29 20 2a 20 31 2e 30 | x.set_zlim3d(0,.B_l2.max().*.1.0 |
da00 | 31 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f | 1)\npl.title('Barycenter.interpo |
da20 | 6c 61 74 69 6f 6e 20 77 69 74 68 20 6c 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 | lation.with.l2')\npl.tight_layou |
da40 | 74 28 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 63 6d 61 70 20 3d 20 70 6c 2e 63 | t()\n\npl.figure(4)\ncmap.=.pl.c |
da60 | 6d 2e 67 65 74 5f 63 6d 61 70 28 27 76 69 72 69 64 69 73 27 29 5c 6e 76 65 72 74 73 20 3d 20 5b | m.get_cmap('viridis')\nverts.=.[ |
da80 | 5d 5c 6e 7a 73 20 3d 20 61 6c 70 68 61 5f 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 20 7a 20 69 6e 20 | ]\nzs.=.alpha_list\nfor.i,.z.in. |
daa0 | 65 6e 75 6d 65 72 61 74 65 28 7a 73 29 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 77 61 73 73 5b | enumerate(zs):\n....ys.=.B_wass[ |
dac0 | 3a 2c 20 69 5d 5c 6e 20 20 20 20 76 65 72 74 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 28 7a 69 70 | :,.i]\n....verts.append(list(zip |
dae0 | 28 78 2c 20 79 73 29 29 29 5c 6e 5c 6e 61 78 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 28 70 | (x,.ys)))\n\nax.=.pl.gcf().gca(p |
db00 | 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 5c 6e 5c 6e 70 6f 6c 79 20 3d 20 50 6f 6c 79 43 6f | rojection='3d')\n\npoly.=.PolyCo |
db20 | 6c 6c 65 63 74 69 6f 6e 28 76 65 72 74 73 2c 20 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d 61 70 | llection(verts,.facecolors=[cmap |
db40 | 28 61 29 20 66 6f 72 20 61 20 69 6e 20 61 6c 70 68 61 5f 6c 69 73 74 5d 29 5c 6e 70 6f 6c 79 2e | (a).for.a.in.alpha_list])\npoly. |
db60 | 73 65 74 5f 61 6c 70 68 61 28 30 2e 37 29 5c 6e 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 74 69 6f | set_alpha(0.7)\nax.add_collectio |
db80 | 6e 33 64 28 70 6f 6c 79 2c 20 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 61 78 2e 73 | n3d(poly,.zs=zs,.zdir='y')\nax.s |
dba0 | 65 74 5f 78 6c 61 62 65 6c 28 27 78 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 28 30 2c | et_xlabel('x')\nax.set_xlim3d(0, |
dbc0 | 20 6e 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 61 62 65 6c 28 27 24 5c 5c 5c 5c 61 6c 70 68 61 24 27 | .n)\nax.set_ylabel('$\\\\alpha$' |
dbe0 | 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 69 6d 33 64 28 30 2c 20 31 29 5c 6e 61 78 2e 73 65 74 5f 7a | )\nax.set_ylim3d(0,.1)\nax.set_z |
dc00 | 6c 61 62 65 6c 28 27 27 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 | label('')\nax.set_zlim3d(0,.B_l2 |
dc20 | 2e 6d 61 78 28 29 20 2a 20 31 2e 30 31 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 | .max().*.1.01)\npl.title('Baryce |
dc40 | 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 77 69 74 68 20 57 61 73 73 65 72 73 74 | nter.interpolation.with.Wasserst |
dc60 | 65 69 6e 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 | ein')\npl.tight_layout()\n\npl.s |
dc80 | 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 | how()".......].....}...],..."met |
dca0 | 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 | adata":.{....."kernelspec":.{... |
dcc0 | 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a | ...."display_name":."Python.3",. |
dce0 | 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 | ......"language":."python",..... |
dd00 | 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 | .."name":."python3".....},....." |
dd20 | 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 | language_info":.{......."codemir |
dd40 | 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 | ror_mode":.{........."name":."ip |
dd60 | 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 | ython",........."version":.3.... |
dd80 | 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e | ...},......."file_extension":.". |
dda0 | 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 | py",......."mimetype":."text/x-p |
ddc0 | 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a | ython",......."name":."python",. |
dde0 | 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 | ......"nbconvert_exporter":."pyt |
de00 | 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 | hon",......."pygments_lexer":."i |
de20 | 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e | python3",......."version":."3.6. |
de40 | 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 | 5".....}...},..."nbformat":.4,.. |
de60 | 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 | ."nbformat_minor":.0.}PK........ |
de80 | 2d 60 cb 4c cc bf 84 66 2d 18 00 00 2d 18 00 00 17 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 63 6c | -`.L...f-...-.......plot_otda_cl |
dea0 | 61 73 73 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a | asses.ipynb{..."cells":.[.....{. |
dec0 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 | ......"cell_type":."code",...... |
dee0 | 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 | ."execution_count":.null,....... |
df00 | 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 | "metadata":.{........."collapsed |
df20 | 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 | ":.false.......},......."outputs |
df40 | 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 | ":.[],......."source":.[........ |
df60 | 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 | ."%matplotlib.inline".......]... |
df80 | 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d | ..},.....{......."cell_type":."m |
dfa0 | 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a | arkdown",......."metadata":.{},. |
dfc0 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f | ......"source":.[........."\n#.O |
dfe0 | 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 54 68 69 | T.for.domain.adaptation\n\n\nThi |
e000 | 73 20 65 78 61 6d 70 6c 65 20 69 6e 74 72 6f 64 75 63 65 73 20 61 20 64 6f 6d 61 69 6e 20 61 64 | s.example.introduces.a.domain.ad |
e020 | 61 70 74 61 74 69 6f 6e 20 69 6e 20 61 20 32 44 20 73 65 74 74 69 6e 67 20 61 6e 64 20 74 68 65 | aptation.in.a.2D.setting.and.the |
e040 | 20 34 20 4f 54 44 41 5c 6e 61 70 70 72 6f 61 63 68 65 73 20 63 75 72 72 65 6e 74 6c 79 20 73 75 | .4.OTDA\napproaches.currently.su |
e060 | 70 70 6f 72 74 65 64 20 69 6e 20 50 4f 54 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 | pported.in.POT.\n\n\n".......].. |
e080 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
e0a0 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
e0c0 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
e0e0 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
e100 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
e120 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c | ":.[........."#.Authors:.Remi.Fl |
e140 | 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 | amary.<remi.flamary@unice.fr>\n# |
e160 | 20 20 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 | ..........Stanislas.Chambon.<sta |
e180 | 6e 2e 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e | n.chambon@gmail.com>\n#\n#.Licen |
e1a0 | 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f | se:.MIT.License\n\nimport.matplo |
e1c0 | 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 | tlib.pylab.as.pl\nimport.ot".... |
e1e0 | 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 | ...].....},.....{......."cell_ty |
e200 | 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | pe":."markdown",......."metadata |
e220 | 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 | ":.{},......."source":.[........ |
e240 | 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e | ."Generate.data\n-------------\n |
e260 | 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | \n".......].....},.....{......." |
e280 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 | cell_type":."code",......."execu |
e2a0 | 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | tion_count":.null,......."metada |
e2c0 | 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 | ta":.{........."collapsed":.fals |
e2e0 | 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a | e.......},......."outputs":.[],. |
e300 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 | ......"source":.[........."n_sou |
e320 | 72 63 65 5f 73 61 6d 70 6c 65 73 20 3d 20 31 35 30 5c 6e 6e 5f 74 61 72 67 65 74 5f 73 61 6d 70 | rce_samples.=.150\nn_target_samp |
e340 | 6c 65 73 20 3d 20 31 35 30 5c 6e 5c 6e 58 73 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 | les.=.150\n\nXs,.ys.=.ot.dataset |
e360 | 73 2e 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 20 6e 5f | s.make_data_classif('3gauss',.n_ |
e380 | 73 6f 75 72 63 65 5f 73 61 6d 70 6c 65 73 29 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e 64 61 74 | source_samples)\nXt,.yt.=.ot.dat |
e3a0 | 61 73 65 74 73 2e 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 32 | asets.make_data_classif('3gauss2 |
e3c0 | 27 2c 20 6e 5f 74 61 72 67 65 74 5f 73 61 6d 70 6c 65 73 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 | ',.n_target_samples)".......]... |
e3e0 | 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d | ..},.....{......."cell_type":."m |
e400 | 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a | arkdown",......."metadata":.{},. |
e420 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 73 74 61 | ......"source":.[........."Insta |
e440 | 6e 74 69 61 74 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 74 72 61 6e 73 70 6f 72 74 20 61 | ntiate.the.different.transport.a |
e460 | 6c 67 6f 72 69 74 68 6d 73 20 61 6e 64 20 66 69 74 20 74 68 65 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d | lgorithms.and.fit.them\n-------- |
e480 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
e4a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d | -------------------\n\n".......] |
e4c0 | 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a | .....},.....{......."cell_type": |
e4e0 | 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 | ."code",......."execution_count" |
e500 | 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 | :.null,......."metadata":.{..... |
e520 | 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a | ...."collapsed":.false.......},. |
e540 | 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 | ......"outputs":.[],......."sour |
e560 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 45 4d 44 20 54 72 61 6e 73 70 6f 72 74 5c | ce":.[........."#.EMD.Transport\ |
e580 | 6e 6f 74 5f 65 6d 64 20 3d 20 6f 74 2e 64 61 2e 45 4d 44 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e | not_emd.=.ot.da.EMDTransport()\n |
e5a0 | 6f 74 5f 65 6d 64 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 69 | ot_emd.fit(Xs=Xs,.Xt=Xt)\n\n#.Si |
e5c0 | 6e 6b 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 | nkhorn.Transport\not_sinkhorn.=. |
e5e0 | 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 | ot.da.SinkhornTransport(reg_e=1e |
e600 | 2d 31 29 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 | -1)\not_sinkhorn.fit(Xs=Xs,.Xt=X |
e620 | 74 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 20 77 69 74 68 20 | t)\n\n#.Sinkhorn.Transport.with. |
e640 | 47 72 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 6f 74 5f 6c | Group.lasso.regularization\not_l |
e660 | 70 6c 31 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 | pl1.=.ot.da.SinkhornLpl1Transpor |
e680 | 74 28 72 65 67 5f 65 3d 31 65 2d 31 2c 20 72 65 67 5f 63 6c 3d 31 65 30 29 5c 6e 6f 74 5f 6c 70 | t(reg_e=1e-1,.reg_cl=1e0)\not_lp |
e6a0 | 6c 31 2e 66 69 74 28 58 73 3d 58 73 2c 20 79 73 3d 79 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 | l1.fit(Xs=Xs,.ys=ys,.Xt=Xt)\n\n# |
e6c0 | 20 53 69 6e 6b 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 20 77 69 74 68 20 47 72 6f 75 70 20 6c | .Sinkhorn.Transport.with.Group.l |
e6e0 | 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 6c 31 6c 32 5c 6e 6f 74 5f 6c 31 6c | asso.regularization.l1l2\not_l1l |
e700 | 32 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 4c 31 6c 32 54 72 61 6e 73 70 6f 72 74 28 | 2.=.ot.da.SinkhornL1l2Transport( |
e720 | 72 65 67 5f 65 3d 31 65 2d 31 2c 20 72 65 67 5f 63 6c 3d 32 65 30 2c 20 6d 61 78 5f 69 74 65 72 | reg_e=1e-1,.reg_cl=2e0,.max_iter |
e740 | 3d 32 30 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | =20,\n.......................... |
e760 | 20 20 20 20 20 20 20 20 20 20 20 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 5f 6c 31 | ............verbose=True)\not_l1 |
e780 | 6c 32 2e 66 69 74 28 58 73 3d 58 73 2c 20 79 73 3d 79 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 | l2.fit(Xs=Xs,.ys=ys,.Xt=Xt)\n\n# |
e7a0 | 20 74 72 61 6e 73 70 6f 72 74 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 20 6f 6e 74 6f 20 74 | .transport.source.samples.onto.t |
e7c0 | 61 72 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 20 3d 20 6f | arget.samples\ntransp_Xs_emd.=.o |
e7e0 | 74 5f 65 6d 64 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 | t_emd.transform(Xs=Xs)\ntransp_X |
e800 | 73 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 74 72 61 6e 73 66 6f | s_sinkhorn.=.ot_sinkhorn.transfo |
e820 | 72 6d 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 20 3d 20 6f 74 5f 6c | rm(Xs=Xs)\ntransp_Xs_lpl1.=.ot_l |
e840 | 70 6c 31 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f | pl1.transform(Xs=Xs)\ntransp_Xs_ |
e860 | 6c 31 6c 32 20 3d 20 6f 74 5f 6c 31 6c 32 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 22 | l1l2.=.ot_l1l2.transform(Xs=Xs)" |
e880 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
e8a0 | 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | l_type":."markdown",......."meta |
e8c0 | 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | data":.{},......."source":.[.... |
e8e0 | 20 20 20 20 20 22 46 69 67 20 31 20 3a 20 70 6c 6f 74 73 20 73 6f 75 72 63 65 20 61 6e 64 20 74 | ....."Fig.1.:.plots.source.and.t |
e900 | 61 72 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | arget.samples\n----------------- |
e920 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 | ----------------------\n\n"..... |
e940 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
e960 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
e980 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
e9a0 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
e9c0 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
e9e0 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 | ource":.[........."pl.figure(1,. |
ea00 | 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 35 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 | figsize=(10,.5))\npl.subplot(1,. |
ea20 | 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a | 2,.1)\npl.scatter(Xs[:,.0],.Xs[: |
ea40 | 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 | ,.1],.c=ys,.marker='+',.label='S |
ea60 | 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e | ource.samples')\npl.xticks([])\n |
ea80 | 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c | pl.yticks([])\npl.legend(loc=0)\ |
eaa0 | 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e | npl.title('Source..samples')\n\n |
eac0 | 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 | pl.subplot(1,.2,.2)\npl.scatter( |
eae0 | 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 | Xt[:,.0],.Xt[:,.1],.c=yt,.marker |
eb00 | 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 | ='o',.label='Target.samples')\np |
eb20 | 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e | l.xticks([])\npl.yticks([])\npl. |
eb40 | 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 61 72 67 65 74 20 | legend(loc=0)\npl.title('Target. |
eb60 | 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 | samples')\npl.tight_layout()"... |
eb80 | 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 | ....].....},.....{......."cell_t |
eba0 | 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ype":."markdown",......."metadat |
ebc0 | 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | a":.{},......."source":.[....... |
ebe0 | 20 20 22 46 69 67 20 32 20 3a 20 70 6c 6f 74 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 | .."Fig.2.:.plot.optimal.coupling |
ec00 | 73 20 61 6e 64 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d | s.and.transported.samples\n----- |
ec20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
ec40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 | -----------------\n\n".......].. |
ec60 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
ec80 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
eca0 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
ecc0 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
ece0 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
ed00 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 61 72 61 6d 5f 69 6d 67 20 3d 20 7b 27 69 6e 74 65 | ":.[........."param_img.=.{'inte |
ed20 | 72 70 6f 6c 61 74 69 6f 6e 27 3a 20 27 6e 65 61 72 65 73 74 27 7d 5c 6e 5c 6e 70 6c 2e 66 69 67 | rpolation':.'nearest'}\n\npl.fig |
ed40 | 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 35 2c 20 38 29 29 5c 6e 70 6c 2e 73 75 62 70 | ure(2,.figsize=(15,.8))\npl.subp |
ed60 | 6c 6f 74 28 32 2c 20 34 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 65 6d 64 2e 63 | lot(2,.4,.1)\npl.imshow(ot_emd.c |
ed80 | 6f 75 70 6c 69 6e 67 5f 2c 20 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 69 63 6b | oupling_,.**param_img)\npl.xtick |
eda0 | 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 | s([])\npl.yticks([])\npl.title(' |
edc0 | 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 45 4d 44 54 72 61 6e 73 70 6f 72 74 27 | Optimal.coupling\\nEMDTransport' |
ede0 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 | )\n\npl.subplot(2,.4,.2)\npl.ims |
ee00 | 68 6f 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 2a 2a 70 61 72 | how(ot_sinkhorn.coupling_,.**par |
ee20 | 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b | am_img)\npl.xticks([])\npl.ytick |
ee40 | 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e | s([])\npl.title('Optimal.couplin |
ee60 | 67 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 | g\\nSinkhornTransport')\n\npl.su |
ee80 | 62 70 6c 6f 74 28 32 2c 20 34 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 6c 70 6c | bplot(2,.4,.3)\npl.imshow(ot_lpl |
eea0 | 31 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 | 1.coupling_,.**param_img)\npl.xt |
eec0 | 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c | icks([])\npl.yticks([])\npl.titl |
eee0 | 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 | e('Optimal.coupling\\nSinkhornLp |
ef00 | 6c 31 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 | l1Transport')\n\npl.subplot(2,.4 |
ef20 | 2c 20 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 6c 31 6c 32 2e 63 6f 75 70 6c 69 6e 67 | ,.4)\npl.imshow(ot_l1l2.coupling |
ef40 | 5f 2c 20 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e | _,.**param_img)\npl.xticks([])\n |
ef60 | 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c | pl.yticks([])\npl.title('Optimal |
ef80 | 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 31 6c 32 54 72 61 6e 73 70 6f 72 | .coupling\\nSinkhornL1l2Transpor |
efa0 | 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 35 29 5c 6e 70 6c 2e 73 | t')\n\npl.subplot(2,.4,.5)\npl.s |
efc0 | 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c | catter(Xt[:,.0],.Xt[:,.1],.c=yt, |
efe0 | 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 | .marker='o',\n...........label=' |
f000 | 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e | Target.samples',.alpha=0.3)\npl. |
f020 | 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 5b 3a 2c 20 30 5d 2c 20 74 72 61 | scatter(transp_Xs_emd[:,.0],.tra |
f040 | 6e 73 70 5f 58 73 5f 65 6d 64 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 | nsp_Xs_emd[:,.1],.c=ys,\n....... |
f060 | 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 | ....marker='+',.label='Transp.sa |
f080 | 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c | mples',.s=30)\npl.xticks([])\npl |
f0a0 | 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 | .yticks([])\npl.title('Transport |
f0c0 | 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 45 6d 64 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e | ed.samples\\nEmdTransport')\npl. |
f0e0 | 6c 65 67 65 6e 64 28 6c 6f 63 3d 5c 22 6c 6f 77 65 72 20 6c 65 66 74 5c 22 29 5c 6e 5c 6e 70 6c | legend(loc=\"lower.left\")\n\npl |
f100 | 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 36 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 | .subplot(2,.4,.6)\npl.scatter(Xt |
f120 | 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 | [:,.0],.Xt[:,.1],.c=yt,.marker=' |
f140 | 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 | o',\n...........label='Target.sa |
f160 | 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 | mples',.alpha=0.3)\npl.scatter(t |
f180 | 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f | ransp_Xs_sinkhorn[:,.0],.transp_ |
f1a0 | 58 73 5f 73 69 6e 6b 68 6f 72 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 | Xs_sinkhorn[:,.1],.c=ys,\n...... |
f1c0 | 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 | .....marker='+',.label='Transp.s |
f1e0 | 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 | amples',.s=30)\npl.xticks([])\np |
f200 | 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 | l.yticks([])\npl.title('Transpor |
f220 | 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 | ted.samples\\nSinkhornTransport' |
f240 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 37 29 5c 6e 70 6c 2e 73 63 61 | )\n\npl.subplot(2,.4,.7)\npl.sca |
f260 | 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d | tter(Xt[:,.0],.Xt[:,.1],.c=yt,.m |
f280 | 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 | arker='o',\n...........label='Ta |
f2a0 | 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 | rget.samples',.alpha=0.3)\npl.sc |
f2c0 | 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e | atter(transp_Xs_lpl1[:,.0],.tran |
f2e0 | 73 70 5f 58 73 5f 6c 70 6c 31 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 | sp_Xs_lpl1[:,.1],.c=ys,\n....... |
f300 | 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 | ....marker='+',.label='Transp.sa |
f320 | 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c | mples',.s=30)\npl.xticks([])\npl |
f340 | 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 | .yticks([])\npl.title('Transport |
f360 | 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f | ed.samples\\nSinkhornLpl1Transpo |
f380 | 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 38 29 5c 6e 70 6c 2e | rt')\n\npl.subplot(2,.4,.8)\npl. |
f3a0 | 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 | scatter(Xt[:,.0],.Xt[:,.1],.c=yt |
f3c0 | 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d | ,.marker='o',\n...........label= |
f3e0 | 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c | 'Target.samples',.alpha=0.3)\npl |
f400 | 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 31 6c 32 5b 3a 2c 20 30 5d 2c 20 74 | .scatter(transp_Xs_l1l2[:,.0],.t |
f420 | 72 61 6e 73 70 5f 58 73 5f 6c 31 6c 32 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 | ransp_Xs_l1l2[:,.1],.c=ys,\n.... |
f440 | 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 | .......marker='+',.label='Transp |
f460 | 20 73 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c | .samples',.s=30)\npl.xticks([])\ |
f480 | 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 | npl.yticks([])\npl.title('Transp |
f4a0 | 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 31 6c 32 54 72 61 6e | orted.samples\\nSinkhornL1l2Tran |
f4c0 | 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c | sport')\npl.tight_layout()\n\npl |
f4e0 | 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d | .show()".......].....}...],..."m |
f500 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a | etadata":.{....."kernelspec":.{. |
f520 | 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 | ......"display_name":."Python.3" |
f540 | 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 | ,......."language":."python",... |
f560 | 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 | ...."name":."python3".....},.... |
f580 | 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d | ."language_info":.{......."codem |
f5a0 | 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 | irror_mode":.{........."name":." |
f5c0 | 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 | ipython",........."version":.3.. |
f5e0 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 | .....},......."file_extension":. |
f600 | 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 | ".py",......."mimetype":."text/x |
f620 | 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 | -python",......."name":."python" |
f640 | 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 | ,......."nbconvert_exporter":."p |
f660 | 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 | ython",......."pygments_lexer":. |
f680 | 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e | "ipython3",......."version":."3. |
f6a0 | 36 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c | 6.5".....}...},..."nbformat":.4, |
f6c0 | 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 | ..."nbformat_minor":.0.}PK...... |
f6e0 | 00 00 ec 45 43 4d df ba b4 fb aa 10 00 00 aa 10 00 00 17 00 00 00 70 6c 6f 74 5f 4f 54 5f 31 44 | ...ECM................plot_OT_1D |
f700 | 5f 73 6d 6f 6f 74 68 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 | _smooth.ipynb{..."cells":.[..... |
f720 | 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 | {......."cell_type":."code",.... |
f740 | 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 | ..."execution_count":.null,..... |
f760 | 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 | .."metadata":.{........."collaps |
f780 | 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 | ed":.false.......},......."outpu |
f7a0 | 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 | ts":.[],......."source":.[...... |
f7c0 | 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a | ..."%matplotlib.inline".......]. |
f7e0 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
f800 | 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d | "markdown",......."metadata":.{} |
f820 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 | ,......."source":.[........."\n# |
f840 | 20 31 44 20 73 6d 6f 6f 74 68 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 5c 6e | .1D.smooth.optimal.transport\n\n |
f860 | 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 | \nThis.example.illustrates.the.c |
f880 | 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 45 4d 44 2c 20 53 69 6e 6b 68 6f 72 6e 20 61 6e 64 20 | omputation.of.EMD,.Sinkhorn.and. |
f8a0 | 73 6d 6f 6f 74 68 20 4f 54 20 70 6c 61 6e 73 5c 6e 61 6e 64 20 74 68 65 69 72 20 76 69 73 75 61 | smooth.OT.plans\nand.their.visua |
f8c0 | 6c 69 7a 61 74 69 6f 6e 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | lization.\n\n\n".......].....},. |
f8e0 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ....{......."cell_type":."code", |
f900 | 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a | ......."execution_count":.null,. |
f920 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
f940 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f | lapsed":.false.......},......."o |
f960 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | utputs":.[],......."source":.[.. |
f980 | 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c | ......."#.Author:.Remi.Flamary.< |
f9a0 | 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 | remi.flamary@unice.fr>\n#\n#.Lic |
f9c0 | 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 | ense:.MIT.License\n\nimport.nump |
f9e0 | 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 | y.as.np\nimport.matplotlib.pylab |
fa00 | 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f | .as.pl\nimport.ot\nimport.ot.plo |
fa20 | 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 6d 61 6b 65 5f | t\nfrom.ot.datasets.import.make_ |
fa40 | 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | 1D_gauss.as.gauss".......].....} |
fa60 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
fa80 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
faa0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 | ..."source":.[........."Generate |
fac0 | 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 | .data\n-------------\n\n"....... |
fae0 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
fb00 | 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 | :."code",......."execution_count |
fb20 | 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 | ":.null,......."metadata":.{.... |
fb40 | 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c | ....."collapsed":.false.......}, |
fb60 | 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......."outputs":.[],......."sou |
fb80 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c | rce":.[........."#%%.parameters\ |
fba0 | 6e 5c 6e 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 | n\nn.=.100..#.nb.bins\n\n#.bin.p |
fbc0 | 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 | ositions\nx.=.np.arange(n,.dtype |
fbe0 | 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 | =np.float64)\n\n#.Gaussian.distr |
fc00 | 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 73 3d 35 | ibutions\na.=.gauss(n,.m=20,.s=5 |
fc20 | 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 62 20 3d 20 67 61 75 73 73 28 | )..#.m=.mean,.s=.std\nb.=.gauss( |
fc40 | 6e 2c 20 6d 3d 36 30 2c 20 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c | n,.m=60,.s=10)\n\n#.loss.matrix\ |
fc60 | 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 | nM.=.ot.dist(x.reshape((n,.1)),. |
fc80 | 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 | x.reshape((n,.1)))\nM./=.M.max() |
fca0 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
fcc0 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
fce0 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
fd00 | 20 20 20 20 20 20 22 50 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f | ......"Plot.distributions.and.lo |
fd20 | 73 73 20 6d 61 74 72 69 78 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ss.matrix\n--------------------- |
fd40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | -------------\n\n".......].....} |
fd60 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 | ,.....{......."cell_type":."code |
fd80 | 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c | ",......."execution_count":.null |
fda0 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 | ,......."metadata":.{........."c |
fdc0 | 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 | ollapsed":.false.......},....... |
fde0 | 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | "outputs":.[],......."source":.[ |
fe00 | 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 62 75 74 | ........."#%%.plot.the.distribut |
fe20 | 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e | ions\n\npl.figure(1,.figsize=(6. |
fe40 | 34 2c 20 33 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 61 2c 20 27 62 27 2c 20 6c 61 62 65 6c | 4,.3))\npl.plot(x,.a,.'b',.label |
fe60 | 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 | ='Source.distribution')\npl.plot |
fe80 | 28 78 2c 20 62 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 64 69 73 74 72 69 | (x,.b,.'r',.label='Target.distri |
fea0 | 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f | bution')\npl.legend()\n\n#%%.plo |
fec0 | 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c | t.distributions.and.loss.matrix\ |
fee0 | 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c | n\npl.figure(2,.figsize=(5,.5))\ |
ff00 | 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 4d 2c 20 27 43 6f | not.plot.plot1D_mat(a,.b,.M,.'Co |
ff20 | 73 74 20 6d 61 74 72 69 78 20 4d 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | st.matrix.M')".......].....},... |
ff40 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
ff60 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
ff80 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 45 4d 44 5c 6e 2d | source":.[........."Solve.EMD\n- |
ffa0 | 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | --------\n\n".......].....},.... |
ffc0 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
ffe0 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
10000 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
10020 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
10040 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
10060 | 20 20 20 20 22 23 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 | ...."#%%.EMD\n\nG0.=.ot.emd(a,.b |
10080 | 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c | ,.M)\n\npl.figure(3,.figsize=(5, |
100a0 | 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 | .5))\not.plot.plot1D_mat(a,.b,.G |
100c0 | 30 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 | 0,.'OT.matrix.G0')".......]..... |
100e0 | 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 | },.....{......."cell_type":."mar |
10100 | 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 | kdown",......."metadata":.{},... |
10120 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 53 | ...."source":.[........."Solve.S |
10140 | 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 | inkhorn\n--------------\n\n".... |
10160 | 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 | ...].....},.....{......."cell_ty |
10180 | 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f | pe":."code",......."execution_co |
101a0 | 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a | unt":.null,......."metadata":.{. |
101c0 | 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 | ........"collapsed":.false...... |
101e0 | 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 | .},......."outputs":.[],......." |
10200 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 53 69 6e 6b 68 6f 72 6e | source":.[........."#%%.Sinkhorn |
10220 | 5c 6e 5c 6e 6c 61 6d 62 64 20 3d 20 32 65 2d 33 5c 6e 47 73 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f | \n\nlambd.=.2e-3\nGs.=.ot.sinkho |
10240 | 72 6e 28 61 2c 20 62 2c 20 4d 2c 20 6c 61 6d 62 64 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 | rn(a,.b,.M,.lambd,.verbose=True) |
10260 | 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 | \n\npl.figure(4,.figsize=(5,.5)) |
10280 | 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 73 2c 20 27 | \not.plot.plot1D_mat(a,.b,.Gs,.' |
102a0 | 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 | OT.matrix.Sinkhorn')\n\npl.show( |
102c0 | 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | )".......].....},.....{......."c |
102e0 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 | ell_type":."markdown",......."me |
10300 | 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | tadata":.{},......."source":.[.. |
10320 | 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 53 6d 6f 6f 74 68 20 4f 54 5c 6e 2d 2d 2d 2d 2d 2d 2d | ......."Solve.Smooth.OT\n------- |
10340 | 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | -------\n\n".......].....},..... |
10360 | 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 | {......."cell_type":."code",.... |
10380 | 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 | ..."execution_count":.null,..... |
103a0 | 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 | .."metadata":.{........."collaps |
103c0 | 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 | ed":.false.......},......."outpu |
103e0 | 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 | ts":.[],......."source":.[...... |
10400 | 20 20 20 22 23 25 25 20 53 6d 6f 6f 74 68 20 4f 54 20 77 69 74 68 20 4b 4c 20 72 65 67 75 6c 61 | ..."#%%.Smooth.OT.with.KL.regula |
10420 | 72 69 7a 61 74 69 6f 6e 5c 6e 5c 6e 6c 61 6d 62 64 20 3d 20 32 65 2d 33 5c 6e 47 73 6d 20 3d 20 | rization\n\nlambd.=.2e-3\nGsm.=. |
10440 | 6f 74 2e 73 6d 6f 6f 74 68 2e 73 6d 6f 6f 74 68 5f 6f 74 5f 64 75 61 6c 28 61 2c 20 62 2c 20 4d | ot.smooth.smooth_ot_dual(a,.b,.M |
10460 | 2c 20 6c 61 6d 62 64 2c 20 72 65 67 5f 74 79 70 65 3d 27 6b 6c 27 29 5c 6e 5c 6e 70 6c 2e 66 69 | ,.lambd,.reg_type='kl')\n\npl.fi |
10480 | 67 75 72 65 28 35 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 | gure(5,.figsize=(5,.5))\not.plot |
104a0 | 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 73 6d 2c 20 27 4f 54 20 6d 61 74 72 69 | .plot1D_mat(a,.b,.Gsm,.'OT.matri |
104c0 | 78 20 53 6d 6f 6f 74 68 20 4f 54 20 4b 4c 20 72 65 67 2e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 | x.Smooth.OT.KL.reg.')\n\npl.show |
104e0 | 28 29 5c 6e 5c 6e 5c 6e 23 25 25 20 53 6d 6f 6f 74 68 20 4f 54 20 77 69 74 68 20 4b 4c 20 72 65 | ()\n\n\n#%%.Smooth.OT.with.KL.re |
10500 | 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 5c 6e 6c 61 6d 62 64 20 3d 20 31 65 2d 31 5c 6e 47 73 | gularization\n\nlambd.=.1e-1\nGs |
10520 | 6d 20 3d 20 6f 74 2e 73 6d 6f 6f 74 68 2e 73 6d 6f 6f 74 68 5f 6f 74 5f 64 75 61 6c 28 61 2c 20 | m.=.ot.smooth.smooth_ot_dual(a,. |
10540 | 62 2c 20 4d 2c 20 6c 61 6d 62 64 2c 20 72 65 67 5f 74 79 70 65 3d 27 6c 32 27 29 5c 6e 5c 6e 70 | b,.M,.lambd,.reg_type='l2')\n\np |
10560 | 6c 2e 66 69 67 75 72 65 28 36 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e | l.figure(6,.figsize=(5,.5))\not. |
10580 | 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 73 6d 2c 20 27 4f 54 20 6d | plot.plot1D_mat(a,.b,.Gsm,.'OT.m |
105a0 | 61 74 72 69 78 20 53 6d 6f 6f 74 68 20 4f 54 20 6c 32 20 72 65 67 2e 27 29 5c 6e 5c 6e 70 6c 2e | atrix.Smooth.OT.l2.reg.')\n\npl. |
105c0 | 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 | show()".......].....}...],..."me |
105e0 | 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 | tadata":.{....."kernelspec":.{.. |
10600 | 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c | ....."display_name":."Python.3", |
10620 | 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 | ......."language":."python",.... |
10640 | 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | ..."name":."python3".....},..... |
10660 | 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 | "language_info":.{......."codemi |
10680 | 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 | rror_mode":.{........."name":."i |
106a0 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 | python",........."version":.3... |
106c0 | 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 | ....},......."file_extension":." |
106e0 | 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d | .py",......."mimetype":."text/x- |
10700 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c | python",......."name":."python", |
10720 | 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 | ......."nbconvert_exporter":."py |
10740 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 | thon",......."pygments_lexer":." |
10760 | 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 | ipython3",......."version":."3.6 |
10780 | 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a | .5".....}...},..."nbformat":.4,. |
107a0 | 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 | .."nbformat_minor":.0.}PK....... |
107c0 | 00 77 6d 7d 4e 80 8e 14 e4 3b 18 00 00 3b 18 00 00 25 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 6d | .wm}N....;...;...%...plot_otda_m |
107e0 | 61 70 70 69 6e 67 5f 63 6f 6c 6f 72 73 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 | apping_colors_images.ipynb{..."c |
10800 | 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ells":.[.....{......."cell_type" |
10820 | 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 | :."code",......."execution_count |
10840 | 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 | ":.null,......."metadata":.{.... |
10860 | 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c | ....."collapsed":.false.......}, |
10880 | 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......."outputs":.[],......."sou |
108a0 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c | rce":.[........."%matplotlib.inl |
108c0 | 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 | ine".......].....},.....{....... |
108e0 | 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 | "cell_type":."markdown",......." |
10900 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | metadata":.{},......."source":.[ |
10920 | 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 66 6f 72 20 69 6d 61 67 65 20 63 6f 6c 6f 72 | ........."\n#.OT.for.image.color |
10940 | 20 61 64 61 70 74 61 74 69 6f 6e 20 77 69 74 68 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 | .adaptation.with.mapping.estimat |
10960 | 69 6f 6e 5c 6e 5c 6e 5c 6e 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f | ion\n\n\nOT.for.domain.adaptatio |
10980 | 6e 20 77 69 74 68 20 69 6d 61 67 65 20 63 6f 6c 6f 72 20 61 64 61 70 74 61 74 69 6f 6e 20 5b 36 | n.with.image.color.adaptation.[6 |
109a0 | 5d 20 77 69 74 68 20 6d 61 70 70 69 6e 67 5c 6e 65 73 74 69 6d 61 74 69 6f 6e 20 5b 38 5d 2e 5c | ].with.mapping\nestimation.[8].\ |
109c0 | 6e 5c 6e 5b 36 5d 20 46 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 64 61 6b 69 73 2c | n\n[6].Ferradans,.S.,.Papadakis, |
109e0 | 20 4e 2e 2c 20 50 65 79 72 65 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 2e 20 28 | .N.,.Peyre,.G.,.&.Aujol,.J..F..( |
10a00 | 32 30 31 34 29 2e 20 52 65 67 75 6c 61 72 69 7a 65 64 5c 6e 20 20 20 20 64 69 73 63 72 65 74 65 | 2014)..Regularized\n....discrete |
10a20 | 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c | .optimal.transport..SIAM.Journal |
10a40 | 20 6f 6e 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e 63 65 73 2c 20 37 28 33 29 2c 5c 6e 20 20 20 | .on.Imaging.Sciences,.7(3),\n... |
10a60 | 20 31 38 35 33 2d 31 38 38 32 2e 5c 6e 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 2c 20 4e 2e 20 43 | .1853-1882.\n[8].M..Perrot,.N..C |
10a80 | 6f 75 72 74 79 2c 20 52 2e 20 46 6c 61 6d 61 72 79 2c 20 41 2e 20 48 61 62 72 61 72 64 2c 20 5c | ourty,.R..Flamary,.A..Habrard,.\ |
10aa0 | 22 4d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 5c 6e 20 20 20 20 64 69 73 | "Mapping.estimation.for\n....dis |
10ac0 | 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 22 2c 20 4e 65 75 72 61 | crete.optimal.transport\",.Neura |
10ae0 | 6c 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 50 72 6f 63 65 73 73 69 6e 67 20 53 79 73 74 65 6d 73 | l.Information.Processing.Systems |
10b00 | 20 28 4e 49 50 53 29 2c 5c 6e 20 20 20 20 32 30 31 36 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 | .(NIPS),\n....2016.\n\n\n"...... |
10b20 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
10b40 | 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e | ":."code",......."execution_coun |
10b60 | 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 | t":.null,......."metadata":.{... |
10b80 | 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d | ......"collapsed":.false.......} |
10ba0 | 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f | ,......."outputs":.[],......."so |
10bc0 | 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d | urce":.[........."#.Authors:.Rem |
10be0 | 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 | i.Flamary.<remi.flamary@unice.fr |
10c00 | 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 | >\n#..........Stanislas.Chambon. |
10c20 | 3c 73 74 61 6e 2e 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c | <stan.chambon@gmail.com>\n#\n#.L |
10c40 | 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 | icense:.MIT.License\n\nimport.nu |
10c60 | 6d 70 79 20 61 73 20 6e 70 5c 6e 66 72 6f 6d 20 73 63 69 70 79 20 69 6d 70 6f 72 74 20 6e 64 69 | mpy.as.np\nfrom.scipy.import.ndi |
10c80 | 6d 61 67 65 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 | mage\nimport.matplotlib.pylab.as |
10ca0 | 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 72 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e | .pl\nimport.ot\n\nr.=.np.random. |
10cc0 | 52 61 6e 64 6f 6d 53 74 61 74 65 28 34 32 29 5c 6e 5c 6e 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 | RandomState(42)\n\n\ndef.im2mat( |
10ce0 | 49 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 | I):\n....\"\"\"Converts.and.imag |
10d00 | 65 20 74 6f 20 6d 61 74 72 69 78 20 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 | e.to.matrix.(one.pixel.per.line) |
10d20 | 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e | \"\"\"\n....return.I.reshape((I. |
10d40 | 73 68 61 70 65 5b 30 5d 20 2a 20 49 2e 73 68 61 70 65 5b 31 5d 2c 20 49 2e 73 68 61 70 65 5b 32 | shape[0].*.I.shape[1],.I.shape[2 |
10d60 | 5d 29 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 69 6d 28 58 2c 20 73 68 61 70 65 29 3a 5c 6e | ]))\n\n\ndef.mat2im(X,.shape):\n |
10d80 | 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 62 61 63 6b 20 61 20 6d 61 74 72 69 78 | ....\"\"\"Converts.back.a.matrix |
10da0 | 20 74 6f 20 61 6e 20 69 6d 61 67 65 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 58 | .to.an.image\"\"\"\n....return.X |
10dc0 | 2e 72 65 73 68 61 70 65 28 73 68 61 70 65 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 69 6e 6d 61 78 28 | .reshape(shape)\n\n\ndef.minmax( |
10de0 | 49 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 63 6c 69 70 28 49 2c 20 30 2c 20 31 29 | I):\n....return.np.clip(I,.0,.1) |
10e00 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
10e20 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
10e40 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
10e60 | 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ......"Generate.data\n---------- |
10e80 | 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | ---\n\n".......].....},.....{... |
10ea0 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 | ...."cell_type":."code",......." |
10ec0 | 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d | execution_count":.null,......."m |
10ee0 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a | etadata":.{........."collapsed": |
10f00 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | .false.......},......."outputs": |
10f20 | 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .[],......."source":.[........." |
10f40 | 23 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 49 31 20 3d 20 6e 64 69 6d 61 67 65 2e 69 | #.Loading.images\nI1.=.ndimage.i |
10f60 | 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 2e 61 | mread('../data/ocean_day.jpg').a |
10f80 | 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 49 32 20 3d 20 6e 64 | stype(np.float64)./.256\nI2.=.nd |
10fa0 | 69 6d 61 67 65 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 | image.imread('../data/ocean_suns |
10fc0 | 65 74 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 | et.jpg').astype(np.float64)./.25 |
10fe0 | 36 5c 6e 5c 6e 5c 6e 58 31 20 3d 20 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 20 3d 20 69 6d 32 | 6\n\n\nX1.=.im2mat(I1)\nX2.=.im2 |
11000 | 6d 61 74 28 49 32 29 5c 6e 5c 6e 23 20 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 5c 6e 6e | mat(I2)\n\n#.training.samples\nn |
11020 | 62 20 3d 20 31 30 30 30 5c 6e 69 64 78 31 20 3d 20 72 2e 72 61 6e 64 69 6e 74 28 58 31 2e 73 68 | b.=.1000\nidx1.=.r.randint(X1.sh |
11040 | 61 70 65 5b 30 5d 2c 20 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 69 64 78 32 20 3d 20 72 2e 72 61 | ape[0],.size=(nb,))\nidx2.=.r.ra |
11060 | 6e 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 20 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e | ndint(X2.shape[0],.size=(nb,))\n |
11080 | 5c 6e 58 73 20 3d 20 58 31 5b 69 64 78 31 2c 20 3a 5d 5c 6e 58 74 20 3d 20 58 32 5b 69 64 78 32 | \nXs.=.X1[idx1,.:]\nXt.=.X2[idx2 |
110a0 | 2c 20 3a 5d 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 | ,.:]".......].....},.....{...... |
110c0 | 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 | ."cell_type":."markdown",....... |
110e0 | 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 | "metadata":.{},......."source":. |
11100 | 5b 0a 20 20 20 20 20 20 20 20 22 44 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 66 6f 72 | [........."Domain.adaptation.for |
11120 | 20 70 69 78 65 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 74 72 61 6e 73 66 65 72 5c 6e 2d 2d | .pixel.distribution.transfer\n-- |
11140 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
11160 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | ---------------\n\n".......].... |
11180 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | .},.....{......."cell_type":."co |
111a0 | 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 | de",......."execution_count":.nu |
111c0 | 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ll,......."metadata":.{......... |
111e0 | 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 | "collapsed":.false.......},..... |
11200 | 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | .."outputs":.[],......."source": |
11220 | 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 45 4d 44 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 65 | .[........."#.EMDTransport\not_e |
11240 | 6d 64 20 3d 20 6f 74 2e 64 61 2e 45 4d 44 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e 6f 74 5f 65 6d | md.=.ot.da.EMDTransport()\not_em |
11260 | 64 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 65 | d.fit(Xs=Xs,.Xt=Xt)\ntransp_Xs_e |
11280 | 6d 64 20 3d 20 6f 74 5f 65 6d 64 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 49 6d | md.=.ot_emd.transform(Xs=X1)\nIm |
112a0 | 61 67 65 5f 65 6d 64 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 | age_emd.=.minmax(mat2im(transp_X |
112c0 | 73 5f 65 6d 64 2c 20 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 54 | s_emd,.I1.shape))\n\n#.SinkhornT |
112e0 | 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 64 61 2e 53 69 | ransport\not_sinkhorn.=.ot.da.Si |
11300 | 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f 74 5f | nkhornTransport(reg_e=1e-1)\not_ |
11320 | 73 69 6e 6b 68 6f 72 6e 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 74 72 61 6e | sinkhorn.fit(Xs=Xs,.Xt=Xt)\ntran |
11340 | 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 74 72 61 | sp_Xs_sinkhorn.=.ot_sinkhorn.tra |
11360 | 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 49 6d 61 67 65 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 | nsform(Xs=X1)\nImage_sinkhorn.=. |
11380 | 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e | minmax(mat2im(transp_Xs_sinkhorn |
113a0 | 2c 20 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 | ,.I1.shape))\n\not_mapping_linea |
113c0 | 72 20 3d 20 6f 74 2e 64 61 2e 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f 72 74 28 5c 6e 20 20 20 | r.=.ot.da.MappingTransport(\n... |
113e0 | 20 6d 75 3d 31 65 30 2c 20 65 74 61 3d 31 65 2d 38 2c 20 62 69 61 73 3d 54 72 75 65 2c 20 6d 61 | .mu=1e0,.eta=1e-8,.bias=True,.ma |
11400 | 78 5f 69 74 65 72 3d 32 30 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 5f 6d 61 70 | x_iter=20,.verbose=True)\not_map |
11420 | 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c | ping_linear.fit(Xs=Xs,.Xt=Xt)\n\ |
11440 | 6e 58 31 74 6c 20 3d 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 74 72 61 6e 73 66 | nX1tl.=.ot_mapping_linear.transf |
11460 | 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 49 6d 61 67 65 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 | orm(Xs=X1)\nImage_mapping_linear |
11480 | 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 6c 2c 20 49 31 2e 73 68 61 70 65 29 | .=.minmax(mat2im(X1tl,.I1.shape) |
114a0 | 29 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 20 3d 20 6f 74 2e 64 61 | )\n\not_mapping_gaussian.=.ot.da |
114c0 | 2e 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f 72 74 28 5c 6e 20 20 20 20 6d 75 3d 31 65 30 2c 20 | .MappingTransport(\n....mu=1e0,. |
114e0 | 65 74 61 3d 31 65 2d 32 2c 20 73 69 67 6d 61 3d 31 2c 20 62 69 61 73 3d 46 61 6c 73 65 2c 20 6d | eta=1e-2,.sigma=1,.bias=False,.m |
11500 | 61 78 5f 69 74 65 72 3d 31 30 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 5f 6d 61 | ax_iter=10,.verbose=True)\not_ma |
11520 | 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 | pping_gaussian.fit(Xs=Xs,.Xt=Xt) |
11540 | 5c 6e 5c 6e 58 31 74 6e 20 3d 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e 74 | \n\nX1tn.=.ot_mapping_gaussian.t |
11560 | 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 20 20 23 20 75 73 65 20 74 68 65 20 65 73 74 69 6d | ransform(Xs=X1)..#.use.the.estim |
11580 | 61 74 65 64 20 6d 61 70 70 69 6e 67 5c 6e 49 6d 61 67 65 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 | ated.mapping\nImage_mapping_gaus |
115a0 | 73 69 61 6e 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 6e 2c 20 49 31 2e 73 68 | sian.=.minmax(mat2im(X1tn,.I1.sh |
115c0 | 61 70 65 29 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 | ape))".......].....},.....{..... |
115e0 | 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 | .."cell_type":."markdown",...... |
11600 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | ."metadata":.{},......."source": |
11620 | 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 6f 72 69 67 69 6e 61 6c 20 69 6d 61 67 65 73 | .[........."Plot.original.images |
11640 | 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 | \n--------------------\n\n"..... |
11660 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
11680 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
116a0 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
116c0 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
116e0 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
11700 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 | ource":.[........."pl.figure(1,. |
11720 | 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c | figsize=(6.4,.3))\npl.subplot(1, |
11740 | 20 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 | .2,.1)\npl.imshow(I1)\npl.axis(' |
11760 | 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c | off')\npl.title('Image.1')\n\npl |
11780 | 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 | .subplot(1,.2,.2)\npl.imshow(I2) |
117a0 | 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 | \npl.axis('off')\npl.title('Imag |
117c0 | 65 20 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 | e.2')\npl.tight_layout()"....... |
117e0 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
11800 | 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | :."markdown",......."metadata":. |
11820 | 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 | {},......."source":.[........."P |
11840 | 6c 6f 74 20 70 69 78 65 6c 20 76 61 6c 75 65 73 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c 6e 2d | lot.pixel.values.distribution\n- |
11860 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c | -----------------------------\n\ |
11880 | 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | n".......].....},.....{......."c |
118a0 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 | ell_type":."code",......."execut |
118c0 | 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ion_count":.null,......."metadat |
118e0 | 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 | a":.{........."collapsed":.false |
11900 | 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 | .......},......."outputs":.[],.. |
11920 | 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 | ....."source":.[........."pl.fig |
11940 | 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 35 29 29 5c 6e 5c 6e 70 6c 2e 73 | ure(2,.figsize=(6.4,.5))\n\npl.s |
11960 | 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a | ubplot(1,.2,.1)\npl.scatter(Xs[: |
11980 | 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 32 5d 2c 20 63 3d 58 73 29 5c 6e 70 6c 2e 61 78 69 73 28 5b | ,.0],.Xs[:,.2],.c=Xs)\npl.axis([ |
119a0 | 30 2c 20 31 2c 20 30 2c 20 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 5c 6e | 0,.1,.0,.1])\npl.xlabel('Red')\n |
119c0 | 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 | pl.ylabel('Blue')\npl.title('Ima |
119e0 | 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 | ge.1')\n\npl.subplot(1,.2,.2)\np |
11a00 | 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 32 5d 2c 20 63 3d | l.scatter(Xt[:,.0],.Xt[:,.2],.c= |
11a20 | 58 74 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 20 31 2c 20 30 2c 20 31 5d 29 5c 6e 70 6c 2e 78 | Xt)\npl.axis([0,.1,.0,.1])\npl.x |
11a40 | 6c 61 62 65 6c 28 27 52 65 64 27 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c | label('Red')\npl.ylabel('Blue')\ |
11a60 | 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c | npl.title('Image.2')\npl.tight_l |
11a80 | 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | ayout()".......].....},.....{... |
11aa0 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 | ...."cell_type":."markdown",.... |
11ac0 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ..."metadata":.{},......."source |
11ae0 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 69 | ":.[........."Plot.transformed.i |
11b00 | 6d 61 67 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e | mages\n-----------------------\n |
11b20 | 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | \n".......].....},.....{......." |
11b40 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 | cell_type":."code",......."execu |
11b60 | 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | tion_count":.null,......."metada |
11b80 | 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 | ta":.{........."collapsed":.fals |
11ba0 | 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a | e.......},......."outputs":.[],. |
11bc0 | 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 | ......"source":.[........."pl.fi |
11be0 | 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 35 29 29 5c 6e 5c 6e 70 6c 2e 73 | gure(2,.figsize=(10,.5))\n\npl.s |
11c00 | 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e | ubplot(2,.3,.1)\npl.imshow(I1)\n |
11c20 | 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 27 | pl.axis('off')\npl.title('Im..1' |
11c40 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 34 29 5c 6e 70 6c 2e 69 6d 73 | )\n\npl.subplot(2,.3,.4)\npl.ims |
11c60 | 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c | how(I2)\npl.axis('off')\npl.titl |
11c80 | 65 28 27 49 6d 2e 20 32 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 32 | e('Im..2')\n\npl.subplot(2,.3,.2 |
11ca0 | 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 6d 61 67 65 5f 65 6d 64 29 5c 6e 70 6c 2e 61 78 69 73 | )\npl.imshow(Image_emd)\npl.axis |
11cc0 | 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 6d 64 54 72 61 6e 73 70 6f 72 74 27 | ('off')\npl.title('EmdTransport' |
11ce0 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 35 29 5c 6e 70 6c 2e 69 6d 73 | )\n\npl.subplot(2,.3,.5)\npl.ims |
11d00 | 68 6f 77 28 49 6d 61 67 65 5f 73 69 6e 6b 68 6f 72 6e 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 | how(Image_sinkhorn)\npl.axis('of |
11d20 | 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 | f')\npl.title('SinkhornTransport |
11d40 | 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d | ')\n\npl.subplot(2,.3,.3)\npl.im |
11d60 | 73 68 6f 77 28 49 6d 61 67 65 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 29 5c 6e 70 6c 2e 61 | show(Image_mapping_linear)\npl.a |
11d80 | 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 70 70 69 6e 67 54 72 61 | xis('off')\npl.title('MappingTra |
11da0 | 6e 73 70 6f 72 74 20 28 6c 69 6e 65 61 72 29 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 | nsport.(linear)')\n\npl.subplot( |
11dc0 | 32 2c 20 33 2c 20 36 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 6d 61 67 65 5f 6d 61 70 70 69 6e | 2,.3,.6)\npl.imshow(Image_mappin |
11de0 | 67 5f 67 61 75 73 73 69 61 6e 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e | g_gaussian)\npl.axis('off')\npl. |
11e00 | 74 69 74 6c 65 28 27 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f 72 74 20 28 67 61 75 73 73 69 61 | title('MappingTransport.(gaussia |
11e20 | 6e 29 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 | n)')\npl.tight_layout()\n\npl.sh |
11e40 | 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 | ow()".......].....}...],..."meta |
11e60 | 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 | data":.{....."kernelspec":.{.... |
11e80 | 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 | ..."display_name":."Python.3",.. |
11ea0 | 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 | ....."language":."python",...... |
11ec0 | 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c | ."name":."python3".....},....."l |
11ee0 | 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 | anguage_info":.{......."codemirr |
11f00 | 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 | or_mode":.{........."name":."ipy |
11f20 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 | thon",........."version":.3..... |
11f40 | 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 | ..},......."file_extension":.".p |
11f60 | 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 | y",......."mimetype":."text/x-py |
11f80 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 | thon",......."name":."python",.. |
11fa0 | 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 | ....."nbconvert_exporter":."pyth |
11fc0 | 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 | on",......."pygments_lexer":."ip |
11fe0 | 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 37 | ython3",......."version":."3.6.7 |
12000 | 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 | ".....}...},..."nbformat":.4,... |
12020 | 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 ec | "nbformat_minor":.0.}PK......... |
12040 | 45 43 4d c7 ed 71 d0 e2 0d 00 00 e2 0d 00 00 22 00 00 00 70 6c 6f 74 5f 66 72 65 65 5f 73 75 70 | ECM..q........."...plot_free_sup |
12060 | 70 6f 72 74 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 | port_barycenter.ipynb{..."cells" |
12080 | 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | :.[.....{......."cell_type":."co |
120a0 | 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 | de",......."execution_count":.nu |
120c0 | 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ll,......."metadata":.{......... |
120e0 | 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 | "collapsed":.false.......},..... |
12100 | 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | .."outputs":.[],......."source": |
12120 | 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a | .[........."%matplotlib.inline". |
12140 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
12160 | 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 | _type":."markdown",......."metad |
12180 | 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | ata":.{},......."source":.[..... |
121a0 | 20 20 20 20 22 5c 6e 23 20 32 44 20 66 72 65 65 20 73 75 70 70 6f 72 74 20 57 61 73 73 65 72 73 | ...."\n#.2D.free.support.Wassers |
121c0 | 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 73 20 6f 66 20 64 69 73 74 72 69 62 75 74 69 6f 6e | tein.barycenters.of.distribution |
121e0 | 73 5c 6e 5c 6e 5c 6e 49 6c 6c 75 73 74 72 61 74 69 6f 6e 20 6f 66 20 32 44 20 57 61 73 73 65 72 | s\n\n\nIllustration.of.2D.Wasser |
12200 | 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 73 20 69 66 20 64 69 73 63 72 69 62 75 74 69 6f | stein.barycenters.if.discributio |
12220 | 6e 73 20 74 68 61 74 20 61 72 65 20 77 65 69 67 68 74 65 64 5c 6e 73 75 6d 20 6f 66 20 64 69 72 | ns.that.are.weighted\nsum.of.dir |
12240 | 61 63 73 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b | acs.\n\n\n".......].....},.....{ |
12260 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 | ......."cell_type":."code",..... |
12280 | 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 | .."execution_count":.null,...... |
122a0 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 | ."metadata":.{........."collapse |
122c0 | 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 | d":.false.......},......."output |
122e0 | 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | s":.[],......."source":.[....... |
12300 | 20 20 22 23 20 41 75 74 68 6f 72 3a 20 56 69 76 69 65 6e 20 53 65 67 75 79 20 3c 76 69 76 69 65 | .."#.Author:.Vivien.Seguy.<vivie |
12320 | 6e 2e 73 65 67 75 79 40 69 69 70 2e 69 73 74 2e 69 2e 6b 79 6f 74 6f 2d 75 2e 61 63 2e 6a 70 3e | n.seguy@iip.ist.i.kyoto-u.ac.jp> |
12340 | 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 | \n#\n#.License:.MIT.License\n\ni |
12360 | 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f | mport.numpy.as.np\nimport.matplo |
12380 | 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 | tlib.pylab.as.pl\nimport.ot".... |
123a0 | 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 | ...].....},.....{......."cell_ty |
123c0 | 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | pe":."markdown",......."metadata |
123e0 | 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 | ":.{},......."source":.[........ |
12400 | 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c | ."Generate.data\n.-------------\ |
12420 | 6e 25 25 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 64 61 74 61 20 67 65 6e 65 72 61 74 69 | n%%.parameters.and.data.generati |
12440 | 6f 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 | on\n\n".......].....},.....{.... |
12460 | 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 | ..."cell_type":."code",......."e |
12480 | 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 | xecution_count":.null,......."me |
124a0 | 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 | tadata":.{........."collapsed":. |
124c0 | 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 | false.......},......."outputs":. |
124e0 | 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e | [],......."source":.[........."N |
12500 | 20 3d 20 33 5c 6e 64 20 3d 20 32 5c 6e 6d 65 61 73 75 72 65 73 5f 6c 6f 63 61 74 69 6f 6e 73 20 | .=.3\nd.=.2\nmeasures_locations. |
12520 | 3d 20 5b 5d 5c 6e 6d 65 61 73 75 72 65 73 5f 77 65 69 67 68 74 73 20 3d 20 5b 5d 5c 6e 5c 6e 66 | =.[]\nmeasures_weights.=.[]\n\nf |
12540 | 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 4e 29 3a 5c 6e 5c 6e 20 20 20 20 6e 5f 69 20 3d 20 6e | or.i.in.range(N):\n\n....n_i.=.n |
12560 | 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 6c 6f 77 3d 31 2c 20 68 69 67 68 3d 32 30 29 | p.random.randint(low=1,.high=20) |
12580 | 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 20 20 20 20 6d 75 5f 69 20 3d 20 6e 70 2e | ..#.nb.samples\n\n....mu_i.=.np. |
125a0 | 72 61 6e 64 6f 6d 2e 6e 6f 72 6d 61 6c 28 30 2e 2c 20 34 2e 2c 20 28 64 2c 29 29 20 20 23 20 47 | random.normal(0.,.4.,.(d,))..#.G |
125c0 | 61 75 73 73 69 61 6e 20 6d 65 61 6e 5c 6e 5c 6e 20 20 20 20 41 5f 69 20 3d 20 6e 70 2e 72 61 6e | aussian.mean\n\n....A_i.=.np.ran |
125e0 | 64 6f 6d 2e 72 61 6e 64 28 64 2c 20 64 29 5c 6e 20 20 20 20 63 6f 76 5f 69 20 3d 20 6e 70 2e 64 | dom.rand(d,.d)\n....cov_i.=.np.d |
12600 | 6f 74 28 41 5f 69 2c 20 41 5f 69 2e 74 72 61 6e 73 70 6f 73 65 28 29 29 20 20 23 20 47 61 75 73 | ot(A_i,.A_i.transpose())..#.Gaus |
12620 | 73 69 61 6e 20 63 6f 76 61 72 69 61 6e 63 65 20 6d 61 74 72 69 78 5c 6e 5c 6e 20 20 20 20 78 5f | sian.covariance.matrix\n\n....x_ |
12640 | 69 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f | i.=.ot.datasets.make_2D_samples_ |
12660 | 67 61 75 73 73 28 6e 5f 69 2c 20 6d 75 5f 69 2c 20 63 6f 76 5f 69 29 20 20 23 20 44 69 72 61 63 | gauss(n_i,.mu_i,.cov_i)..#.Dirac |
12680 | 20 6c 6f 63 61 74 69 6f 6e 73 5c 6e 20 20 20 20 62 5f 69 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e | .locations\n....b_i.=.np.random. |
126a0 | 75 6e 69 66 6f 72 6d 28 30 2e 2c 20 31 2e 2c 20 28 6e 5f 69 2c 29 29 5c 6e 20 20 20 20 62 5f 69 | uniform(0.,.1.,.(n_i,))\n....b_i |
126c0 | 20 3d 20 62 5f 69 20 2f 20 6e 70 2e 73 75 6d 28 62 5f 69 29 20 20 23 20 44 69 72 61 63 20 77 65 | .=.b_i./.np.sum(b_i)..#.Dirac.we |
126e0 | 69 67 68 74 73 5c 6e 5c 6e 20 20 20 20 6d 65 61 73 75 72 65 73 5f 6c 6f 63 61 74 69 6f 6e 73 2e | ights\n\n....measures_locations. |
12700 | 61 70 70 65 6e 64 28 78 5f 69 29 5c 6e 20 20 20 20 6d 65 61 73 75 72 65 73 5f 77 65 69 67 68 74 | append(x_i)\n....measures_weight |
12720 | 73 2e 61 70 70 65 6e 64 28 62 5f 69 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | s.append(b_i)".......].....},... |
12740 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
12760 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
12780 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 66 72 65 65 | source":.[........."Compute.free |
127a0 | 20 73 75 70 70 6f 72 74 20 62 61 72 79 63 65 6e 74 65 72 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .support.barycenter\n----------- |
127c0 | 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 | --\n\n".......].....},.....{.... |
127e0 | 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 | ..."cell_type":."code",......."e |
12800 | 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 | xecution_count":.null,......."me |
12820 | 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 | tadata":.{........."collapsed":. |
12840 | 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 | false.......},......."outputs":. |
12860 | 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6b | [],......."source":.[........."k |
12880 | 20 3d 20 31 30 20 20 23 20 6e 75 6d 62 65 72 20 6f 66 20 44 69 72 61 63 73 20 6f 66 20 74 68 65 | .=.10..#.number.of.Diracs.of.the |
128a0 | 20 62 61 72 79 63 65 6e 74 65 72 5c 6e 58 5f 69 6e 69 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e | .barycenter\nX_init.=.np.random. |
128c0 | 6e 6f 72 6d 61 6c 28 30 2e 2c 20 31 2e 2c 20 28 6b 2c 20 64 29 29 20 20 23 20 69 6e 69 74 69 61 | normal(0.,.1.,.(k,.d))..#.initia |
128e0 | 6c 20 44 69 72 61 63 20 6c 6f 63 61 74 69 6f 6e 73 5c 6e 62 20 3d 20 6e 70 2e 6f 6e 65 73 28 28 | l.Dirac.locations\nb.=.np.ones(( |
12900 | 6b 2c 29 29 20 2f 20 6b 20 20 23 20 77 65 69 67 68 74 73 20 6f 66 20 74 68 65 20 62 61 72 79 63 | k,))./.k..#.weights.of.the.baryc |
12920 | 65 6e 74 65 72 20 28 69 74 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 6f 70 74 69 6d 69 7a 65 64 2c | enter.(it.will.not.be.optimized, |
12940 | 20 6f 6e 6c 79 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 73 20 61 72 65 20 6f 70 74 69 6d 69 7a 65 | .only.the.locations.are.optimize |
12960 | 64 29 5c 6e 5c 6e 58 20 3d 20 6f 74 2e 6c 70 2e 66 72 65 65 5f 73 75 70 70 6f 72 74 5f 62 61 72 | d)\n\nX.=.ot.lp.free_support_bar |
12980 | 79 63 65 6e 74 65 72 28 6d 65 61 73 75 72 65 73 5f 6c 6f 63 61 74 69 6f 6e 73 2c 20 6d 65 61 73 | ycenter(measures_locations,.meas |
129a0 | 75 72 65 73 5f 77 65 69 67 68 74 73 2c 20 58 5f 69 6e 69 74 2c 20 62 29 22 0a 20 20 20 20 20 20 | ures_weights,.X_init,.b)"....... |
129c0 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
129e0 | 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | :."markdown",......."metadata":. |
12a00 | 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 | {},......."source":.[........."P |
12a20 | 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d | lot.data\n---------\n\n".......] |
12a40 | 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a | .....},.....{......."cell_type": |
12a60 | 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 | ."code",......."execution_count" |
12a80 | 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 | :.null,......."metadata":.{..... |
12aa0 | 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a | ...."collapsed":.false.......},. |
12ac0 | 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 | ......"outputs":.[],......."sour |
12ae0 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 66 6f | ce":.[........."pl.figure(1)\nfo |
12b00 | 72 20 28 78 5f 69 2c 20 62 5f 69 29 20 69 6e 20 7a 69 70 28 6d 65 61 73 75 72 65 73 5f 6c 6f 63 | r.(x_i,.b_i).in.zip(measures_loc |
12b20 | 61 74 69 6f 6e 73 2c 20 6d 65 61 73 75 72 65 73 5f 77 65 69 67 68 74 73 29 3a 5c 6e 20 20 20 20 | ations,.measures_weights):\n.... |
12b40 | 63 6f 6c 6f 72 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 6c 6f 77 3d 31 2c | color.=.np.random.randint(low=1, |
12b60 | 20 68 69 67 68 3d 31 30 20 2a 20 4e 29 5c 6e 20 20 20 20 70 6c 2e 73 63 61 74 74 65 72 28 78 5f | .high=10.*.N)\n....pl.scatter(x_ |
12b80 | 69 5b 3a 2c 20 30 5d 2c 20 78 5f 69 5b 3a 2c 20 31 5d 2c 20 73 3d 62 20 2a 20 31 30 30 30 2c 20 | i[:,.0],.x_i[:,.1],.s=b.*.1000,. |
12ba0 | 6c 61 62 65 6c 3d 27 69 6e 70 75 74 20 6d 65 61 73 75 72 65 27 29 5c 6e 70 6c 2e 73 63 61 74 74 | label='input.measure')\npl.scatt |
12bc0 | 65 72 28 58 5b 3a 2c 20 30 5d 2c 20 58 5b 3a 2c 20 31 5d 2c 20 73 3d 62 20 2a 20 31 30 30 30 2c | er(X[:,.0],.X[:,.1],.s=b.*.1000, |
12be0 | 20 63 3d 27 62 6c 61 63 6b 27 2c 20 6d 61 72 6b 65 72 3d 27 5e 27 2c 20 6c 61 62 65 6c 3d 27 32 | .c='black',.marker='^',.label='2 |
12c00 | 2d 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 27 29 5c 6e 70 6c 2e 74 69 | -Wasserstein.barycenter')\npl.ti |
12c20 | 74 6c 65 28 27 44 61 74 61 20 6d 65 61 73 75 72 65 73 20 61 6e 64 20 74 68 65 69 72 20 62 61 72 | tle('Data.measures.and.their.bar |
12c40 | 79 63 65 6e 74 65 72 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e | ycenter')\npl.legend(loc=0)\npl. |
12c60 | 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 | show()".......].....}...],..."me |
12c80 | 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 | tadata":.{....."kernelspec":.{.. |
12ca0 | 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c | ....."display_name":."Python.3", |
12cc0 | 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 | ......."language":."python",.... |
12ce0 | 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | ..."name":."python3".....},..... |
12d00 | 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 | "language_info":.{......."codemi |
12d20 | 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 | rror_mode":.{........."name":."i |
12d40 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 | python",........."version":.3... |
12d60 | 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 | ....},......."file_extension":." |
12d80 | 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d | .py",......."mimetype":."text/x- |
12da0 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c | python",......."name":."python", |
12dc0 | 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 | ......."nbconvert_exporter":."py |
12de0 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 | thon",......."pygments_lexer":." |
12e00 | 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 | ipython3",......."version":."3.6 |
12e20 | 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a | .5".....}...},..."nbformat":.4,. |
12e40 | 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 | .."nbformat_minor":.0.}PK....... |
12e60 | 00 05 72 d9 4e 76 0a 6d b5 0e 1a 00 00 0e 1a 00 00 0e 00 00 00 70 6c 6f 74 5f 66 67 77 2e 69 70 | ..r.Nv.m.............plot_fgw.ip |
12e80 | 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | ynb{..."cells":.[.....{......."c |
12ea0 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 | ell_type":."code",......."execut |
12ec0 | 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ion_count":.null,......."metadat |
12ee0 | 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 | a":.{........."collapsed":.false |
12f00 | 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 | .......},......."outputs":.[],.. |
12f20 | 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c | ....."source":.[........."%matpl |
12f40 | 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | otlib.inline".......].....},.... |
12f60 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 | .{......."cell_type":."markdown" |
12f80 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 | ,......."metadata":.{},......."s |
12fa0 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 50 6c 6f 74 20 46 75 73 65 | ource":.[........."\n#.Plot.Fuse |
12fc0 | 64 2d 67 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 | d-gromov-Wasserstein\n\n\nThis.e |
12fe0 | 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 | xample.illustrates.the.computati |
13000 | 6f 6e 20 6f 66 20 46 47 57 20 66 6f 72 20 31 44 20 6d 65 61 73 75 72 65 73 5b 31 38 5d 2e 5c 6e | on.of.FGW.for.1D.measures[18].\n |
13020 | 5c 6e 2e 2e 20 5b 31 38 5d 20 56 61 79 65 72 20 54 69 74 6f 75 61 6e 2c 20 43 68 61 70 65 6c 20 | \n...[18].Vayer.Titouan,.Chapel. |
13040 | 4c 61 65 74 69 74 69 61 2c 20 46 6c 61 6d 61 72 79 20 52 7b 27 65 7d 6d 69 2c 20 54 61 76 65 6e | Laetitia,.Flamary.R{'e}mi,.Taven |
13060 | 61 72 64 20 52 6f 6d 61 69 6e 5c 6e 20 20 20 20 20 20 61 6e 64 20 43 6f 75 72 74 79 20 4e 69 63 | ard.Romain\n......and.Courty.Nic |
13080 | 6f 6c 61 73 5c 6e 20 20 20 20 5c 22 4f 70 74 69 6d 61 6c 20 54 72 61 6e 73 70 6f 72 74 20 66 6f | olas\n....\"Optimal.Transport.fo |
130a0 | 72 20 73 74 72 75 63 74 75 72 65 64 20 64 61 74 61 20 77 69 74 68 20 61 70 70 6c 69 63 61 74 69 | r.structured.data.with.applicati |
130c0 | 6f 6e 20 6f 6e 20 67 72 61 70 68 73 5c 22 5c 6e 20 20 20 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 | on.on.graphs\"\n....Internationa |
130e0 | 6c 20 43 6f 6e 66 65 72 65 6e 63 65 20 6f 6e 20 4d 61 63 68 69 6e 65 20 4c 65 61 72 6e 69 6e 67 | l.Conference.on.Machine.Learning |
13100 | 20 28 49 43 4d 4c 29 2e 20 32 30 31 39 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 | .(ICML)..2019.\n\n\n".......]... |
13120 | 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 | ..},.....{......."cell_type":."c |
13140 | 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e | ode",......."execution_count":.n |
13160 | 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 | ull,......."metadata":.{........ |
13180 | 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 | ."collapsed":.false.......},.... |
131a0 | 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 | ..."outputs":.[],......."source" |
131c0 | 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 54 69 74 6f 75 61 6e 20 56 | :.[........."#.Author:.Titouan.V |
131e0 | 61 79 65 72 20 3c 74 69 74 6f 75 61 6e 2e 76 61 79 65 72 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 | ayer.<titouan.vayer@irisa.fr>\n# |
13200 | 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f | \n#.License:.MIT.License\n\nimpo |
13220 | 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 5c 6e 69 6d 70 6f | rt.matplotlib.pyplot.as.pl\nimpo |
13240 | 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 | rt.numpy.as.np\nimport.ot\nfrom. |
13260 | 6f 74 2e 67 72 6f 6d 6f 76 20 69 6d 70 6f 72 74 20 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 | ot.gromov.import.gromov_wasserst |
13280 | 65 69 6e 2c 20 66 75 73 65 64 5f 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 22 0a 20 | ein,.fused_gromov_wasserstein".. |
132a0 | 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f | .....].....},.....{......."cell_ |
132c0 | 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | type":."markdown",......."metada |
132e0 | 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 | ta":.{},......."source":.[...... |
13300 | 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e | ..."Generate.data\n---------\n\n |
13320 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
13340 | 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 | ll_type":."code",......."executi |
13360 | 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | on_count":.null,......."metadata |
13380 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a | ":.{........."collapsed":.false. |
133a0 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 | ......},......."outputs":.[],... |
133c0 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 61 72 | ...."source":.[........."#%%.par |
133e0 | 61 6d 65 74 65 72 73 5c 6e 23 20 57 65 20 63 72 65 61 74 65 20 74 77 6f 20 31 44 20 72 61 6e 64 | ameters\n#.We.create.two.1D.rand |
13400 | 6f 6d 20 6d 65 61 73 75 72 65 73 5c 6e 6e 20 3d 20 32 30 20 20 23 20 6e 75 6d 62 65 72 20 6f 66 | om.measures\nn.=.20..#.number.of |
13420 | 20 70 6f 69 6e 74 73 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 64 69 73 74 72 69 62 75 74 69 6f | .points.in.the.first.distributio |
13440 | 6e 5c 6e 6e 32 20 3d 20 33 30 20 20 23 20 6e 75 6d 62 65 72 20 6f 66 20 70 6f 69 6e 74 73 20 69 | n\nn2.=.30..#.number.of.points.i |
13460 | 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c 6e 73 69 67 20 3d | n.the.second.distribution\nsig.= |
13480 | 20 31 20 20 23 20 73 74 64 20 6f 66 20 66 69 72 73 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c | .1..#.std.of.first.distribution\ |
134a0 | 6e 73 69 67 32 20 3d 20 30 2e 31 20 20 23 20 73 74 64 20 6f 66 20 73 65 63 6f 6e 64 20 64 69 73 | nsig2.=.0.1..#.std.of.second.dis |
134c0 | 74 72 69 62 75 74 69 6f 6e 5c 6e 5c 6e 6e 70 2e 72 61 6e 64 6f 6d 2e 73 65 65 64 28 30 29 5c 6e | tribution\n\nnp.random.seed(0)\n |
134e0 | 5c 6e 70 68 69 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 29 5b 3a 2c 20 4e 6f 6e 65 5d 5c 6e 78 | \nphi.=.np.arange(n)[:,.None]\nx |
13500 | 73 20 3d 20 70 68 69 20 2b 20 73 69 67 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 | s.=.phi.+.sig.*.np.random.randn( |
13520 | 6e 2c 20 31 29 5c 6e 79 73 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 6e 70 2e 6f 6e 65 73 28 28 | n,.1)\nys.=.np.vstack((np.ones(( |
13540 | 6e 20 2f 2f 20 32 2c 20 31 29 29 2c 20 30 20 2a 20 6e 70 2e 6f 6e 65 73 28 28 6e 20 2f 2f 20 32 | n.//.2,.1)),.0.*.np.ones((n.//.2 |
13560 | 2c 20 31 29 29 29 29 20 2b 20 73 69 67 32 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e | ,.1)))).+.sig2.*.np.random.randn |
13580 | 28 6e 2c 20 31 29 5c 6e 5c 6e 70 68 69 32 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 32 29 5b 3a | (n,.1)\n\nphi2.=.np.arange(n2)[: |
135a0 | 2c 20 4e 6f 6e 65 5d 5c 6e 78 74 20 3d 20 70 68 69 32 20 2b 20 73 69 67 20 2a 20 6e 70 2e 72 61 | ,.None]\nxt.=.phi2.+.sig.*.np.ra |
135c0 | 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 32 2c 20 31 29 5c 6e 79 74 20 3d 20 6e 70 2e 76 73 74 61 63 | ndom.randn(n2,.1)\nyt.=.np.vstac |
135e0 | 6b 28 28 6e 70 2e 6f 6e 65 73 28 28 6e 32 20 2f 2f 20 32 2c 20 31 29 29 2c 20 30 20 2a 20 6e 70 | k((np.ones((n2.//.2,.1)),.0.*.np |
13600 | 2e 6f 6e 65 73 28 28 6e 32 20 2f 2f 20 32 2c 20 31 29 29 29 29 20 2b 20 73 69 67 32 20 2a 20 6e | .ones((n2.//.2,.1)))).+.sig2.*.n |
13620 | 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 32 2c 20 31 29 5c 6e 79 74 20 3d 20 79 74 5b 3a | p.random.randn(n2,.1)\nyt.=.yt[: |
13640 | 3a 2d 31 2c 20 3a 5d 5c 6e 5c 6e 70 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 29 5c 6e 71 20 3d 20 6f | :-1,.:]\n\np.=.ot.unif(n)\nq.=.o |
13660 | 74 2e 75 6e 69 66 28 6e 32 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b | t.unif(n2)".......].....},.....{ |
13680 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a | ......."cell_type":."markdown",. |
136a0 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......"metadata":.{},......."sou |
136c0 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d | rce":.[........."Plot.data\n---- |
136e0 | 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | -----\n\n".......].....},.....{. |
13700 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 | ......"cell_type":."code",...... |
13720 | 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 | ."execution_count":.null,....... |
13740 | 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 | "metadata":.{........."collapsed |
13760 | 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 | ":.false.......},......."outputs |
13780 | 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 | ":.[],......."source":.[........ |
137a0 | 20 22 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e | ."#%%.plot.the.distributions\n\n |
137c0 | 70 6c 2e 63 6c 6f 73 65 28 31 30 29 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 30 2c 20 28 37 2c 20 | pl.close(10)\npl.figure(10,.(7,. |
137e0 | 37 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 31 29 5c 6e 5c 6e 70 6c | 7))\n\npl.subplot(2,.1,.1)\n\npl |
13800 | 2e 73 63 61 74 74 65 72 28 79 73 2c 20 78 73 2c 20 63 3d 70 68 69 2c 20 73 3d 37 30 29 5c 6e 70 | .scatter(ys,.xs,.c=phi,.s=70)\np |
13820 | 6c 2e 79 6c 61 62 65 6c 28 27 46 65 61 74 75 72 65 20 76 61 6c 75 65 20 61 27 2c 20 66 6f 6e 74 | l.ylabel('Feature.value.a',.font |
13840 | 73 69 7a 65 3d 32 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 24 5c 5c 6d 75 3d 5c 5c 73 75 6d 5f | size=20)\npl.title('$\\mu=\\sum_ |
13860 | 69 20 5c 5c 64 65 6c 74 61 5f 7b 78 5f 69 2c 61 5f 69 7d 24 27 2c 20 66 6f 6e 74 73 69 7a 65 3d | i.\\delta_{x_i,a_i}$',.fontsize= |
13880 | 32 35 2c 20 75 73 65 74 65 78 3d 54 72 75 65 2c 20 79 3d 31 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 | 25,.usetex=True,.y=1)\npl.xticks |
138a0 | 28 28 29 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 28 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 | (())\npl.yticks(())\npl.subplot( |
138c0 | 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 79 74 2c 20 78 74 2c 20 63 3d 70 | 2,.1,.2)\npl.scatter(yt,.xt,.c=p |
138e0 | 68 69 32 2c 20 73 3d 37 30 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 27 63 6f 6f 72 64 69 6e 61 74 | hi2,.s=70)\npl.xlabel('coordinat |
13900 | 65 73 20 78 2f 79 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 35 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c | es.x/y',.fontsize=25)\npl.ylabel |
13920 | 28 27 46 65 61 74 75 72 65 20 76 61 6c 75 65 20 62 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 30 29 | ('Feature.value.b',.fontsize=20) |
13940 | 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 24 5c 5c 5c 5c 6e 75 3d 5c 5c 73 75 6d 5f 6a 20 5c 5c 64 65 | \npl.title('$\\\\nu=\\sum_j.\\de |
13960 | 6c 74 61 5f 7b 79 5f 6a 2c 62 5f 6a 7d 24 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 35 2c 20 75 73 | lta_{y_j,b_j}$',.fontsize=25,.us |
13980 | 65 74 65 78 3d 54 72 75 65 2c 20 79 3d 31 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 28 29 29 5c 6e | etex=True,.y=1)\npl.yticks(())\n |
139a0 | 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 | pl.tight_layout()\npl.show()"... |
139c0 | 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 | ....].....},.....{......."cell_t |
139e0 | 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ype":."markdown",......."metadat |
13a00 | 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | a":.{},......."source":.[....... |
13a20 | 20 20 22 43 72 65 61 74 65 20 73 74 72 75 63 74 75 72 65 20 6d 61 74 72 69 63 65 73 20 61 6e 64 | .."Create.structure.matrices.and |
13a40 | 20 61 63 72 6f 73 73 2d 66 65 61 74 75 72 65 20 64 69 73 74 61 6e 63 65 20 6d 61 74 72 69 78 5c | .across-feature.distance.matrix\ |
13a60 | 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 | n---------\n\n".......].....},.. |
13a80 | 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a | ...{......."cell_type":."code",. |
13aa0 | 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 | ......"execution_count":.null,.. |
13ac0 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c | ....."metadata":.{........."coll |
13ae0 | 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 | apsed":.false.......},......."ou |
13b00 | 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | tputs":.[],......."source":.[... |
13b20 | 20 20 20 20 20 20 22 23 25 25 20 53 74 72 75 63 74 75 72 65 20 6d 61 74 72 69 63 65 73 20 61 6e | ......"#%%.Structure.matrices.an |
13b40 | 64 20 61 63 72 6f 73 73 2d 66 65 61 74 75 72 65 73 20 64 69 73 74 61 6e 63 65 20 6d 61 74 72 69 | d.across-features.distance.matri |
13b60 | 78 5c 6e 43 31 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 29 5c 6e 43 32 20 3d 20 6f 74 2e 64 69 73 | x\nC1.=.ot.dist(xs)\nC2.=.ot.dis |
13b80 | 74 28 78 74 29 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 79 73 2c 20 79 74 29 5c 6e 77 31 20 3d | t(xt)\nM.=.ot.dist(ys,.yt)\nw1.= |
13ba0 | 20 6f 74 2e 75 6e 69 66 28 43 31 2e 73 68 61 70 65 5b 30 5d 29 5c 6e 77 32 20 3d 20 6f 74 2e 75 | .ot.unif(C1.shape[0])\nw2.=.ot.u |
13bc0 | 6e 69 66 28 43 32 2e 73 68 61 70 65 5b 30 5d 29 5c 6e 47 6f 74 20 3d 20 6f 74 2e 65 6d 64 28 5b | nif(C2.shape[0])\nGot.=.ot.emd([ |
13be0 | 5d 2c 20 5b 5d 2c 20 4d 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | ],.[],.M)".......].....},.....{. |
13c00 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 | ......"cell_type":."markdown",.. |
13c20 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 | ....."metadata":.{},......."sour |
13c40 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 6d 61 74 72 69 63 65 73 5c 6e 2d | ce":.[........."Plot.matrices\n- |
13c60 | 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | --------\n\n".......].....},.... |
13c80 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
13ca0 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
13cc0 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
13ce0 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
13d00 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
13d20 | 20 20 20 20 22 23 25 25 5c 6e 63 6d 61 70 20 3d 20 27 52 65 64 73 27 5c 6e 70 6c 2e 63 6c 6f 73 | ...."#%%\ncmap.=.'Reds'\npl.clos |
13d40 | 65 28 31 30 29 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 30 2c 20 28 35 2c 20 35 29 29 5c 6e 66 73 | e(10)\npl.figure(10,.(5,.5))\nfs |
13d60 | 20 3d 20 31 35 5c 6e 6c 5f 78 20 3d 20 5b 30 2c 20 35 2c 20 31 30 2c 20 31 35 5d 5c 6e 6c 5f 79 | .=.15\nl_x.=.[0,.5,.10,.15]\nl_y |
13d80 | 20 3d 20 5b 30 2c 20 35 2c 20 31 30 2c 20 31 35 2c 20 32 30 2c 20 32 35 5d 5c 6e 67 73 20 3d 20 | .=.[0,.5,.10,.15,.20,.25]\ngs.=. |
13da0 | 70 6c 2e 47 72 69 64 53 70 65 63 28 35 2c 20 35 29 5c 6e 5c 6e 61 78 31 20 3d 20 70 6c 2e 73 75 | pl.GridSpec(5,.5)\n\nax1.=.pl.su |
13dc0 | 62 70 6c 6f 74 28 67 73 5b 33 3a 2c 20 3a 32 5d 29 5c 6e 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 43 | bplot(gs[3:,.:2])\n\npl.imshow(C |
13de0 | 31 2c 20 63 6d 61 70 3d 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 | 1,.cmap=cmap,.interpolation='nea |
13e00 | 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 24 43 5f 31 24 5c 22 2c 20 66 6f 6e 74 | rest')\npl.title(\"$C_1$\",.font |
13e20 | 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 5c 22 24 6b 24 5c 22 2c 20 66 6f 6e | size=fs)\npl.xlabel(\"$k$\",.fon |
13e40 | 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 69 24 5c 22 2c 20 66 6f | tsize=fs)\npl.ylabel(\"$i$\",.fo |
13e60 | 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 6c 5f 78 29 5c 6e 70 6c 2e 79 | ntsize=fs)\npl.xticks(l_x)\npl.y |
13e80 | 74 69 63 6b 73 28 6c 5f 78 29 5c 6e 5c 6e 61 78 32 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 28 67 | ticks(l_x)\n\nax2.=.pl.subplot(g |
13ea0 | 73 5b 3a 33 2c 20 32 3a 5d 29 5c 6e 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 43 32 2c 20 63 6d 61 70 | s[:3,.2:])\n\npl.imshow(C2,.cmap |
13ec0 | 3d 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c | =cmap,.interpolation='nearest')\ |
13ee0 | 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 24 43 5f 32 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 | npl.title(\"$C_2$\",.fontsize=fs |
13f00 | 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 6c 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 | )\npl.ylabel(\"$l$\",.fontsize=f |
13f20 | 73 29 5c 6e 23 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 6c 24 5c 22 2c 66 6f 6e 74 73 69 7a 65 3d | s)\n#pl.ylabel(\"$l$\",fontsize= |
13f40 | 66 73 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 6c 5f | fs)\npl.xticks(())\npl.yticks(l_ |
13f60 | 79 29 5c 6e 61 78 32 2e 73 65 74 5f 61 73 70 65 63 74 28 27 61 75 74 6f 27 29 5c 6e 5c 6e 61 78 | y)\nax2.set_aspect('auto')\n\nax |
13f80 | 33 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 28 67 73 5b 33 3a 2c 20 32 3a 5d 2c 20 73 68 61 72 65 | 3.=.pl.subplot(gs[3:,.2:],.share |
13fa0 | 78 3d 61 78 32 2c 20 73 68 61 72 65 79 3d 61 78 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c | x=ax2,.sharey=ax1)\npl.imshow(M, |
13fc0 | 20 63 6d 61 70 3d 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 | .cmap=cmap,.interpolation='neare |
13fe0 | 73 74 27 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 6c 5f 78 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 | st')\npl.yticks(l_x)\npl.xticks( |
14000 | 6c 5f 79 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 69 24 5c 22 2c 20 66 6f 6e 74 73 69 7a | l_y)\npl.ylabel(\"$i$\",.fontsiz |
14020 | 65 3d 66 73 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 24 4d 5f 7b 41 42 7d 24 5c 22 2c 20 66 6f | e=fs)\npl.title(\"$M_{AB}$\",.fo |
14040 | 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 5c 22 24 6a 24 5c 22 2c 20 66 | ntsize=fs)\npl.xlabel(\"$j$\",.f |
14060 | 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e | ontsize=fs)\npl.tight_layout()\n |
14080 | 61 78 33 2e 73 65 74 5f 61 73 70 65 63 74 28 27 61 75 74 6f 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 | ax3.set_aspect('auto')\npl.show( |
140a0 | 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | )".......].....},.....{......."c |
140c0 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 | ell_type":."markdown",......."me |
140e0 | 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | tadata":.{},......."source":.[.. |
14100 | 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 46 47 57 2f 47 57 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d | ......."Compute.FGW/GW\n-------- |
14120 | 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 | -\n\n".......].....},.....{..... |
14140 | 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 | .."cell_type":."code",......."ex |
14160 | 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ecution_count":.null,......."met |
14180 | 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 | adata":.{........."collapsed":.f |
141a0 | 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b | alse.......},......."outputs":.[ |
141c0 | 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 | ],......."source":.[........."#% |
141e0 | 25 20 43 6f 6d 70 75 74 69 6e 67 20 46 47 57 20 61 6e 64 20 47 57 5c 6e 61 6c 70 68 61 20 3d 20 | %.Computing.FGW.and.GW\nalpha.=. |
14200 | 31 65 2d 33 5c 6e 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 47 77 67 2c 20 6c 6f 67 77 20 3d 20 66 75 | 1e-3\n\not.tic()\nGwg,.logw.=.fu |
14220 | 73 65 64 5f 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 28 4d 2c 20 43 31 2c 20 43 32 | sed_gromov_wasserstein(M,.C1,.C2 |
14240 | 2c 20 70 2c 20 71 2c 20 6c 6f 73 73 5f 66 75 6e 3d 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 | ,.p,.q,.loss_fun='square_loss',. |
14260 | 61 6c 70 68 61 3d 61 6c 70 68 61 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 20 6c 6f 67 3d 54 | alpha=alpha,.verbose=True,.log=T |
14280 | 72 75 65 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 23 25 72 65 6c 6f 61 64 5f 65 78 74 20 57 | rue)\not.toc()\n\n#%reload_ext.W |
142a0 | 47 57 5c 6e 47 67 2c 20 6c 6f 67 20 3d 20 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e | GW\nGg,.log.=.gromov_wasserstein |
142c0 | 28 43 31 2c 20 43 32 2c 20 70 2c 20 71 2c 20 6c 6f 73 73 5f 66 75 6e 3d 27 73 71 75 61 72 65 5f | (C1,.C2,.p,.q,.loss_fun='square_ |
142e0 | 6c 6f 73 73 27 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 20 6c 6f 67 3d 54 72 75 65 29 22 0a | loss',.verbose=True,.log=True)". |
14300 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
14320 | 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 | _type":."markdown",......."metad |
14340 | 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | ata":.{},......."source":.[..... |
14360 | 20 20 20 20 22 56 69 73 75 61 6c 69 7a 65 20 74 72 61 6e 73 70 6f 72 74 20 6d 61 74 72 69 63 65 | ...."Visualize.transport.matrice |
14380 | 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | s\n---------\n\n".......].....}, |
143a0 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 | .....{......."cell_type":."code" |
143c0 | 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | ,......."execution_count":.null, |
143e0 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f | ......."metadata":.{........."co |
14400 | 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | llapsed":.false.......},......." |
14420 | 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | outputs":.[],......."source":.[. |
14440 | 20 20 20 20 20 20 20 20 22 23 25 25 20 76 69 73 75 20 4f 54 20 6d 61 74 72 69 78 5c 6e 63 6d 61 | ........"#%%.visu.OT.matrix\ncma |
14460 | 70 20 3d 20 27 42 6c 75 65 73 27 5c 6e 66 73 20 3d 20 31 35 5c 6e 70 6c 2e 66 69 67 75 72 65 28 | p.=.'Blues'\nfs.=.15\npl.figure( |
14480 | 32 2c 20 28 31 33 2c 20 35 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f | 2,.(13,.5))\npl.clf()\npl.subplo |
144a0 | 74 28 31 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 6f 74 2c 20 63 6d 61 70 3d | t(1,.3,.1)\npl.imshow(Got,.cmap= |
144c0 | 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e | cmap,.interpolation='nearest')\n |
144e0 | 23 70 6c 2e 78 6c 61 62 65 6c 28 5c 22 24 79 24 5c 22 2c 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c | #pl.xlabel(\"$y$\",fontsize=fs)\ |
14500 | 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 69 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 | npl.ylabel(\"$i$\",.fontsize=fs) |
14520 | 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 57 61 73 | \npl.xticks(())\n\npl.title('Was |
14540 | 73 65 72 73 74 65 69 6e 20 28 24 4d 24 20 6f 6e 6c 79 29 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 | serstein.($M$.only)')\n\npl.subp |
14560 | 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 67 2c 20 63 6d 61 70 | lot(1,.3,.2)\npl.imshow(Gg,.cmap |
14580 | 3d 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c | =cmap,.interpolation='nearest')\ |
145a0 | 6e 70 6c 2e 74 69 74 6c 65 28 27 47 72 6f 6d 6f 76 20 28 24 43 5f 31 2c 43 5f 32 24 20 6f 6e 6c | npl.title('Gromov.($C_1,C_2$.onl |
145c0 | 79 29 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 | y)')\npl.xticks(())\npl.subplot( |
145e0 | 31 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 77 67 2c 20 63 6d 61 70 3d 63 6d | 1,.3,.3)\npl.imshow(Gwg,.cmap=cm |
14600 | 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c | ap,.interpolation='nearest')\npl |
14620 | 2e 74 69 74 6c 65 28 27 46 47 57 20 20 28 24 4d 2b 43 5f 31 2c 43 5f 32 24 29 27 29 5c 6e 5c 6e | .title('FGW..($M+C_1,C_2$)')\n\n |
14640 | 70 6c 2e 78 6c 61 62 65 6c 28 5c 22 24 6a 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c | pl.xlabel(\"$j$\",.fontsize=fs)\ |
14660 | 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 69 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 | npl.ylabel(\"$i$\",.fontsize=fs) |
14680 | 5c 6e 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 | \n\npl.tight_layout()\npl.show() |
146a0 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 | ".......].....}...],..."metadata |
146c0 | 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 | ":.{....."kernelspec":.{......." |
146e0 | 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 | display_name":."Python.3",...... |
14700 | 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 | ."language":."python",......."na |
14720 | 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 | me":."python3".....},....."langu |
14740 | 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d | age_info":.{......."codemirror_m |
14760 | 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e | ode":.{........."name":."ipython |
14780 | 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c | ",........."version":.3.......}, |
147a0 | 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a | ......."file_extension":.".py",. |
147c0 | 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e | ......"mimetype":."text/x-python |
147e0 | 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 | ",......."name":."python",...... |
14800 | 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c | ."nbconvert_exporter":."python", |
14820 | 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f | ......."pygments_lexer":."ipytho |
14840 | 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 38 22 0a 20 20 | n3",......."version":."3.6.8"... |
14860 | 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 | ..}...},..."nbformat":.4,..."nbf |
14880 | 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 35 72 d9 4e 2a | ormat_minor":.0.}PK........5r.N* |
148a0 | a3 88 70 7d 20 00 00 7d 20 00 00 19 00 00 00 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 66 | ..p}...}.......plot_barycenter_f |
148c0 | 67 77 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 | gw.ipynb{..."cells":.[.....{.... |
148e0 | 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 | ..."cell_type":."code",......."e |
14900 | 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 | xecution_count":.null,......."me |
14920 | 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 | tadata":.{........."collapsed":. |
14940 | 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 | false.......},......."outputs":. |
14960 | 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 | [],......."source":.[........."% |
14980 | 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | matplotlib.inline".......].....} |
149a0 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
149c0 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
149e0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 3d 3d 3d 3d 3d 3d | ..."source":.[........."\n====== |
14a00 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 50 6c 6f | ===========================\nPlo |
14a20 | 74 20 67 72 61 70 68 73 27 20 62 61 72 79 63 65 6e 74 65 72 20 75 73 69 6e 67 20 46 47 57 5c 6e | t.graphs'.barycenter.using.FGW\n |
14a40 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ================================ |
14a60 | 3d 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 | =\n\nThis.example.illustrates.th |
14a80 | 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 62 61 72 79 63 65 6e 74 65 72 20 6f 66 20 6c 61 62 65 | e.computation.barycenter.of.labe |
14aa0 | 6c 65 64 20 67 72 61 70 68 73 20 75 73 69 6e 67 20 46 47 57 5c 6e 5c 6e 52 65 71 75 69 72 65 73 | led.graphs.using.FGW\n\nRequires |
14ac0 | 20 6e 65 74 77 6f 72 6b 78 20 3e 3d 32 5c 6e 5c 6e 2e 2e 20 5b 31 38 5d 20 56 61 79 65 72 20 54 | .networkx.>=2\n\n...[18].Vayer.T |
14ae0 | 69 74 6f 75 61 6e 2c 20 43 68 61 70 65 6c 20 4c 61 65 74 69 74 69 61 2c 20 46 6c 61 6d 61 72 79 | itouan,.Chapel.Laetitia,.Flamary |
14b00 | 20 52 7b 27 65 7d 6d 69 2c 20 54 61 76 65 6e 61 72 64 20 52 6f 6d 61 69 6e 5c 6e 20 20 20 20 20 | .R{'e}mi,.Tavenard.Romain\n..... |
14b20 | 20 61 6e 64 20 43 6f 75 72 74 79 20 4e 69 63 6f 6c 61 73 5c 6e 20 20 20 20 5c 22 4f 70 74 69 6d | .and.Courty.Nicolas\n....\"Optim |
14b40 | 61 6c 20 54 72 61 6e 73 70 6f 72 74 20 66 6f 72 20 73 74 72 75 63 74 75 72 65 64 20 64 61 74 61 | al.Transport.for.structured.data |
14b60 | 20 77 69 74 68 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f 6e 20 67 72 61 70 68 73 5c 22 5c 6e 20 | .with.application.on.graphs\"\n. |
14b80 | 20 20 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 43 6f 6e 66 65 72 65 6e 63 65 20 6f 6e 20 4d | ...International.Conference.on.M |
14ba0 | 61 63 68 69 6e 65 20 4c 65 61 72 6e 69 6e 67 20 28 49 43 4d 4c 29 2e 20 32 30 31 39 2e 5c 6e 5c | achine.Learning.(ICML)..2019.\n\ |
14bc0 | 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 | n\n".......].....},.....{....... |
14be0 | 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 | "cell_type":."code",......."exec |
14c00 | 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 | ution_count":.null,......."metad |
14c20 | 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c | ata":.{........."collapsed":.fal |
14c40 | 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c | se.......},......."outputs":.[], |
14c60 | 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 | ......."source":.[........."#.Au |
14c80 | 74 68 6f 72 3a 20 54 69 74 6f 75 61 6e 20 56 61 79 65 72 20 3c 74 69 74 6f 75 61 6e 2e 76 61 79 | thor:.Titouan.Vayer.<titouan.vay |
14ca0 | 65 72 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 | er@irisa.fr>\n#\n#.License:.MIT. |
14cc0 | 4c 69 63 65 6e 73 65 5c 6e 5c 6e 23 25 25 20 6c 6f 61 64 20 6c 69 62 72 61 72 69 65 73 5c 6e 69 | License\n\n#%%.load.libraries\ni |
14ce0 | 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f | mport.numpy.as.np\nimport.matplo |
14d00 | 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f | tlib.pyplot.as.plt\nimport.netwo |
14d20 | 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 68 5c 6e 66 72 6f 6d 20 73 63 69 | rkx.as.nx\nimport.math\nfrom.sci |
14d40 | 70 79 2e 73 70 61 72 73 65 2e 63 73 67 72 61 70 68 20 69 6d 70 6f 72 74 20 73 68 6f 72 74 65 73 | py.sparse.csgraph.import.shortes |
14d60 | 74 5f 70 61 74 68 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 63 6f 6c 6f 72 73 | t_path\nimport.matplotlib.colors |
14d80 | 20 61 73 20 6d 63 6f 6c 5c 6e 66 72 6f 6d 20 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6d 70 6f 72 74 | .as.mcol\nfrom.matplotlib.import |
14da0 | 20 63 6d 5c 6e 66 72 6f 6d 20 6f 74 2e 67 72 6f 6d 6f 76 20 69 6d 70 6f 72 74 20 66 67 77 5f 62 | .cm\nfrom.ot.gromov.import.fgw_b |
14dc0 | 61 72 79 63 65 6e 74 65 72 73 5c 6e 23 25 25 20 47 72 61 70 68 20 66 75 6e 63 74 69 6f 6e 73 5c | arycenters\n#%%.Graph.functions\ |
14de0 | 6e 5c 6e 5c 6e 64 65 66 20 66 69 6e 64 5f 74 68 72 65 73 68 28 43 2c 20 69 6e 66 3d 30 2e 35 2c | n\n\ndef.find_thresh(C,.inf=0.5, |
14e00 | 20 73 75 70 3d 33 2c 20 73 74 65 70 3d 31 30 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 20 54 72 | .sup=3,.step=10):\n....\"\"\".Tr |
14e20 | 69 63 6b 20 74 6f 20 66 69 6e 64 20 74 68 65 20 61 64 65 71 75 61 74 65 20 74 68 72 65 73 68 6f | ick.to.find.the.adequate.thresho |
14e40 | 6c 64 73 20 66 72 6f 6d 20 77 68 65 72 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 43 20 6d 61 | lds.from.where.value.of.the.C.ma |
14e60 | 74 72 69 78 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 63 6c 6f 73 65 20 65 6e 6f 75 67 68 | trix.are.considered.close.enough |
14e80 | 20 74 6f 20 73 61 79 20 74 68 61 74 20 6e 6f 64 65 73 20 61 72 65 20 63 6f 6e 6e 65 63 74 65 64 | .to.say.that.nodes.are.connected |
14ea0 | 5c 6e 20 20 20 20 20 20 20 20 54 74 68 65 20 74 68 72 65 73 68 6f 6c 64 20 69 73 20 66 6f 75 6e | \n........Tthe.threshold.is.foun |
14ec0 | 64 20 62 79 20 61 20 6c 69 6e 65 73 65 61 72 63 68 20 62 65 74 77 65 65 6e 20 76 61 6c 75 65 73 | d.by.a.linesearch.between.values |
14ee0 | 20 5c 22 69 6e 66 5c 22 20 61 6e 64 20 5c 22 73 75 70 5c 22 20 77 69 74 68 20 5c 22 73 74 65 70 | .\"inf\".and.\"sup\".with.\"step |
14f00 | 5c 22 20 74 68 72 65 73 68 6f 6c 64 73 20 74 65 73 74 65 64 2e 5c 6e 20 20 20 20 20 20 20 20 54 | \".thresholds.tested.\n........T |
14f20 | 68 65 20 6f 70 74 69 6d 61 6c 20 74 68 72 65 73 68 6f 6c 64 20 69 73 20 74 68 65 20 6f 6e 65 20 | he.optimal.threshold.is.the.one. |
14f40 | 77 68 69 63 68 20 6d 69 6e 69 6d 69 7a 65 73 20 74 68 65 20 72 65 63 6f 6e 73 74 72 75 63 74 69 | which.minimizes.the.reconstructi |
14f60 | 6f 6e 20 65 72 72 6f 72 20 62 65 74 77 65 65 6e 20 74 68 65 20 73 68 6f 72 74 65 73 74 5f 70 61 | on.error.between.the.shortest_pa |
14f80 | 74 68 20 6d 61 74 72 69 78 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 74 68 72 65 73 68 | th.matrix.coming.from.the.thresh |
14fa0 | 6f 6c 64 65 64 20 61 64 6a 65 6e 63 79 20 6d 61 74 72 69 78 5c 6e 20 20 20 20 20 20 20 20 61 6e | olded.adjency.matrix\n........an |
14fc0 | 64 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6d 61 74 72 69 78 2e 5c 6e 20 20 20 20 50 61 72 61 | d.the.original.matrix.\n....Para |
14fe0 | 6d 65 74 65 72 73 5c 6e 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 43 20 3a 20 | meters\n....----------\n....C.:. |
15000 | 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 6e 5f 6e 6f 64 65 73 2c 6e 5f 6e 6f 64 65 73 29 | ndarray,.shape.(n_nodes,n_nodes) |
15020 | 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 73 74 72 75 63 74 75 72 65 20 6d 61 74 72 | \n............The.structure.matr |
15040 | 69 78 20 74 6f 20 74 68 72 65 73 68 6f 6c 64 5c 6e 20 20 20 20 69 6e 66 20 3a 20 66 6c 6f 61 74 | ix.to.threshold\n....inf.:.float |
15060 | 5c 6e 20 20 20 20 20 20 20 20 20 20 54 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 | \n..........The.beginning.of.the |
15080 | 20 6c 69 6e 65 73 65 61 72 63 68 5c 6e 20 20 20 20 73 75 70 20 3a 20 66 6c 6f 61 74 5c 6e 20 20 | .linesearch\n....sup.:.float\n.. |
150a0 | 20 20 20 20 20 20 20 20 54 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 73 65 61 72 63 | ........The.end.of.the.linesearc |
150c0 | 68 5c 6e 20 20 20 20 73 74 65 70 20 3a 20 69 6e 74 65 67 65 72 5c 6e 20 20 20 20 20 20 20 20 20 | h\n....step.:.integer\n......... |
150e0 | 20 20 20 4e 75 6d 62 65 72 20 6f 66 20 74 68 72 65 73 68 6f 6c 64 73 20 74 65 73 74 65 64 5c 6e | ...Number.of.thresholds.tested\n |
15100 | 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 64 69 73 74 20 3d 20 5b 5d 5c 6e 20 20 20 20 73 | ....\"\"\"\n....dist.=.[]\n....s |
15120 | 65 61 72 63 68 20 3d 20 6e 70 2e 6c 69 6e 73 70 61 63 65 28 69 6e 66 2c 20 73 75 70 2c 20 73 74 | earch.=.np.linspace(inf,.sup,.st |
15140 | 65 70 29 5c 6e 20 20 20 20 66 6f 72 20 74 68 72 65 73 68 20 69 6e 20 73 65 61 72 63 68 3a 5c 6e | ep)\n....for.thresh.in.search:\n |
15160 | 20 20 20 20 20 20 20 20 43 70 72 69 6d 65 20 3d 20 73 70 5f 74 6f 5f 61 64 6a 65 6e 63 79 28 43 | ........Cprime.=.sp_to_adjency(C |
15180 | 2c 20 30 2c 20 74 68 72 65 73 68 29 5c 6e 20 20 20 20 20 20 20 20 53 43 20 3d 20 73 68 6f 72 74 | ,.0,.thresh)\n........SC.=.short |
151a0 | 65 73 74 5f 70 61 74 68 28 43 70 72 69 6d 65 2c 20 6d 65 74 68 6f 64 3d 27 44 27 29 5c 6e 20 20 | est_path(Cprime,.method='D')\n.. |
151c0 | 20 20 20 20 20 20 53 43 5b 53 43 20 3d 3d 20 66 6c 6f 61 74 28 27 69 6e 66 27 29 5d 20 3d 20 31 | ......SC[SC.==.float('inf')].=.1 |
151e0 | 30 30 5c 6e 20 20 20 20 20 20 20 20 64 69 73 74 2e 61 70 70 65 6e 64 28 6e 70 2e 6c 69 6e 61 6c | 00\n........dist.append(np.linal |
15200 | 67 2e 6e 6f 72 6d 28 53 43 20 2d 20 43 29 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 73 65 61 72 | g.norm(SC.-.C))\n....return.sear |
15220 | 63 68 5b 6e 70 2e 61 72 67 6d 69 6e 28 64 69 73 74 29 5d 2c 20 64 69 73 74 5c 6e 5c 6e 5c 6e 64 | ch[np.argmin(dist)],.dist\n\n\nd |
15240 | 65 66 20 73 70 5f 74 6f 5f 61 64 6a 65 6e 63 79 28 43 2c 20 74 68 72 65 73 68 69 6e 66 3d 30 2e | ef.sp_to_adjency(C,.threshinf=0. |
15260 | 32 2c 20 74 68 72 65 73 68 73 75 70 3d 31 2e 38 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 20 54 | 2,.threshsup=1.8):\n....\"\"\".T |
15280 | 68 72 65 73 68 6f 6c 64 73 20 74 68 65 20 73 74 72 75 63 74 75 72 65 20 6d 61 74 72 69 78 20 69 | hresholds.the.structure.matrix.i |
152a0 | 6e 20 6f 72 64 65 72 20 74 6f 20 63 6f 6d 70 75 74 65 20 61 6e 20 61 64 6a 65 6e 63 79 20 6d 61 | n.order.to.compute.an.adjency.ma |
152c0 | 74 72 69 78 2e 5c 6e 20 20 20 20 41 6c 6c 20 76 61 6c 75 65 73 20 62 65 74 77 65 65 6e 20 74 68 | trix.\n....All.values.between.th |
152e0 | 72 65 73 68 69 6e 66 20 61 6e 64 20 74 68 72 65 73 68 73 75 70 20 61 72 65 20 63 6f 6e 73 69 64 | reshinf.and.threshsup.are.consid |
15300 | 65 72 65 64 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 63 6f 6e 6e 65 63 74 65 64 20 6e 6f 64 65 | ered.representing.connected.node |
15320 | 73 20 61 6e 64 20 73 65 74 20 74 6f 20 31 2e 20 45 6c 73 65 20 61 72 65 20 73 65 74 20 74 6f 20 | s.and.set.to.1..Else.are.set.to. |
15340 | 30 5c 6e 20 20 20 20 50 61 72 61 6d 65 74 65 72 73 5c 6e 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d | 0\n....Parameters\n....--------- |
15360 | 2d 5c 6e 20 20 20 20 43 20 3a 20 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 6e 5f 6e 6f 64 | -\n....C.:.ndarray,.shape.(n_nod |
15380 | 65 73 2c 6e 5f 6e 6f 64 65 73 29 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 73 74 72 75 63 74 75 | es,n_nodes)\n........The.structu |
153a0 | 72 65 20 6d 61 74 72 69 78 20 74 6f 20 74 68 72 65 73 68 6f 6c 64 5c 6e 20 20 20 20 74 68 72 65 | re.matrix.to.threshold\n....thre |
153c0 | 73 68 69 6e 66 20 3a 20 66 6c 6f 61 74 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 6d 69 6e 69 6d | shinf.:.float\n........The.minim |
153e0 | 75 6d 20 76 61 6c 75 65 20 6f 66 20 64 69 73 74 61 6e 63 65 20 66 72 6f 6d 20 77 68 69 63 68 20 | um.value.of.distance.from.which. |
15400 | 74 68 65 20 6e 65 77 20 76 61 6c 75 65 20 69 73 20 73 65 74 20 74 6f 20 31 5c 6e 20 20 20 20 74 | the.new.value.is.set.to.1\n....t |
15420 | 68 72 65 73 68 73 75 70 20 3a 20 66 6c 6f 61 74 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 6d 61 | hreshsup.:.float\n........The.ma |
15440 | 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 64 69 73 74 61 6e 63 65 20 66 72 6f 6d 20 77 68 69 | ximum.value.of.distance.from.whi |
15460 | 63 68 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 20 69 73 20 73 65 74 20 74 6f 20 31 5c 6e 20 20 | ch.the.new.value.is.set.to.1\n.. |
15480 | 20 20 52 65 74 75 72 6e 73 5c 6e 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 43 20 3a 20 | ..Returns\n....-------\n....C.:. |
154a0 | 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 6e 5f 6e 6f 64 65 73 2c 6e 5f 6e 6f 64 65 73 29 | ndarray,.shape.(n_nodes,n_nodes) |
154c0 | 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 74 68 72 65 73 68 6f 6c 64 20 6d 61 74 72 69 78 2e 20 | \n........The.threshold.matrix.. |
154e0 | 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 69 6e 20 7b 30 2c 31 7d 5c 6e 20 20 20 20 5c 22 | Each.element.is.in.{0,1}\n....\" |
15500 | 5c 22 5c 22 5c 6e 20 20 20 20 48 20 3d 20 6e 70 2e 7a 65 72 6f 73 5f 6c 69 6b 65 28 43 29 5c 6e | \"\"\n....H.=.np.zeros_like(C)\n |
15520 | 20 20 20 20 6e 70 2e 66 69 6c 6c 5f 64 69 61 67 6f 6e 61 6c 28 48 2c 20 6e 70 2e 64 69 61 67 6f | ....np.fill_diagonal(H,.np.diago |
15540 | 6e 61 6c 28 43 29 29 5c 6e 20 20 20 20 43 20 3d 20 43 20 2d 20 48 5c 6e 20 20 20 20 43 20 3d 20 | nal(C))\n....C.=.C.-.H\n....C.=. |
15560 | 6e 70 2e 6d 69 6e 69 6d 75 6d 28 6e 70 2e 6d 61 78 69 6d 75 6d 28 43 2c 20 74 68 72 65 73 68 69 | np.minimum(np.maximum(C,.threshi |
15580 | 6e 66 29 2c 20 74 68 72 65 73 68 73 75 70 29 5c 6e 20 20 20 20 43 5b 43 20 3d 3d 20 74 68 72 65 | nf),.threshsup)\n....C[C.==.thre |
155a0 | 73 68 73 75 70 5d 20 3d 20 30 5c 6e 20 20 20 20 43 5b 43 20 21 3d 20 30 5d 20 3d 20 31 5c 6e 5c | shsup].=.0\n....C[C.!=.0].=.1\n\ |
155c0 | 6e 20 20 20 20 72 65 74 75 72 6e 20 43 5c 6e 5c 6e 5c 6e 64 65 66 20 62 75 69 6c 64 5f 6e 6f 69 | n....return.C\n\n\ndef.build_noi |
155e0 | 73 79 5f 63 69 72 63 75 6c 61 72 5f 67 72 61 70 68 28 4e 3d 32 30 2c 20 6d 75 3d 30 2c 20 73 69 | sy_circular_graph(N=20,.mu=0,.si |
15600 | 67 6d 61 3d 30 2e 33 2c 20 77 69 74 68 5f 6e 6f 69 73 65 3d 46 61 6c 73 65 2c 20 73 74 72 75 63 | gma=0.3,.with_noise=False,.struc |
15620 | 74 75 72 65 5f 6e 6f 69 73 65 3d 46 61 6c 73 65 2c 20 70 3d 4e 6f 6e 65 29 3a 5c 6e 20 20 20 20 | ture_noise=False,.p=None):\n.... |
15640 | 5c 22 5c 22 5c 22 20 43 72 65 61 74 65 20 61 20 6e 6f 69 73 79 20 63 69 72 63 75 6c 61 72 20 67 | \"\"\".Create.a.noisy.circular.g |
15660 | 72 61 70 68 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 67 20 3d 20 6e 78 2e 47 72 61 | raph\n....\"\"\"\n....g.=.nx.Gra |
15680 | 70 68 28 29 5c 6e 20 20 20 20 67 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 6c 69 73 74 28 | ph()\n....g.add_nodes_from(list( |
156a0 | 72 61 6e 67 65 28 4e 29 29 29 5c 6e 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 4e | range(N)))\n....for.i.in.range(N |
156c0 | 29 3a 5c 6e 20 20 20 20 20 20 20 20 6e 6f 69 73 65 20 3d 20 66 6c 6f 61 74 28 6e 70 2e 72 61 6e | ):\n........noise.=.float(np.ran |
156e0 | 64 6f 6d 2e 6e 6f 72 6d 61 6c 28 6d 75 2c 20 73 69 67 6d 61 2c 20 31 29 29 5c 6e 20 20 20 20 20 | dom.normal(mu,.sigma,.1))\n..... |
15700 | 20 20 20 69 66 20 77 69 74 68 5f 6e 6f 69 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 67 | ...if.with_noise:\n............g |
15720 | 2e 61 64 64 5f 6e 6f 64 65 28 69 2c 20 61 74 74 72 5f 6e 61 6d 65 3d 6d 61 74 68 2e 73 69 6e 28 | .add_node(i,.attr_name=math.sin( |
15740 | 28 32 20 2a 20 69 20 2a 20 6d 61 74 68 2e 70 69 20 2f 20 4e 29 29 20 2b 20 6e 6f 69 73 65 29 5c | (2.*.i.*.math.pi./.N)).+.noise)\ |
15760 | 6e 20 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 67 2e 61 64 | n........else:\n............g.ad |
15780 | 64 5f 6e 6f 64 65 28 69 2c 20 61 74 74 72 5f 6e 61 6d 65 3d 6d 61 74 68 2e 73 69 6e 28 32 20 2a | d_node(i,.attr_name=math.sin(2.* |
157a0 | 20 69 20 2a 20 6d 61 74 68 2e 70 69 20 2f 20 4e 29 29 5c 6e 20 20 20 20 20 20 20 20 67 2e 61 64 | .i.*.math.pi./.N))\n........g.ad |
157c0 | 64 5f 65 64 67 65 28 69 2c 20 69 20 2b 20 31 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 73 74 72 | d_edge(i,.i.+.1)\n........if.str |
157e0 | 75 63 74 75 72 65 5f 6e 6f 69 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 61 6e 64 6f | ucture_noise:\n............rando |
15800 | 6d 69 6e 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 30 2c 20 70 29 5c 6e | mint.=.np.random.randint(0,.p)\n |
15820 | 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 61 6e 64 6f 6d 69 6e 74 20 3d 3d 20 30 3a 5c 6e | ............if.randomint.==.0:\n |
15840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 20 3c 3d 20 4e 20 2d 20 33 3a 5c 6e | ................if.i.<=.N.-.3:\n |
15860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 65 64 67 65 28 69 | ....................g.add_edge(i |
15880 | 2c 20 69 20 2b 20 32 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 20 3d | ,.i.+.2)\n................if.i.= |
158a0 | 3d 20 4e 20 2d 20 32 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 2e | =.N.-.2:\n....................g. |
158c0 | 61 64 64 5f 65 64 67 65 28 69 2c 20 30 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | add_edge(i,.0)\n................ |
158e0 | 69 66 20 69 20 3d 3d 20 4e 20 2d 20 31 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | if.i.==.N.-.1:\n................ |
15900 | 20 20 20 20 67 2e 61 64 64 5f 65 64 67 65 28 69 2c 20 31 29 5c 6e 20 20 20 20 67 2e 61 64 64 5f | ....g.add_edge(i,.1)\n....g.add_ |
15920 | 65 64 67 65 28 4e 2c 20 30 29 5c 6e 20 20 20 20 6e 6f 69 73 65 20 3d 20 66 6c 6f 61 74 28 6e 70 | edge(N,.0)\n....noise.=.float(np |
15940 | 2e 72 61 6e 64 6f 6d 2e 6e 6f 72 6d 61 6c 28 6d 75 2c 20 73 69 67 6d 61 2c 20 31 29 29 5c 6e 20 | .random.normal(mu,.sigma,.1))\n. |
15960 | 20 20 20 69 66 20 77 69 74 68 5f 6e 6f 69 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 67 2e 61 64 64 | ...if.with_noise:\n........g.add |
15980 | 5f 6e 6f 64 65 28 4e 2c 20 61 74 74 72 5f 6e 61 6d 65 3d 6d 61 74 68 2e 73 69 6e 28 28 32 20 2a | _node(N,.attr_name=math.sin((2.* |
159a0 | 20 4e 20 2a 20 6d 61 74 68 2e 70 69 20 2f 20 4e 29 29 20 2b 20 6e 6f 69 73 65 29 5c 6e 20 20 20 | .N.*.math.pi./.N)).+.noise)\n... |
159c0 | 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 6e 6f 64 65 28 4e 2c 20 61 74 | .else:\n........g.add_node(N,.at |
159e0 | 74 72 5f 6e 61 6d 65 3d 6d 61 74 68 2e 73 69 6e 28 32 20 2a 20 4e 20 2a 20 6d 61 74 68 2e 70 69 | tr_name=math.sin(2.*.N.*.math.pi |
15a00 | 20 2f 20 4e 29 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 67 5c 6e 5c 6e 5c 6e 64 65 66 20 67 72 | ./.N))\n....return.g\n\n\ndef.gr |
15a20 | 61 70 68 5f 63 6f 6c 6f 72 73 28 6e 78 5f 67 72 61 70 68 2c 20 76 6d 69 6e 3d 30 2c 20 76 6d 61 | aph_colors(nx_graph,.vmin=0,.vma |
15a40 | 78 3d 37 29 3a 5c 6e 20 20 20 20 63 6e 6f 72 6d 20 3d 20 6d 63 6f 6c 2e 4e 6f 72 6d 61 6c 69 7a | x=7):\n....cnorm.=.mcol.Normaliz |
15a60 | 65 28 76 6d 69 6e 3d 76 6d 69 6e 2c 20 76 6d 61 78 3d 76 6d 61 78 29 5c 6e 20 20 20 20 63 70 69 | e(vmin=vmin,.vmax=vmax)\n....cpi |
15a80 | 63 6b 20 3d 20 63 6d 2e 53 63 61 6c 61 72 4d 61 70 70 61 62 6c 65 28 6e 6f 72 6d 3d 63 6e 6f 72 | ck.=.cm.ScalarMappable(norm=cnor |
15aa0 | 6d 2c 20 63 6d 61 70 3d 27 76 69 72 69 64 69 73 27 29 5c 6e 20 20 20 20 63 70 69 63 6b 2e 73 65 | m,.cmap='viridis')\n....cpick.se |
15ac0 | 74 5f 61 72 72 61 79 28 5b 5d 29 5c 6e 20 20 20 20 76 61 6c 5f 6d 61 70 20 3d 20 7b 7d 5c 6e 20 | t_array([])\n....val_map.=.{}\n. |
15ae0 | 20 20 20 66 6f 72 20 6b 2c 20 76 20 69 6e 20 6e 78 2e 67 65 74 5f 6e 6f 64 65 5f 61 74 74 72 69 | ...for.k,.v.in.nx.get_node_attri |
15b00 | 62 75 74 65 73 28 6e 78 5f 67 72 61 70 68 2c 20 27 61 74 74 72 5f 6e 61 6d 65 27 29 2e 69 74 65 | butes(nx_graph,.'attr_name').ite |
15b20 | 6d 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 76 61 6c 5f 6d 61 70 5b 6b 5d 20 3d 20 63 70 69 63 | ms():\n........val_map[k].=.cpic |
15b40 | 6b 2e 74 6f 5f 72 67 62 61 28 76 29 5c 6e 20 20 20 20 63 6f 6c 6f 72 73 20 3d 20 5b 5d 5c 6e 20 | k.to_rgba(v)\n....colors.=.[]\n. |
15b60 | 20 20 20 66 6f 72 20 6e 6f 64 65 20 69 6e 20 6e 78 5f 67 72 61 70 68 2e 6e 6f 64 65 73 28 29 3a | ...for.node.in.nx_graph.nodes(): |
15b80 | 5c 6e 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 73 2e 61 70 70 65 6e 64 28 76 61 6c 5f 6d 61 70 5b | \n........colors.append(val_map[ |
15ba0 | 6e 6f 64 65 5d 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6c 6f 72 73 22 0a 20 20 20 20 20 | node])\n....return.colors"...... |
15bc0 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
15be0 | 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | ":."markdown",......."metadata": |
15c00 | 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .{},......."source":.[........." |
15c20 | 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e | Generate.data\n-------------\n\n |
15c40 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
15c60 | 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 | ll_type":."code",......."executi |
15c80 | 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | on_count":.null,......."metadata |
15ca0 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a | ":.{........."collapsed":.false. |
15cc0 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 | ......},......."outputs":.[],... |
15ce0 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 63 69 72 | ...."source":.[........."#%%.cir |
15d00 | 63 75 6c 61 72 20 64 61 74 61 73 65 74 5c 6e 23 20 57 65 20 62 75 69 6c 64 20 61 20 64 61 74 61 | cular.dataset\n#.We.build.a.data |
15d20 | 73 65 74 20 6f 66 20 6e 6f 69 73 79 20 63 69 72 63 75 6c 61 72 20 67 72 61 70 68 73 2e 5c 6e 23 | set.of.noisy.circular.graphs.\n# |
15d40 | 20 4e 6f 69 73 65 20 69 73 20 61 64 64 65 64 20 6f 6e 20 74 68 65 20 73 74 72 75 63 74 75 72 65 | .Noise.is.added.on.the.structure |
15d60 | 73 20 62 79 20 72 61 6e 64 6f 6d 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 61 6e 64 20 6f 6e 20 74 | s.by.random.connections.and.on.t |
15d80 | 68 65 20 66 65 61 74 75 72 65 73 20 62 79 20 67 61 75 73 73 69 61 6e 20 6e 6f 69 73 65 2e 5c 6e | he.features.by.gaussian.noise.\n |
15da0 | 5c 6e 5c 6e 6e 70 2e 72 61 6e 64 6f 6d 2e 73 65 65 64 28 33 30 29 5c 6e 58 30 20 3d 20 5b 5d 5c | \n\nnp.random.seed(30)\nX0.=.[]\ |
15dc0 | 6e 66 6f 72 20 6b 20 69 6e 20 72 61 6e 67 65 28 39 29 3a 5c 6e 20 20 20 20 58 30 2e 61 70 70 65 | nfor.k.in.range(9):\n....X0.appe |
15de0 | 6e 64 28 62 75 69 6c 64 5f 6e 6f 69 73 79 5f 63 69 72 63 75 6c 61 72 5f 67 72 61 70 68 28 6e 70 | nd(build_noisy_circular_graph(np |
15e00 | 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 31 35 2c 20 32 35 29 2c 20 77 69 74 68 5f 6e 6f | .random.randint(15,.25),.with_no |
15e20 | 69 73 65 3d 54 72 75 65 2c 20 73 74 72 75 63 74 75 72 65 5f 6e 6f 69 73 65 3d 54 72 75 65 2c 20 | ise=True,.structure_noise=True,. |
15e40 | 70 3d 33 29 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 | p=3))".......].....},.....{..... |
15e60 | 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 | .."cell_type":."markdown",...... |
15e80 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | ."metadata":.{},......."source": |
15ea0 | 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d | .[........."Plot.data\n--------- |
15ec0 | 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 | \n\n".......].....},.....{...... |
15ee0 | 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 | ."cell_type":."code",......."exe |
15f00 | 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | cution_count":.null,......."meta |
15f20 | 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 | data":.{........."collapsed":.fa |
15f40 | 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d | lse.......},......."outputs":.[] |
15f60 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 | ,......."source":.[........."#%% |
15f80 | 20 50 6c 6f 74 20 67 72 61 70 68 73 5c 6e 5c 6e 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 | .Plot.graphs\n\nplt.figure(figsi |
15fa0 | 7a 65 3d 28 38 2c 20 31 30 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6c 65 6e 28 | ze=(8,.10))\nfor.i.in.range(len( |
15fc0 | 58 30 29 29 3a 5c 6e 20 20 20 20 70 6c 74 2e 73 75 62 70 6c 6f 74 28 33 2c 20 33 2c 20 69 20 2b | X0)):\n....plt.subplot(3,.3,.i.+ |
15fe0 | 20 31 29 5c 6e 20 20 20 20 67 20 3d 20 58 30 5b 69 5d 5c 6e 20 20 20 20 70 6f 73 20 3d 20 6e 78 | .1)\n....g.=.X0[i]\n....pos.=.nx |
16000 | 2e 6b 61 6d 61 64 61 5f 6b 61 77 61 69 5f 6c 61 79 6f 75 74 28 67 29 5c 6e 20 20 20 20 6e 78 2e | .kamada_kawai_layout(g)\n....nx. |
16020 | 64 72 61 77 28 67 2c 20 70 6f 73 3d 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 67 72 61 70 | draw(g,.pos=pos,.node_color=grap |
16040 | 68 5f 63 6f 6c 6f 72 73 28 67 2c 20 76 6d 69 6e 3d 2d 31 2c 20 76 6d 61 78 3d 31 29 2c 20 77 69 | h_colors(g,.vmin=-1,.vmax=1),.wi |
16060 | 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 31 30 30 29 5c | th_labels=False,.node_size=100)\ |
16080 | 6e 70 6c 74 2e 73 75 70 74 69 74 6c 65 28 27 44 61 74 61 73 65 74 20 6f 66 20 6e 6f 69 73 79 20 | nplt.suptitle('Dataset.of.noisy. |
160a0 | 67 72 61 70 68 73 2e 20 43 6f 6c 6f 72 20 69 6e 64 69 63 61 74 65 73 20 74 68 65 20 6c 61 62 65 | graphs..Color.indicates.the.labe |
160c0 | 6c 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 30 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 | l',.fontsize=20)\nplt.show()"... |
160e0 | 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 | ....].....},.....{......."cell_t |
16100 | 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ype":."markdown",......."metadat |
16120 | 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | a":.{},......."source":.[....... |
16140 | 20 20 22 42 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d | .."Barycenter.computation\n----- |
16160 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 | -----------------\n\n".......].. |
16180 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
161a0 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
161c0 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
161e0 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
16200 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
16220 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 57 65 20 63 6f 6d 70 75 74 65 20 74 68 65 | ":.[........."#%%.We.compute.the |
16240 | 20 62 61 72 79 63 65 6e 74 65 72 20 75 73 69 6e 67 20 46 47 57 2e 20 53 74 72 75 63 74 75 72 65 | .barycenter.using.FGW..Structure |
16260 | 20 6d 61 74 72 69 63 65 73 20 61 72 65 20 63 6f 6d 70 75 74 65 64 20 75 73 69 6e 67 20 74 68 65 | .matrices.are.computed.using.the |
16280 | 20 73 68 6f 72 74 65 73 74 5f 70 61 74 68 20 64 69 73 74 61 6e 63 65 20 69 6e 20 74 68 65 20 67 | .shortest_path.distance.in.the.g |
162a0 | 72 61 70 68 5c 6e 23 20 46 65 61 74 75 72 65 73 20 64 69 73 74 61 6e 63 65 73 20 61 72 65 20 74 | raph\n#.Features.distances.are.t |
162c0 | 68 65 20 65 75 63 6c 69 64 65 61 6e 20 64 69 73 74 61 6e 63 65 73 5c 6e 43 73 20 3d 20 5b 73 68 | he.euclidean.distances\nCs.=.[sh |
162e0 | 6f 72 74 65 73 74 5f 70 61 74 68 28 6e 78 2e 61 64 6a 61 63 65 6e 63 79 5f 6d 61 74 72 69 78 28 | ortest_path(nx.adjacency_matrix( |
16300 | 78 29 29 20 66 6f 72 20 78 20 69 6e 20 58 30 5d 5c 6e 70 73 20 3d 20 5b 6e 70 2e 6f 6e 65 73 28 | x)).for.x.in.X0]\nps.=.[np.ones( |
16320 | 6c 65 6e 28 78 2e 6e 6f 64 65 73 28 29 29 29 20 2f 20 6c 65 6e 28 78 2e 6e 6f 64 65 73 28 29 29 | len(x.nodes()))./.len(x.nodes()) |
16340 | 20 66 6f 72 20 78 20 69 6e 20 58 30 5d 5c 6e 59 73 20 3d 20 5b 6e 70 2e 61 72 72 61 79 28 5b 76 | .for.x.in.X0]\nYs.=.[np.array([v |
16360 | 20 66 6f 72 20 28 6b 2c 20 76 29 20 69 6e 20 6e 78 2e 67 65 74 5f 6e 6f 64 65 5f 61 74 74 72 69 | .for.(k,.v).in.nx.get_node_attri |
16380 | 62 75 74 65 73 28 78 2c 20 27 61 74 74 72 5f 6e 61 6d 65 27 29 2e 69 74 65 6d 73 28 29 5d 29 2e | butes(x,.'attr_name').items()]). |
163a0 | 72 65 73 68 61 70 65 28 2d 31 2c 20 31 29 20 66 6f 72 20 78 20 69 6e 20 58 30 5d 5c 6e 6c 61 6d | reshape(-1,.1).for.x.in.X0]\nlam |
163c0 | 62 64 61 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 6e 70 2e 6f 6e 65 73 28 6c 65 6e 28 59 73 29 | bdas.=.np.array([np.ones(len(Ys) |
163e0 | 29 20 2f 20 6c 65 6e 28 59 73 29 5d 29 2e 72 61 76 65 6c 28 29 5c 6e 73 69 7a 65 62 61 72 79 20 | )./.len(Ys)]).ravel()\nsizebary. |
16400 | 3d 20 31 35 20 20 23 20 77 65 20 63 68 6f 6f 73 65 20 61 20 62 61 72 79 63 65 6e 74 65 72 20 77 | =.15..#.we.choose.a.barycenter.w |
16420 | 69 74 68 20 31 35 20 6e 6f 64 65 73 5c 6e 5c 6e 41 2c 20 43 2c 20 6c 6f 67 20 3d 20 66 67 77 5f | ith.15.nodes\n\nA,.C,.log.=.fgw_ |
16440 | 62 61 72 79 63 65 6e 74 65 72 73 28 73 69 7a 65 62 61 72 79 2c 20 59 73 2c 20 43 73 2c 20 70 73 | barycenters(sizebary,.Ys,.Cs,.ps |
16460 | 2c 20 6c 61 6d 62 64 61 73 2c 20 61 6c 70 68 61 3d 30 2e 39 35 2c 20 6c 6f 67 3d 54 72 75 65 29 | ,.lambdas,.alpha=0.95,.log=True) |
16480 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
164a0 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
164c0 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
164e0 | 20 20 20 20 20 20 22 50 6c 6f 74 20 42 61 72 79 63 65 6e 74 65 72 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d | ......"Plot.Barycenter\n-------- |
16500 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 | -----------------\n\n".......].. |
16520 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
16540 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
16560 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
16580 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
165a0 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
165c0 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 43 72 65 61 74 65 20 74 68 65 20 62 61 72 | ":.[........."#%%.Create.the.bar |
165e0 | 79 63 65 6e 74 65 72 5c 6e 62 61 72 79 20 3d 20 6e 78 2e 66 72 6f 6d 5f 6e 75 6d 70 79 5f 6d 61 | ycenter\nbary.=.nx.from_numpy_ma |
16600 | 74 72 69 78 28 73 70 5f 74 6f 5f 61 64 6a 65 6e 63 79 28 43 2c 20 74 68 72 65 73 68 69 6e 66 3d | trix(sp_to_adjency(C,.threshinf= |
16620 | 30 2c 20 74 68 72 65 73 68 73 75 70 3d 66 69 6e 64 5f 74 68 72 65 73 68 28 43 2c 20 73 75 70 3d | 0,.threshsup=find_thresh(C,.sup= |
16640 | 31 30 30 2c 20 73 74 65 70 3d 31 30 30 29 5b 30 5d 29 29 5c 6e 66 6f 72 20 69 2c 20 76 20 69 6e | 100,.step=100)[0]))\nfor.i,.v.in |
16660 | 20 65 6e 75 6d 65 72 61 74 65 28 41 2e 72 61 76 65 6c 28 29 29 3a 5c 6e 20 20 20 20 62 61 72 79 | .enumerate(A.ravel()):\n....bary |
16680 | 2e 61 64 64 5f 6e 6f 64 65 28 69 2c 20 61 74 74 72 5f 6e 61 6d 65 3d 76 29 5c 6e 5c 6e 23 25 25 | .add_node(i,.attr_name=v)\n\n#%% |
166a0 | 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6b 61 6d 61 64 61 5f 6b 61 77 61 69 5f 6c 61 79 6f 75 74 28 62 | \npos.=.nx.kamada_kawai_layout(b |
166c0 | 61 72 79 29 5c 6e 6e 78 2e 64 72 61 77 28 62 61 72 79 2c 20 70 6f 73 3d 70 6f 73 2c 20 6e 6f 64 | ary)\nnx.draw(bary,.pos=pos,.nod |
166e0 | 65 5f 63 6f 6c 6f 72 3d 67 72 61 70 68 5f 63 6f 6c 6f 72 73 28 62 61 72 79 2c 20 76 6d 69 6e 3d | e_color=graph_colors(bary,.vmin= |
16700 | 2d 31 2c 20 76 6d 61 78 3d 31 29 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 29 5c | -1,.vmax=1),.with_labels=False)\ |
16720 | 6e 70 6c 74 2e 73 75 70 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 27 2c 20 66 6f 6e 74 | nplt.suptitle('Barycenter',.font |
16740 | 73 69 7a 65 3d 32 30 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 | size=20)\nplt.show()".......]... |
16760 | 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 | ..}...],..."metadata":.{....."ke |
16780 | 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 | rnelspec":.{......."display_name |
167a0 | 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a | ":."Python.3",......."language": |
167c0 | 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e | ."python",......."name":."python |
167e0 | 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b | 3".....},....."language_info":.{ |
16800 | 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 | ......."codemirror_mode":.{..... |
16820 | 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 | ...."name":."ipython",........." |
16840 | 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 | version":.3.......},......."file |
16860 | 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 | _extension":.".py",......."mimet |
16880 | 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 | ype":."text/x-python",......."na |
168a0 | 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f | me":."python",......."nbconvert_ |
168c0 | 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d | exporter":."python",......."pygm |
168e0 | 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 | ents_lexer":."ipython3",......." |
16900 | 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 38 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 | version":."3.6.8".....}...},..." |
16920 | 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 | nbformat":.4,..."nbformat_minor" |
16940 | 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 2d 60 cb 4c 3e 1d 30 6f d5 1a 00 00 d5 1a 00 00 16 | :.0.}PK........-`.L>.0o......... |
16960 | 00 00 00 70 6c 6f 74 5f 4f 54 5f 4c 31 5f 76 73 5f 4c 32 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 | ...plot_OT_L1_vs_L2.ipynb{..."ce |
16980 | 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a | lls":.[.....{......."cell_type": |
169a0 | 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 | ."code",......."execution_count" |
169c0 | 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 | :.null,......."metadata":.{..... |
169e0 | 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a | ...."collapsed":.false.......},. |
16a00 | 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 | ......"outputs":.[],......."sour |
16a20 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 | ce":.[........."%matplotlib.inli |
16a40 | 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | ne".......].....},.....{......." |
16a60 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d | cell_type":."markdown",......."m |
16a80 | 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | etadata":.{},......."source":.[. |
16aa0 | 20 20 20 20 20 20 20 20 22 5c 6e 23 20 32 44 20 4f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 | ........"\n#.2D.Optimal.transpor |
16ac0 | 74 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 6d 65 74 72 69 63 73 5c 6e 5c 6e 5c 6e 32 44 20 | t.for.different.metrics\n\n\n2D. |
16ae0 | 4f 54 20 6f 6e 20 65 6d 70 69 72 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 20 20 77 69 74 | OT.on.empirical.distributio..wit |
16b00 | 68 20 64 69 66 66 65 72 65 6e 74 20 67 6f 75 6e 64 20 6d 65 74 72 69 63 2e 5c 6e 5c 6e 53 74 6f | h.different.gound.metric.\n\nSto |
16b20 | 6c 65 20 74 68 65 20 66 69 67 75 72 65 20 69 64 65 61 20 66 72 6f 6d 20 46 69 67 2e 20 31 20 61 | le.the.figure.idea.from.Fig..1.a |
16b40 | 6e 64 20 32 20 69 6e 5c 6e 68 74 74 70 73 3a 2f 2f 61 72 78 69 76 2e 6f 72 67 2f 70 64 66 2f 31 | nd.2.in\nhttps://arxiv.org/pdf/1 |
16b60 | 37 30 36 2e 30 37 36 35 30 2e 70 64 66 5c 6e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 | 706.07650.pdf\n\n\n\n".......].. |
16b80 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
16ba0 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
16bc0 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
16be0 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
16c00 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
16c20 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 | ":.[........."#.Author:.Remi.Fla |
16c40 | 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c | mary.<remi.flamary@unice.fr>\n#\ |
16c60 | 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 | n#.License:.MIT.License\n\nimpor |
16c80 | 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 | t.numpy.as.np\nimport.matplotlib |
16ca0 | 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 | .pylab.as.pl\nimport.ot\nimport. |
16cc0 | 6f 74 2e 70 6c 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | ot.plot".......].....},.....{... |
16ce0 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 | ...."cell_type":."markdown",.... |
16d00 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ..."metadata":.{},......."source |
16d20 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 61 74 61 73 65 74 20 31 20 3a 20 75 6e 69 66 6f 72 | ":.[........."Dataset.1.:.unifor |
16d40 | 6d 20 73 61 6d 70 6c 69 6e 67 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | m.sampling\n-------------------- |
16d60 | 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | --------\n\n".......].....},.... |
16d80 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
16da0 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
16dc0 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
16de0 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
16e00 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
16e20 | 20 20 20 20 22 6e 20 3d 20 32 30 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 78 73 20 3d 20 | ...."n.=.20..#.nb.samples\nxs.=. |
16e40 | 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 32 29 29 5c 6e 78 73 5b 3a 2c 20 30 5d 20 3d 20 6e 70 2e | np.zeros((n,.2))\nxs[:,.0].=.np. |
16e60 | 61 72 61 6e 67 65 28 6e 29 20 2b 20 31 5c 6e 78 73 5b 3a 2c 20 31 5d 20 3d 20 28 6e 70 2e 61 72 | arange(n).+.1\nxs[:,.1].=.(np.ar |
16e80 | 61 6e 67 65 28 6e 29 20 2b 20 31 29 20 2a 20 2d 30 2e 30 30 31 20 20 23 20 74 6f 20 6d 61 6b 65 | ange(n).+.1).*.-0.001..#.to.make |
16ea0 | 20 69 74 20 73 74 72 69 63 74 6c 79 20 63 6f 6e 76 65 78 2e 2e 2e 5c 6e 5c 6e 78 74 20 3d 20 6e | .it.strictly.convex...\n\nxt.=.n |
16ec0 | 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 32 29 29 5c 6e 78 74 5b 3a 2c 20 31 5d 20 3d 20 6e 70 2e 61 | p.zeros((n,.2))\nxt[:,.1].=.np.a |
16ee0 | 72 61 6e 67 65 28 6e 29 20 2b 20 31 5c 6e 5c 6e 61 2c 20 62 20 3d 20 6f 74 2e 75 6e 69 66 28 6e | range(n).+.1\n\na,.b.=.ot.unif(n |
16f00 | 29 2c 20 6f 74 2e 75 6e 69 66 28 6e 29 20 20 23 20 75 6e 69 66 6f 72 6d 20 64 69 73 74 72 69 62 | ),.ot.unif(n)..#.uniform.distrib |
16f20 | 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 | ution.on.samples\n\n#.loss.matri |
16f40 | 78 5c 6e 4d 31 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 | x\nM1.=.ot.dist(xs,.xt,.metric=' |
16f60 | 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 31 20 2f 3d 20 4d 31 2e 6d 61 78 28 29 5c 6e 5c 6e 23 | euclidean')\nM1./=.M1.max()\n\n# |
16f80 | 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 32 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 | .loss.matrix\nM2.=.ot.dist(xs,.x |
16fa0 | 74 2c 20 6d 65 74 72 69 63 3d 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 32 20 2f 3d 20 | t,.metric='sqeuclidean')\nM2./=. |
16fc0 | 4d 32 2e 6d 61 78 28 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 70 20 3d 20 | M2.max()\n\n#.loss.matrix\nMp.=. |
16fe0 | 6e 70 2e 73 71 72 74 28 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 | np.sqrt(ot.dist(xs,.xt,.metric=' |
17000 | 65 75 63 6c 69 64 65 61 6e 27 29 29 5c 6e 4d 70 20 2f 3d 20 4d 70 2e 6d 61 78 28 29 5c 6e 5c 6e | euclidean'))\nMp./=.Mp.max()\n\n |
17020 | 23 20 44 61 74 61 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c | #.Data\npl.figure(1,.figsize=(7, |
17040 | 20 33 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d | .3))\npl.clf()\npl.plot(xs[:,.0] |
17060 | 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 | ,.xs[:,.1],.'+b',.label='Source. |
17080 | 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b | samples')\npl.plot(xt[:,.0],.xt[ |
170a0 | 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c | :,.1],.'xr',.label='Target.sampl |
170c0 | 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 | es')\npl.axis('equal')\npl.title |
170e0 | 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e | ('Source.and.target.distribution |
17100 | 73 27 29 5c 6e 5c 6e 5c 6e 23 20 43 6f 73 74 20 6d 61 74 72 69 63 65 73 5c 6e 70 6c 2e 66 69 67 | s')\n\n\n#.Cost.matrices\npl.fig |
17120 | 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c 20 33 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 | ure(2,.figsize=(7,.3))\n\npl.sub |
17140 | 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 31 2c 20 69 6e 74 | plot(1,.3,.1)\npl.imshow(M1,.int |
17160 | 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 | erpolation='nearest')\npl.title( |
17180 | 27 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 | 'Euclidean.cost')\n\npl.subplot( |
171a0 | 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 32 2c 20 69 6e 74 65 72 70 6f 6c | 1,.3,.2)\npl.imshow(M2,.interpol |
171c0 | 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 71 75 61 | ation='nearest')\npl.title('Squa |
171e0 | 72 65 64 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c | red.Euclidean.cost')\n\npl.subpl |
17200 | 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 70 2c 20 69 6e 74 65 72 | ot(1,.3,.3)\npl.imshow(Mp,.inter |
17220 | 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 | polation='nearest')\npl.title('S |
17240 | 71 72 74 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c | qrt.Euclidean.cost')\npl.tight_l |
17260 | 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | ayout()".......].....},.....{... |
17280 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 | ...."cell_type":."markdown",.... |
172a0 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ..."metadata":.{},......."source |
172c0 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 61 74 61 73 65 74 20 31 20 3a 20 50 6c 6f 74 20 4f | ":.[........."Dataset.1.:.Plot.O |
172e0 | 54 20 4d 61 74 72 69 63 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | T.Matrices\n-------------------- |
17300 | 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | --------\n\n".......].....},.... |
17320 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
17340 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
17360 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
17380 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
173a0 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
173c0 | 20 20 20 20 22 23 25 25 20 45 4d 44 5c 6e 47 31 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 | ...."#%%.EMD\nG1.=.ot.emd(a,.b,. |
173e0 | 4d 31 29 5c 6e 47 32 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 32 29 5c 6e 47 70 20 3d | M1)\nG2.=.ot.emd(a,.b,.M2)\nGp.= |
17400 | 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 70 29 5c 6e 5c 6e 23 20 4f 54 20 6d 61 74 72 69 63 | .ot.emd(a,.b,.Mp)\n\n#.OT.matric |
17420 | 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c 20 33 29 29 | es\npl.figure(3,.figsize=(7,.3)) |
17440 | 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 6f 74 2e 70 6c 6f 74 | \n\npl.subplot(1,.3,.1)\not.plot |
17460 | 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 31 2c 20 | .plot2D_samples_mat(xs,.xt,.G1,. |
17480 | 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d | c=[.5,..5,.1])\npl.plot(xs[:,.0] |
174a0 | 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 | ,.xs[:,.1],.'+b',.label='Source. |
174c0 | 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b | samples')\npl.plot(xt[:,.0],.xt[ |
174e0 | 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c | :,.1],.'xr',.label='Target.sampl |
17500 | 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c 2e 6c 65 67 | es')\npl.axis('equal')\n#.pl.leg |
17520 | 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 45 75 63 6c 69 64 65 | end(loc=0)\npl.title('OT.Euclide |
17540 | 61 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c 6e 6f 74 2e | an')\n\npl.subplot(1,.3,.2)\not. |
17560 | 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 | plot.plot2D_samples_mat(xs,.xt,. |
17580 | 47 32 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a | G2,.c=[.5,..5,.1])\npl.plot(xs[: |
175a0 | 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 | ,.0],.xs[:,.1],.'+b',.label='Sou |
175c0 | 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c | rce.samples')\npl.plot(xt[:,.0], |
175e0 | 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 | .xt[:,.1],.'xr',.label='Target.s |
17600 | 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c | amples')\npl.axis('equal')\n#.pl |
17620 | 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 73 71 75 | .legend(loc=0)\npl.title('OT.squ |
17640 | 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 | ared.Euclidean')\n\npl.subplot(1 |
17660 | 2c 20 33 2c 20 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f | ,.3,.3)\not.plot.plot2D_samples_ |
17680 | 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 70 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e | mat(xs,.xt,.Gp,.c=[.5,..5,.1])\n |
176a0 | 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 | pl.plot(xs[:,.0],.xs[:,.1],.'+b' |
176c0 | 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c | ,.label='Source.samples')\npl.pl |
176e0 | 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 | ot(xt[:,.0],.xt[:,.1],.'xr',.lab |
17700 | 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 | el='Target.samples')\npl.axis('e |
17720 | 71 75 61 6c 27 29 5c 6e 23 20 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 | qual')\n#.pl.legend(loc=0)\npl.t |
17740 | 69 74 6c 65 28 27 4f 54 20 73 71 72 74 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 70 6c 2e 74 69 | itle('OT.sqrt.Euclidean')\npl.ti |
17760 | 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 | ght_layout()\n\npl.show()"...... |
17780 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
177a0 | 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | ":."markdown",......."metadata": |
177c0 | 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .{},......."source":.[........." |
177e0 | 44 61 74 61 73 65 74 20 32 20 3a 20 50 61 72 74 69 61 6c 20 63 69 72 63 6c 65 5c 6e 2d 2d 2d 2d | Dataset.2.:.Partial.circle\n---- |
17800 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 | ----------------------\n\n"..... |
17820 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
17840 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
17860 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
17880 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
178a0 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
178c0 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 35 30 20 20 23 20 6e 62 20 | ource":.[........."n.=.50..#.nb. |
178e0 | 73 61 6d 70 6c 65 73 5c 6e 78 74 6f 74 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 20 2b 20 31 2c | samples\nxtot.=.np.zeros((n.+.1, |
17900 | 20 32 29 29 5c 6e 78 74 6f 74 5b 3a 2c 20 30 5d 20 3d 20 6e 70 2e 63 6f 73 28 5c 6e 20 20 20 20 | .2))\nxtot[:,.0].=.np.cos(\n.... |
17920 | 28 6e 70 2e 61 72 61 6e 67 65 28 6e 20 2b 20 31 29 20 2b 20 31 2e 30 29 20 2a 20 30 2e 39 20 2f | (np.arange(n.+.1).+.1.0).*.0.9./ |
17940 | 20 28 6e 20 2b 20 32 29 20 2a 20 32 20 2a 20 6e 70 2e 70 69 29 5c 6e 78 74 6f 74 5b 3a 2c 20 31 | .(n.+.2).*.2.*.np.pi)\nxtot[:,.1 |
17960 | 5d 20 3d 20 6e 70 2e 73 69 6e 28 5c 6e 20 20 20 20 28 6e 70 2e 61 72 61 6e 67 65 28 6e 20 2b 20 | ].=.np.sin(\n....(np.arange(n.+. |
17980 | 31 29 20 2b 20 31 2e 30 29 20 2a 20 30 2e 39 20 2f 20 28 6e 20 2b 20 32 29 20 2a 20 32 20 2a 20 | 1).+.1.0).*.0.9./.(n.+.2).*.2.*. |
179a0 | 6e 70 2e 70 69 29 5c 6e 5c 6e 78 73 20 3d 20 78 74 6f 74 5b 3a 6e 2c 20 3a 5d 5c 6e 78 74 20 3d | np.pi)\n\nxs.=.xtot[:n,.:]\nxt.= |
179c0 | 20 78 74 6f 74 5b 31 3a 2c 20 3a 5d 5c 6e 5c 6e 61 2c 20 62 20 3d 20 6f 74 2e 75 6e 69 66 28 6e | .xtot[1:,.:]\n\na,.b.=.ot.unif(n |
179e0 | 29 2c 20 6f 74 2e 75 6e 69 66 28 6e 29 20 20 23 20 75 6e 69 66 6f 72 6d 20 64 69 73 74 72 69 62 | ),.ot.unif(n)..#.uniform.distrib |
17a00 | 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 | ution.on.samples\n\n#.loss.matri |
17a20 | 78 5c 6e 4d 31 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 | x\nM1.=.ot.dist(xs,.xt,.metric=' |
17a40 | 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 31 20 2f 3d 20 4d 31 2e 6d 61 78 28 29 5c 6e 5c 6e 23 | euclidean')\nM1./=.M1.max()\n\n# |
17a60 | 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 32 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 | .loss.matrix\nM2.=.ot.dist(xs,.x |
17a80 | 74 2c 20 6d 65 74 72 69 63 3d 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 32 20 2f 3d 20 | t,.metric='sqeuclidean')\nM2./=. |
17aa0 | 4d 32 2e 6d 61 78 28 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 70 20 3d 20 | M2.max()\n\n#.loss.matrix\nMp.=. |
17ac0 | 6e 70 2e 73 71 72 74 28 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 | np.sqrt(ot.dist(xs,.xt,.metric=' |
17ae0 | 65 75 63 6c 69 64 65 61 6e 27 29 29 5c 6e 4d 70 20 2f 3d 20 4d 70 2e 6d 61 78 28 29 5c 6e 5c 6e | euclidean'))\nMp./=.Mp.max()\n\n |
17b00 | 5c 6e 23 20 44 61 74 61 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 | \n#.Data\npl.figure(4,.figsize=( |
17b20 | 37 2c 20 33 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 | 7,.3))\npl.clf()\npl.plot(xs[:,. |
17b40 | 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 | 0],.xs[:,.1],.'+b',.label='Sourc |
17b60 | 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 | e.samples')\npl.plot(xt[:,.0],.x |
17b80 | 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d | t[:,.1],.'xr',.label='Target.sam |
17ba0 | 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 70 6c 2e 74 69 74 | ples')\npl.axis('equal')\npl.tit |
17bc0 | 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 72 61 67 65 74 20 64 69 73 74 72 69 62 75 74 69 | le('Source.and.traget.distributi |
17be0 | 6f 6e 73 27 29 5c 6e 5c 6e 5c 6e 23 20 43 6f 73 74 20 6d 61 74 72 69 63 65 73 5c 6e 70 6c 2e 66 | ons')\n\n\n#.Cost.matrices\npl.f |
17c00 | 69 67 75 72 65 28 35 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c 20 33 29 29 5c 6e 5c 6e 70 6c 2e 73 | igure(5,.figsize=(7,.3))\n\npl.s |
17c20 | 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 31 2c 20 69 | ubplot(1,.3,.1)\npl.imshow(M1,.i |
17c40 | 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c | nterpolation='nearest')\npl.titl |
17c60 | 65 28 27 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f | e('Euclidean.cost')\n\npl.subplo |
17c80 | 74 28 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 32 2c 20 69 6e 74 65 72 70 | t(1,.3,.2)\npl.imshow(M2,.interp |
17ca0 | 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 71 | olation='nearest')\npl.title('Sq |
17cc0 | 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 | uared.Euclidean.cost')\n\npl.sub |
17ce0 | 70 6c 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 70 2c 20 69 6e 74 | plot(1,.3,.3)\npl.imshow(Mp,.int |
17d00 | 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 | erpolation='nearest')\npl.title( |
17d20 | 27 53 71 72 74 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 70 6c 2e 74 69 67 68 74 | 'Sqrt.Euclidean.cost')\npl.tight |
17d40 | 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a | _layout()".......].....},.....{. |
17d60 | 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 | ......"cell_type":."markdown",.. |
17d80 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 | ....."metadata":.{},......."sour |
17da0 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 61 74 61 73 65 74 20 32 20 3a 20 50 6c 6f 74 | ce":.[........."Dataset.2.:.Plot |
17dc0 | 20 20 4f 54 20 4d 61 74 72 69 63 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ..OT.Matrices\n----------------- |
17de0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | ------------\n\n".......].....}, |
17e00 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 | .....{......."cell_type":."code" |
17e20 | 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | ,......."execution_count":.null, |
17e40 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f | ......."metadata":.{........."co |
17e60 | 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | llapsed":.false.......},......." |
17e80 | 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | outputs":.[],......."source":.[. |
17ea0 | 20 20 20 20 20 20 20 20 22 23 25 25 20 45 4d 44 5c 6e 47 31 20 3d 20 6f 74 2e 65 6d 64 28 61 2c | ........"#%%.EMD\nG1.=.ot.emd(a, |
17ec0 | 20 62 2c 20 4d 31 29 5c 6e 47 32 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 32 29 5c 6e | .b,.M1)\nG2.=.ot.emd(a,.b,.M2)\n |
17ee0 | 47 70 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 70 29 5c 6e 5c 6e 23 20 4f 54 20 6d 61 | Gp.=.ot.emd(a,.b,.Mp)\n\n#.OT.ma |
17f00 | 74 72 69 63 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 36 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c | trices\npl.figure(6,.figsize=(7, |
17f20 | 20 33 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 6f 74 2e | .3))\n\npl.subplot(1,.3,.1)\not. |
17f40 | 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 | plot.plot2D_samples_mat(xs,.xt,. |
17f60 | 47 31 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a | G1,.c=[.5,..5,.1])\npl.plot(xs[: |
17f80 | 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 | ,.0],.xs[:,.1],.'+b',.label='Sou |
17fa0 | 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c | rce.samples')\npl.plot(xt[:,.0], |
17fc0 | 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 | .xt[:,.1],.'xr',.label='Target.s |
17fe0 | 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c | amples')\npl.axis('equal')\n#.pl |
18000 | 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 45 75 63 | .legend(loc=0)\npl.title('OT.Euc |
18020 | 6c 69 64 65 61 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c | lidean')\n\npl.subplot(1,.3,.2)\ |
18040 | 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 | not.plot.plot2D_samples_mat(xs,. |
18060 | 78 74 2c 20 47 32 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 | xt,.G2,.c=[.5,..5,.1])\npl.plot( |
18080 | 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d | xs[:,.0],.xs[:,.1],.'+b',.label= |
180a0 | 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c | 'Source.samples')\npl.plot(xt[:, |
180c0 | 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 | .0],.xt[:,.1],.'xr',.label='Targ |
180e0 | 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e | et.samples')\npl.axis('equal')\n |
18100 | 23 20 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 | #.pl.legend(loc=0)\npl.title('OT |
18120 | 20 73 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c | .squared.Euclidean')\n\npl.subpl |
18140 | 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 | ot(1,.3,.3)\not.plot.plot2D_samp |
18160 | 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 70 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 | les_mat(xs,.xt,.Gp,.c=[.5,..5,.1 |
18180 | 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 | ])\npl.plot(xs[:,.0],.xs[:,.1],. |
181a0 | 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 | '+b',.label='Source.samples')\np |
181c0 | 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c | l.plot(xt[:,.0],.xt[:,.1],.'xr', |
181e0 | 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 | .label='Target.samples')\npl.axi |
18200 | 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e | s('equal')\n#.pl.legend(loc=0)\n |
18220 | 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 73 71 72 74 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 70 | pl.title('OT.sqrt.Euclidean')\np |
18240 | 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 | l.tight_layout()\n\npl.show()".. |
18260 | 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | .....].....}...],..."metadata":. |
18280 | 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 | {....."kernelspec":.{......."dis |
182a0 | 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c | play_name":."Python.3",......."l |
182c0 | 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 | anguage":."python",......."name" |
182e0 | 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 | :."python3".....},....."language |
18300 | 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 | _info":.{......."codemirror_mode |
18320 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a | ":.{........."name":."ipython",. |
18340 | 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | ........"version":.3.......},... |
18360 | 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 | ...."file_extension":.".py",.... |
18380 | 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a | ..."mimetype":."text/x-python",. |
183a0 | 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e | ......"name":."python",......."n |
183c0 | 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 | bconvert_exporter":."python",... |
183e0 | 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 | ...."pygments_lexer":."ipython3" |
18400 | 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 35 22 0a 20 20 20 20 7d | ,......."version":."3.6.5".....} |
18420 | 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d | ...},..."nbformat":.4,..."nbform |
18440 | 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 2d 60 cb 4c f9 b0 b7 c4 | at_minor":.0.}PK........-`.L.... |
18460 | b9 1d 00 00 b9 1d 00 00 24 00 00 00 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 6c 70 5f 76 | ........$...plot_barycenter_lp_v |
18480 | 73 5f 65 6e 74 72 6f 70 69 63 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 | s_entropic.ipynb{..."cells":.[.. |
184a0 | 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a | ...{......."cell_type":."code",. |
184c0 | 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 | ......"execution_count":.null,.. |
184e0 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c | ....."metadata":.{........."coll |
18500 | 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 | apsed":.false.......},......."ou |
18520 | 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | tputs":.[],......."source":.[... |
18540 | 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 | ......"%matplotlib.inline"...... |
18560 | 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 | .].....},.....{......."cell_type |
18580 | 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | ":."markdown",......."metadata": |
185a0 | 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .{},......."source":.[........." |
185c0 | 5c 6e 23 20 31 44 20 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 20 63 6f | \n#.1D.Wasserstein.barycenter.co |
185e0 | 6d 70 61 72 69 73 6f 6e 20 62 65 74 77 65 65 6e 20 65 78 61 63 74 20 4c 50 20 61 6e 64 20 65 6e | mparison.between.exact.LP.and.en |
18600 | 74 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 54 68 69 73 20 | tropic.regularization\n\n\nThis. |
18620 | 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 | example.illustrates.the.computat |
18640 | 69 6f 6e 20 6f 66 20 72 65 67 75 6c 61 72 69 7a 65 64 20 57 61 73 73 65 72 73 74 65 69 6e 20 42 | ion.of.regularized.Wasserstein.B |
18660 | 61 72 79 63 65 6e 74 65 72 5c 6e 61 73 20 70 72 6f 70 6f 73 65 64 20 69 6e 20 5b 33 5d 20 61 6e | arycenter\nas.proposed.in.[3].an |
18680 | 64 20 65 78 61 63 74 20 4c 50 20 62 61 72 79 63 65 6e 74 65 72 73 20 75 73 69 6e 67 20 73 74 61 | d.exact.LP.barycenters.using.sta |
186a0 | 6e 64 61 72 64 20 4c 50 20 73 6f 6c 76 65 72 2e 5c 6e 5c 6e 49 74 20 72 65 70 72 6f 64 75 63 65 | ndard.LP.solver.\n\nIt.reproduce |
186c0 | 73 20 61 70 70 72 6f 78 69 6d 61 74 65 6c 79 20 46 69 67 75 72 65 20 33 2e 31 20 61 6e 64 20 33 | s.approximately.Figure.3.1.and.3 |
186e0 | 2e 32 20 66 72 6f 6d 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 70 65 72 3a 5c 6e 43 75 | .2.from.the.following.paper:\nCu |
18700 | 74 75 72 69 2c 20 4d 2e 2c 20 26 20 50 65 79 72 5c 75 30 30 65 39 2c 20 47 2e 20 28 32 30 31 36 | turi,.M.,.&.Peyr\u00e9,.G..(2016 |
18720 | 29 2e 20 41 20 73 6d 6f 6f 74 68 65 64 20 64 75 61 6c 20 61 70 70 72 6f 61 63 68 20 66 6f 72 20 | )..A.smoothed.dual.approach.for. |
18740 | 76 61 72 69 61 74 69 6f 6e 61 6c 5c 6e 57 61 73 73 65 72 73 74 65 69 6e 20 70 72 6f 62 6c 65 6d | variational\nWasserstein.problem |
18760 | 73 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e | s..SIAM.Journal.on.Imaging.Scien |
18780 | 63 65 73 2c 20 39 28 31 29 2c 20 33 32 30 2d 33 34 33 2e 5c 6e 5c 6e 5b 33 5d 20 42 65 6e 61 6d | ces,.9(1),.320-343.\n\n[3].Benam |
187a0 | 6f 75 2c 20 4a 2e 20 44 2e 2c 20 43 61 72 6c 69 65 72 2c 20 47 2e 2c 20 43 75 74 75 72 69 2c 20 | ou,.J..D.,.Carlier,.G.,.Cuturi,. |
187c0 | 4d 2e 2c 20 4e 65 6e 6e 61 2c 20 4c 2e 2c 20 26 20 50 65 79 72 5c 75 30 30 65 39 2c 20 47 2e 20 | M.,.Nenna,.L.,.&.Peyr\u00e9,.G.. |
187e0 | 28 32 30 31 35 29 2e 5c 6e 49 74 65 72 61 74 69 76 65 20 42 72 65 67 6d 61 6e 20 70 72 6f 6a 65 | (2015).\nIterative.Bregman.proje |
18800 | 63 74 69 6f 6e 73 20 66 6f 72 20 72 65 67 75 6c 61 72 69 7a 65 64 20 74 72 61 6e 73 70 6f 72 74 | ctions.for.regularized.transport |
18820 | 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 73 5c 6e 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 | ation.problems\nSIAM.Journal.on. |
18840 | 53 63 69 65 6e 74 69 66 69 63 20 43 6f 6d 70 75 74 69 6e 67 2c 20 33 37 28 32 29 2c 20 41 31 31 | Scientific.Computing,.37(2),.A11 |
18860 | 31 31 2d 41 31 31 33 38 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | 11-A1138.\n\n\n".......].....},. |
18880 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ....{......."cell_type":."code", |
188a0 | 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a | ......."execution_count":.null,. |
188c0 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
188e0 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f | lapsed":.false.......},......."o |
18900 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | utputs":.[],......."source":.[.. |
18920 | 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c | ......."#.Author:.Remi.Flamary.< |
18940 | 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 | remi.flamary@unice.fr>\n#\n#.Lic |
18960 | 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 | ense:.MIT.License\n\nimport.nump |
18980 | 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 | y.as.np\nimport.matplotlib.pylab |
189a0 | 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 23 20 6e 65 63 65 73 73 61 72 79 20 66 | .as.pl\nimport.ot\n#.necessary.f |
189c0 | 6f 72 20 33 64 20 70 6c 6f 74 20 65 76 65 6e 20 69 66 20 6e 6f 74 20 75 73 65 64 5c 6e 66 72 6f | or.3d.plot.even.if.not.used\nfro |
189e0 | 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d 70 6f 72 74 20 41 78 | m.mpl_toolkits.mplot3d.import.Ax |
18a00 | 65 73 33 44 20 20 23 20 6e 6f 71 61 5c 6e 66 72 6f 6d 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 63 6f | es3D..#.noqa\nfrom.matplotlib.co |
18a20 | 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 20 | llections.import.PolyCollection. |
18a40 | 20 23 20 6e 6f 71 61 5c 6e 5c 6e 23 69 6d 70 6f 72 74 20 6f 74 2e 6c 70 2e 63 76 78 20 61 73 20 | .#.noqa\n\n#import.ot.lp.cvx.as. |
18a60 | 63 76 78 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 | cvx".......].....},.....{....... |
18a80 | 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 | "cell_type":."markdown",......." |
18aa0 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | metadata":.{},......."source":.[ |
18ac0 | 0a 20 20 20 20 20 20 20 20 22 47 61 75 73 73 69 61 6e 20 44 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d | ........."Gaussian.Data\n------- |
18ae0 | 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b | ------\n\n".......].....},.....{ |
18b00 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 | ......."cell_type":."code",..... |
18b20 | 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 | .."execution_count":.null,...... |
18b40 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 | ."metadata":.{........."collapse |
18b60 | 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 | d":.false.......},......."output |
18b80 | 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | s":.[],......."source":.[....... |
18ba0 | 20 20 22 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 70 72 6f 62 6c 65 6d 73 20 3d 20 | .."#%%.parameters\n\nproblems.=. |
18bc0 | 5b 5d 5c 6e 5c 6e 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 | []\n\nn.=.100..#.nb.bins\n\n#.bi |
18be0 | 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 20 64 74 | n.positions\nx.=.np.arange(n,.dt |
18c00 | 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 64 69 | ype=np.float64)\n\n#.Gaussian.di |
18c20 | 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 | stributions\n#.Gaussian.distribu |
18c40 | 74 69 6f 6e 73 5c 6e 61 31 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f | tions\na1.=.ot.datasets.make_1D_ |
18c60 | 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 | gauss(n,.m=20,.s=5)..#.m=.mean,. |
18c80 | 73 3d 20 73 74 64 5c 6e 61 32 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 | s=.std\na2.=.ot.datasets.make_1D |
18ca0 | 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 73 3d 38 29 5c 6e 5c 6e 23 20 63 72 65 61 74 69 | _gauss(n,.m=60,.s=8)\n\n#.creati |
18cc0 | 6e 67 20 6d 61 74 72 69 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 | ng.matrix.A.containing.all.distr |
18ce0 | 69 62 75 74 69 6f 6e 73 5c 6e 41 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 | ibutions\nA.=.np.vstack((a1,.a2) |
18d00 | 29 2e 54 5c 6e 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 | ).T\nn_distributions.=.A.shape[1 |
18d20 | 5d 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 | ]\n\n#.loss.matrix.+.normalizati |
18d40 | 6f 6e 5c 6e 4d 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 | on\nM.=.ot.utils.dist0(n)\nM./=. |
18d60 | 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 | M.max()\n\n\n#%%.plot.the.distri |
18d80 | 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d | butions\n\npl.figure(1,.figsize= |
18da0 | 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 | (6.4,.3))\nfor.i.in.range(n_dist |
18dc0 | 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c | ributions):\n....pl.plot(x,.A[:, |
18de0 | 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c | .i])\npl.title('Distributions')\ |
18e00 | 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 23 25 25 20 62 61 72 79 63 65 | npl.tight_layout()\n\n#%%.baryce |
18e20 | 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 5c 6e 61 6c 70 68 61 20 3d 20 30 2e 35 20 | nter.computation\n\nalpha.=.0.5. |
18e40 | 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 73 20 3d 20 6e 70 2e 61 72 72 | .#.0<=alpha<=1\nweights.=.np.arr |
18e60 | 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 5c 6e 5c 6e 23 20 6c 32 62 61 | ay([1.-.alpha,.alpha])\n\n#.l2ba |
18e80 | 72 79 5c 6e 62 61 72 79 5f 6c 32 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 6e 5c 6e | ry\nbary_l2.=.A.dot(weights)\n\n |
18ea0 | 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 5c 6e 6f 74 2e 74 69 | #.wasserstein\nreg.=.1e-3\not.ti |
18ec0 | 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 65 67 6d 61 6e 2e 62 61 72 79 | c()\nbary_wass.=.ot.bregman.bary |
18ee0 | 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 5c 6e 6f 74 2e 74 | center(A,.M,.reg,.weights)\not.t |
18f00 | 6f 63 28 29 5c 6e 5c 6e 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 73 32 20 3d | oc()\n\n\not.tic()\nbary_wass2.= |
18f20 | 20 6f 74 2e 6c 70 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 77 65 69 67 68 74 73 2c | .ot.lp.barycenter(A,.M,.weights, |
18f40 | 20 73 6f 6c 76 65 72 3d 27 69 6e 74 65 72 69 6f 72 2d 70 6f 69 6e 74 27 2c 20 76 65 72 62 6f 73 | .solver='interior-point',.verbos |
18f60 | 65 3d 54 72 75 65 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 | e=True)\not.toc()\n\npl.figure(2 |
18f80 | 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 31 29 | )\npl.clf()\npl.subplot(2,.1,.1) |
18fa0 | 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 | \nfor.i.in.range(n_distributions |
18fc0 | 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e | ):\n....pl.plot(x,.A[:,.i])\npl. |
18fe0 | 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 | title('Distributions')\n\npl.sub |
19000 | 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 6c | plot(2,.1,.2)\npl.plot(x,.bary_l |
19020 | 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 | 2,.'r',.label='l2')\npl.plot(x,. |
19040 | 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 6c 61 62 65 6c 3d 27 52 65 67 20 57 61 73 73 65 | bary_wass,.'g',.label='Reg.Wasse |
19060 | 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 32 2c | rstein')\npl.plot(x,.bary_wass2, |
19080 | 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 4c 50 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 | .'b',.label='LP.Wasserstein')\np |
190a0 | 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 | l.legend()\npl.title('Barycenter |
190c0 | 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 72 6f 62 6c 65 | s')\npl.tight_layout()\n\nproble |
190e0 | 6d 73 2e 61 70 70 65 6e 64 28 5b 41 2c 20 5b 62 61 72 79 5f 6c 32 2c 20 62 61 72 79 5f 77 61 73 | ms.append([A,.[bary_l2,.bary_was |
19100 | 73 2c 20 62 61 72 79 5f 77 61 73 73 32 5d 5d 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | s,.bary_wass2]])".......].....}, |
19120 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 | .....{......."cell_type":."markd |
19140 | 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 | own",......."metadata":.{},..... |
19160 | 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 69 72 61 63 20 44 61 74 | .."source":.[........."Dirac.Dat |
19180 | 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | a\n----------\n\n".......].....} |
191a0 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 | ,.....{......."cell_type":."code |
191c0 | 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c | ",......."execution_count":.null |
191e0 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 | ,......."metadata":.{........."c |
19200 | 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 | ollapsed":.false.......},....... |
19220 | 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | "outputs":.[],......."source":.[ |
19240 | 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 61 31 20 3d | ........."#%%.parameters\n\na1.= |
19260 | 20 31 2e 30 20 2a 20 28 78 20 3e 20 31 30 29 20 2a 20 28 78 20 3c 20 35 30 29 5c 6e 61 32 20 3d | .1.0.*.(x.>.10).*.(x.<.50)\na2.= |
19280 | 20 31 2e 30 20 2a 20 28 78 20 3e 20 36 30 29 20 2a 20 28 78 20 3c 20 38 30 29 5c 6e 5c 6e 61 31 | .1.0.*.(x.>.60).*.(x.<.80)\n\na1 |
192a0 | 20 2f 3d 20 61 31 2e 73 75 6d 28 29 5c 6e 61 32 20 2f 3d 20 61 32 2e 73 75 6d 28 29 5c 6e 5c 6e | ./=.a1.sum()\na2./=.a2.sum()\n\n |
192c0 | 23 20 63 72 65 61 74 69 6e 67 20 6d 61 74 72 69 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 | #.creating.matrix.A.containing.a |
192e0 | 6c 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 41 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 | ll.distributions\nA.=.np.vstack( |
19300 | 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 3d 20 41 | (a1,.a2)).T\nn_distributions.=.A |
19320 | 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 | .shape[1]\n\n#.loss.matrix.+.nor |
19340 | 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e | malization\nM.=.ot.utils.dist0(n |
19360 | 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 74 68 | )\nM./=.M.max()\n\n\n#%%.plot.th |
19380 | 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 | e.distributions\n\npl.figure(1,. |
193a0 | 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 | figsize=(6.4,.3))\nfor.i.in.rang |
193c0 | 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 | e(n_distributions):\n....pl.plot |
193e0 | 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 | (x,.A[:,.i])\npl.title('Distribu |
19400 | 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 5c 6e | tions')\npl.tight_layout()\n\n\n |
19420 | 23 25 25 20 62 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 5c 6e 61 6c | #%%.barycenter.computation\n\nal |
19440 | 70 68 61 20 3d 20 30 2e 35 20 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 | pha.=.0.5..#.0<=alpha<=1\nweight |
19460 | 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 | s.=.np.array([1.-.alpha,.alpha]) |
19480 | 5c 6e 5c 6e 23 20 6c 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 20 3d 20 41 2e 64 6f 74 28 77 65 | \n\n#.l2bary\nbary_l2.=.A.dot(we |
194a0 | 69 67 68 74 73 29 5c 6e 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 20 3d 20 31 | ights)\n\n#.wasserstein\nreg.=.1 |
194c0 | 65 2d 33 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 | e-3\not.tic()\nbary_wass.=.ot.br |
194e0 | 65 67 6d 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 | egman.barycenter(A,.M,.reg,.weig |
19500 | 68 74 73 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 | hts)\not.toc()\n\n\not.tic()\nba |
19520 | 72 79 5f 77 61 73 73 32 20 3d 20 6f 74 2e 6c 70 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d | ry_wass2.=.ot.lp.barycenter(A,.M |
19540 | 2c 20 77 65 69 67 68 74 73 2c 20 73 6f 6c 76 65 72 3d 27 69 6e 74 65 72 69 6f 72 2d 70 6f 69 6e | ,.weights,.solver='interior-poin |
19560 | 74 27 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c | t',.verbose=True)\not.toc()\n\n\ |
19580 | 6e 70 72 6f 62 6c 65 6d 73 2e 61 70 70 65 6e 64 28 5b 41 2c 20 5b 62 61 72 79 5f 6c 32 2c 20 62 | nproblems.append([A,.[bary_l2,.b |
195a0 | 61 72 79 5f 77 61 73 73 2c 20 62 61 72 79 5f 77 61 73 73 32 5d 5d 29 5c 6e 5c 6e 70 6c 2e 66 69 | ary_wass,.bary_wass2]])\n\npl.fi |
195c0 | 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c | gure(2)\npl.clf()\npl.subplot(2, |
195e0 | 20 31 2c 20 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 | .1,.1)\nfor.i.in.range(n_distrib |
19600 | 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d | utions):\n....pl.plot(x,.A[:,.i] |
19620 | 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e | )\npl.title('Distributions')\n\n |
19640 | 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 | pl.subplot(2,.1,.2)\npl.plot(x,. |
19660 | 62 61 72 79 5f 6c 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c | bary_l2,.'r',.label='l2')\npl.pl |
19680 | 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 6c 61 62 65 6c 3d 27 52 65 67 | ot(x,.bary_wass,.'g',.label='Reg |
196a0 | 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f | .Wasserstein')\npl.plot(x,.bary_ |
196c0 | 77 61 73 73 32 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 4c 50 20 57 61 73 73 65 72 73 74 65 69 | wass2,.'b',.label='LP.Wasserstei |
196e0 | 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 | n')\npl.legend()\npl.title('Bary |
19700 | 63 65 6e 74 65 72 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e | centers')\npl.tight_layout()\n\n |
19720 | 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 61 31 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 | #%%.parameters\n\na1.=.np.zeros( |
19740 | 6e 29 5c 6e 61 32 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 6e 29 5c 6e 5c 6e 61 31 5b 31 30 5d 20 3d | n)\na2.=.np.zeros(n)\n\na1[10].= |
19760 | 20 2e 32 35 5c 6e 61 31 5b 32 30 5d 20 3d 20 2e 35 5c 6e 61 31 5b 33 30 5d 20 3d 20 2e 32 35 5c | ..25\na1[20].=..5\na1[30].=..25\ |
19780 | 6e 61 32 5b 38 30 5d 20 3d 20 31 5c 6e 5c 6e 5c 6e 61 31 20 2f 3d 20 61 31 2e 73 75 6d 28 29 5c | na2[80].=.1\n\n\na1./=.a1.sum()\ |
197a0 | 6e 61 32 20 2f 3d 20 61 32 2e 73 75 6d 28 29 5c 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 | na2./=.a2.sum()\n\n#.creating.ma |
197c0 | 74 72 69 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 | trix.A.containing.all.distributi |
197e0 | 6f 6e 73 5c 6e 41 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e | ons\nA.=.np.vstack((a1,.a2)).T\n |
19800 | 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e | n_distributions.=.A.shape[1]\n\n |
19820 | 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d | #.loss.matrix.+.normalization\nM |
19840 | 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 | .=.ot.utils.dist0(n)\nM./=.M.max |
19860 | 28 29 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f | ()\n\n\n#%%.plot.the.distributio |
19880 | 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c | ns\n\npl.figure(1,.figsize=(6.4, |
198a0 | 20 33 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 | .3))\nfor.i.in.range(n_distribut |
198c0 | 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c | ions):\n....pl.plot(x,.A[:,.i])\ |
198e0 | 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 | npl.title('Distributions')\npl.t |
19900 | 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 5c 6e 23 25 25 20 62 61 72 79 63 65 6e 74 65 | ight_layout()\n\n\n#%%.barycente |
19920 | 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 5c 6e 61 6c 70 68 61 20 3d 20 30 2e 35 20 20 23 20 | r.computation\n\nalpha.=.0.5..#. |
19940 | 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 | 0<=alpha<=1\nweights.=.np.array( |
19960 | 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 5c 6e 5c 6e 23 20 6c 32 62 61 72 79 5c | [1.-.alpha,.alpha])\n\n#.l2bary\ |
19980 | 6e 62 61 72 79 5f 6c 32 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 6e 5c 6e 23 20 77 | nbary_l2.=.A.dot(weights)\n\n#.w |
199a0 | 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 5c 6e 6f 74 2e 74 69 63 28 29 | asserstein\nreg.=.1e-3\not.tic() |
199c0 | 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 65 67 6d 61 6e 2e 62 61 72 79 63 65 6e | \nbary_wass.=.ot.bregman.barycen |
199e0 | 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 5c 6e 6f 74 2e 74 6f 63 28 | ter(A,.M,.reg,.weights)\not.toc( |
19a00 | 29 5c 6e 5c 6e 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 73 32 20 3d 20 6f 74 | )\n\n\not.tic()\nbary_wass2.=.ot |
19a20 | 2e 6c 70 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 77 65 69 67 68 74 73 2c 20 73 6f | .lp.barycenter(A,.M,.weights,.so |
19a40 | 6c 76 65 72 3d 27 69 6e 74 65 72 69 6f 72 2d 70 6f 69 6e 74 27 2c 20 76 65 72 62 6f 73 65 3d 54 | lver='interior-point',.verbose=T |
19a60 | 72 75 65 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c 6e 70 72 6f 62 6c 65 6d 73 2e 61 70 70 | rue)\not.toc()\n\n\nproblems.app |
19a80 | 65 6e 64 28 5b 41 2c 20 5b 62 61 72 79 5f 6c 32 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 62 61 72 | end([A,.[bary_l2,.bary_wass,.bar |
19aa0 | 79 5f 77 61 73 73 32 5d 5d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 | y_wass2]])\n\npl.figure(2)\npl.c |
19ac0 | 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 31 29 5c 6e 66 6f 72 20 69 | lf()\npl.subplot(2,.1,.1)\nfor.i |
19ae0 | 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 | .in.range(n_distributions):\n... |
19b00 | 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 | .pl.plot(x,.A[:,.i])\npl.title(' |
19b20 | 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c | Distributions')\n\npl.subplot(2, |
19b40 | 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 6c 32 2c 20 27 72 27 2c | .1,.2)\npl.plot(x,.bary_l2,.'r', |
19b60 | 20 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 | .label='l2')\npl.plot(x,.bary_wa |
19b80 | 73 73 2c 20 27 67 27 2c 20 6c 61 62 65 6c 3d 27 52 65 67 20 57 61 73 73 65 72 73 74 65 69 6e 27 | ss,.'g',.label='Reg.Wasserstein' |
19ba0 | 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 32 2c 20 27 62 27 2c 20 6c | )\npl.plot(x,.bary_wass2,.'b',.l |
19bc0 | 61 62 65 6c 3d 27 4c 50 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e | abel='LP.Wasserstein')\npl.legen |
19be0 | 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 73 27 29 5c 6e 70 6c | d()\npl.title('Barycenters')\npl |
19c00 | 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | .tight_layout()".......].....},. |
19c20 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f | ....{......."cell_type":."markdo |
19c40 | 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 | wn",......."metadata":.{},...... |
19c60 | 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 6e 61 6c 20 66 69 67 75 | ."source":.[........."Final.figu |
19c80 | 72 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a | re\n------------\n\n\n".......]. |
19ca0 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
19cc0 | 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a | "code",......."execution_count": |
19ce0 | 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 | .null,......."metadata":.{...... |
19d00 | 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 | ..."collapsed":.false.......},.. |
19d20 | 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 | ....."outputs":.[],......."sourc |
19d40 | 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 5c 6e 5c 6e 6e 62 6d 20 3d | e":.[........."#%%.plot\n\nnbm.= |
19d60 | 20 6c 65 6e 28 70 72 6f 62 6c 65 6d 73 29 5c 6e 6e 62 6d 32 20 3d 20 28 6e 62 6d 20 2f 2f 20 32 | .len(problems)\nnbm2.=.(nbm.//.2 |
19d80 | 29 5c 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 28 32 30 2c 20 36 29 29 5c 6e 70 6c | )\n\n\npl.figure(2,.(20,.6))\npl |
19da0 | 2e 63 6c 66 28 29 5c 6e 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 6d 29 3a 5c 6e | .clf()\n\nfor.i.in.range(nbm):\n |
19dc0 | 5c 6e 20 20 20 20 41 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 30 5d 5c 6e 20 20 20 20 62 61 | \n....A.=.problems[i][0]\n....ba |
19de0 | 72 79 5f 6c 32 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 31 5d 5b 30 5d 5c 6e 20 20 20 20 62 | ry_l2.=.problems[i][1][0]\n....b |
19e00 | 61 72 79 5f 77 61 73 73 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 31 5d 5b 31 5d 5c 6e 20 20 | ary_wass.=.problems[i][1][1]\n.. |
19e20 | 20 20 62 61 72 79 5f 77 61 73 73 32 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 31 5d 5b 32 5d | ..bary_wass2.=.problems[i][1][2] |
19e40 | 5c 6e 5c 6e 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 6e 62 6d 2c 20 31 20 2b 20 69 | \n\n....pl.subplot(2,.nbm,.1.+.i |
19e60 | 29 5c 6e 20 20 20 20 66 6f 72 20 6a 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 | )\n....for.j.in.range(n_distribu |
19e80 | 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c | tions):\n........pl.plot(x,.A[:, |
19ea0 | 20 6a 5d 29 5c 6e 20 20 20 20 69 66 20 69 20 3d 3d 20 6e 62 6d 32 3a 5c 6e 20 20 20 20 20 20 20 | .j])\n....if.i.==.nbm2:\n....... |
19ec0 | 20 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 20 20 20 20 | .pl.title('Distributions')\n.... |
19ee0 | 70 6c 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 20 20 20 20 70 6c 2e 79 74 69 63 6b 73 28 28 29 29 | pl.xticks(())\n....pl.yticks(()) |
19f00 | 5c 6e 5c 6e 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 6e 62 6d 2c 20 31 20 2b 20 69 | \n\n....pl.subplot(2,.nbm,.1.+.i |
19f20 | 20 2b 20 6e 62 6d 29 5c 6e 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 6c | .+.nbm)\n\n....pl.plot(x,.bary_l |
19f40 | 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 4c 32 20 28 45 75 63 6c 69 64 65 61 6e 29 27 29 5c | 2,.'r',.label='L2.(Euclidean)')\ |
19f60 | 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 | n....pl.plot(x,.bary_wass,.'g',. |
19f80 | 6c 61 62 65 6c 3d 27 52 65 67 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 20 20 20 20 70 6c | label='Reg.Wasserstein')\n....pl |
19fa0 | 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 32 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d | .plot(x,.bary_wass2,.'b',.label= |
19fc0 | 27 4c 50 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 20 20 20 20 69 66 20 69 20 3d 3d 20 6e | 'LP.Wasserstein')\n....if.i.==.n |
19fe0 | 62 6d 20 2d 20 31 3a 5c 6e 20 20 20 20 20 20 20 20 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 20 20 | bm.-.1:\n........pl.legend()\n.. |
1a000 | 20 20 69 66 20 69 20 3d 3d 20 6e 62 6d 32 3a 5c 6e 20 20 20 20 20 20 20 20 70 6c 2e 74 69 74 6c | ..if.i.==.nbm2:\n........pl.titl |
1a020 | 65 28 27 42 61 72 79 63 65 6e 74 65 72 73 27 29 5c 6e 5c 6e 20 20 20 20 70 6c 2e 78 74 69 63 6b | e('Barycenters')\n\n....pl.xtick |
1a040 | 73 28 28 29 29 5c 6e 20 20 20 20 70 6c 2e 79 74 69 63 6b 73 28 28 29 29 22 0a 20 20 20 20 20 20 | s(())\n....pl.yticks(())"....... |
1a060 | 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 | ].....}...],..."metadata":.{.... |
1a080 | 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f | ."kernelspec":.{......."display_ |
1a0a0 | 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 | name":."Python.3",......."langua |
1a0c0 | 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 | ge":."python",......."name":."py |
1a0e0 | 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f | thon3".....},....."language_info |
1a100 | 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a | ":.{......."codemirror_mode":.{. |
1a120 | 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 | ........"name":."ipython",...... |
1a140 | 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | ..."version":.3.......},......." |
1a160 | 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d | file_extension":.".py",......."m |
1a180 | 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 | imetype":."text/x-python",...... |
1a1a0 | 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 | ."name":."python",......."nbconv |
1a1c0 | 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 | ert_exporter":."python",......." |
1a1e0 | 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 | pygments_lexer":."ipython3",.... |
1a200 | 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c | ..."version":."3.6.5".....}...}, |
1a220 | 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 | ..."nbformat":.4,..."nbformat_mi |
1a240 | 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 04 72 d9 4e 43 f7 2c fd 72 13 00 00 72 | nor":.0.}PK.........r.NC.,.r...r |
1a260 | 13 00 00 18 00 00 00 70 6c 6f 74 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 2e 69 70 79 6e 62 7b | .......plot_OT_2D_samples.ipynb{ |
1a280 | 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f | ..."cells":.[.....{......."cell_ |
1a2a0 | 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f | type":."code",......."execution_ |
1a2c0 | 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | count":.null,......."metadata":. |
1a2e0 | 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 | {........."collapsed":.false.... |
1a300 | 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 | ...},......."outputs":.[],...... |
1a320 | 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 | ."source":.[........."%matplotli |
1a340 | 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 | b.inline".......].....},.....{.. |
1a360 | 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 | ....."cell_type":."markdown",... |
1a380 | 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 | ...."metadata":.{},......."sourc |
1a3a0 | 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 32 44 20 4f 70 74 69 6d 61 6c 20 74 72 | e":.[........."\n#.2D.Optimal.tr |
1a3c0 | 61 6e 73 70 6f 72 74 20 62 65 74 77 65 65 6e 20 65 6d 70 69 72 69 63 61 6c 20 64 69 73 74 72 69 | ansport.between.empirical.distri |
1a3e0 | 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 49 6c 6c 75 73 74 72 61 74 69 6f 6e 20 6f 66 20 32 44 20 | butions\n\n\nIllustration.of.2D. |
1a400 | 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 62 65 74 77 65 65 6e 20 64 69 73 63 72 69 | optimal.transport.between.discri |
1a420 | 62 75 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 77 65 69 67 68 74 65 64 5c 6e 73 75 6d 20 6f | butions.that.are.weighted\nsum.o |
1a440 | 66 20 64 69 72 61 63 73 2e 20 54 68 65 20 4f 54 20 6d 61 74 72 69 78 20 69 73 20 70 6c 6f 74 74 | f.diracs..The.OT.matrix.is.plott |
1a460 | 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 70 6c 65 73 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 | ed.with.the.samples.\n\n\n"..... |
1a480 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
1a4a0 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
1a4c0 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
1a4e0 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
1a500 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
1a520 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d | ource":.[........."#.Author:.Rem |
1a540 | 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 | i.Flamary.<remi.flamary@unice.fr |
1a560 | 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 4b 69 6c 69 61 6e 20 46 61 74 72 61 73 20 3c 6b 69 6c 69 | >\n#.........Kilian.Fatras.<kili |
1a580 | 61 6e 2e 66 61 74 72 61 73 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 | an.fatras@irisa.fr>\n#\n#.Licens |
1a5a0 | 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 | e:.MIT.License\n\nimport.numpy.a |
1a5c0 | 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 | s.np\nimport.matplotlib.pylab.as |
1a5e0 | 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 22 0a | .pl\nimport.ot\nimport.ot.plot". |
1a600 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
1a620 | 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 | _type":."markdown",......."metad |
1a640 | 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | ata":.{},......."source":.[..... |
1a660 | 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...."Generate.data\n------------ |
1a680 | 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 | -\n\n".......].....},.....{..... |
1a6a0 | 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 | .."cell_type":."code",......."ex |
1a6c0 | 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ecution_count":.null,......."met |
1a6e0 | 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 | adata":.{........."collapsed":.f |
1a700 | 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b | alse.......},......."outputs":.[ |
1a720 | 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 | ],......."source":.[........."#% |
1a740 | 25 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 64 61 74 61 20 67 65 6e 65 72 61 74 69 6f 6e | %.parameters.and.data.generation |
1a760 | 5c 6e 5c 6e 6e 20 3d 20 35 30 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 6d 75 5f 73 | \n\nn.=.50..#.nb.samples\n\nmu_s |
1a780 | 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 30 2c 20 30 5d 29 5c 6e 63 6f 76 5f 73 20 3d 20 6e 70 2e | .=.np.array([0,.0])\ncov_s.=.np. |
1a7a0 | 61 72 72 61 79 28 5b 5b 31 2c 20 30 5d 2c 20 5b 30 2c 20 31 5d 5d 29 5c 6e 5c 6e 6d 75 5f 74 20 | array([[1,.0],.[0,.1]])\n\nmu_t. |
1a7c0 | 3d 20 6e 70 2e 61 72 72 61 79 28 5b 34 2c 20 34 5d 29 5c 6e 63 6f 76 5f 74 20 3d 20 6e 70 2e 61 | =.np.array([4,.4])\ncov_t.=.np.a |
1a7e0 | 72 72 61 79 28 5b 5b 31 2c 20 2d 2e 38 5d 2c 20 5b 2d 2e 38 2c 20 31 5d 5d 29 5c 6e 5c 6e 78 73 | rray([[1,.-.8],.[-.8,.1]])\n\nxs |
1a800 | 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 | .=.ot.datasets.make_2D_samples_g |
1a820 | 61 75 73 73 28 6e 2c 20 6d 75 5f 73 2c 20 63 6f 76 5f 73 29 5c 6e 78 74 20 3d 20 6f 74 2e 64 61 | auss(n,.mu_s,.cov_s)\nxt.=.ot.da |
1a840 | 74 61 73 65 74 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 2c 20 | tasets.make_2D_samples_gauss(n,. |
1a860 | 6d 75 5f 74 2c 20 63 6f 76 5f 74 29 5c 6e 5c 6e 61 2c 20 62 20 3d 20 6e 70 2e 6f 6e 65 73 28 28 | mu_t,.cov_t)\n\na,.b.=.np.ones(( |
1a880 | 6e 2c 29 29 20 2f 20 6e 2c 20 6e 70 2e 6f 6e 65 73 28 28 6e 2c 29 29 20 2f 20 6e 20 20 23 20 75 | n,))./.n,.np.ones((n,))./.n..#.u |
1a8a0 | 6e 69 66 6f 72 6d 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 5c 6e | niform.distribution.on.samples\n |
1a8c0 | 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 2c | \n#.loss.matrix\nM.=.ot.dist(xs, |
1a8e0 | 20 78 74 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 | .xt)\nM./=.M.max()".......]..... |
1a900 | 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 | },.....{......."cell_type":."mar |
1a920 | 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 | kdown",......."metadata":.{},... |
1a940 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 | ...."source":.[........."Plot.da |
1a960 | 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | ta\n---------\n\n".......].....} |
1a980 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 | ,.....{......."cell_type":."code |
1a9a0 | 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c | ",......."execution_count":.null |
1a9c0 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 | ,......."metadata":.{........."c |
1a9e0 | 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 | ollapsed":.false.......},....... |
1aa00 | 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | "outputs":.[],......."source":.[ |
1aa20 | 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 70 6c | ........."#%%.plot.samples\n\npl |
1aa40 | 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 | .figure(1)\npl.plot(xs[:,.0],.xs |
1aa60 | 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 | [:,.1],.'+b',.label='Source.samp |
1aa80 | 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 | les')\npl.plot(xt[:,.0],.xt[:,.1 |
1aaa0 | 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 | ],.'xr',.label='Target.samples') |
1aac0 | 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f | \npl.legend(loc=0)\npl.title('So |
1aae0 | 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c | urce.and.target.distributions')\ |
1ab00 | 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 20 69 6e | n\npl.figure(2)\npl.imshow(M,.in |
1ab20 | 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 | terpolation='nearest')\npl.title |
1ab40 | 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | ('Cost.matrix.M')".......].....} |
1ab60 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
1ab80 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
1aba0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 | ..."source":.[........."Compute. |
1abc0 | 45 4d 44 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 | EMD\n-----------\n\n".......]... |
1abe0 | 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 | ..},.....{......."cell_type":."c |
1ac00 | 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e | ode",......."execution_count":.n |
1ac20 | 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 | ull,......."metadata":.{........ |
1ac40 | 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 | ."collapsed":.false.......},.... |
1ac60 | 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 | ..."outputs":.[],......."source" |
1ac80 | 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 20 3d 20 6f 74 2e | :.[........."#%%.EMD\n\nG0.=.ot. |
1aca0 | 65 6d 64 28 61 2c 20 62 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 29 5c 6e 70 6c | emd(a,.b,.M)\n\npl.figure(3)\npl |
1acc0 | 2e 69 6d 73 68 6f 77 28 47 30 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 | .imshow(G0,.interpolation='neare |
1ace0 | 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 5c 6e | st')\npl.title('OT.matrix.G0')\n |
1ad00 | 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 | \npl.figure(4)\not.plot.plot2D_s |
1ad20 | 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 30 2c 20 63 3d 5b 2e 35 2c 20 2e 35 | amples_mat(xs,.xt,.G0,.c=[.5,..5 |
1ad40 | 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 | ,.1])\npl.plot(xs[:,.0],.xs[:,.1 |
1ad60 | 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 | ],.'+b',.label='Source.samples') |
1ad80 | 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 | \npl.plot(xt[:,.0],.xt[:,.1],.'x |
1ada0 | 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e | r',.label='Target.samples')\npl. |
1adc0 | 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 | legend(loc=0)\npl.title('OT.matr |
1ade0 | 69 78 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | ix.with.samples')".......].....} |
1ae00 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
1ae20 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
1ae40 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 | ..."source":.[........."Compute. |
1ae60 | 53 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a | Sinkhorn\n----------------\n\n". |
1ae80 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
1aea0 | 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e | _type":."code",......."execution |
1aec0 | 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | _count":.null,......."metadata": |
1aee0 | 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 | .{........."collapsed":.false... |
1af00 | 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 | ....},......."outputs":.[],..... |
1af20 | 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 73 69 6e 6b 68 | .."source":.[........."#%%.sinkh |
1af40 | 6f 72 6e 5c 6e 5c 6e 23 20 72 65 67 20 74 65 72 6d 5c 6e 6c 61 6d 62 64 20 3d 20 31 65 2d 33 5c | orn\n\n#.reg.term\nlambd.=.1e-3\ |
1af60 | 6e 5c 6e 47 73 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 4d 2c 20 6c 61 6d | n\nGs.=.ot.sinkhorn(a,.b,.M,.lam |
1af80 | 62 64 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 | bd)\n\npl.figure(5)\npl.imshow(G |
1afa0 | 73 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e | s,.interpolation='nearest')\npl. |
1afc0 | 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 | title('OT.matrix.sinkhorn')\n\np |
1afe0 | 6c 2e 66 69 67 75 72 65 28 36 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 | l.figure(6)\not.plot.plot2D_samp |
1b000 | 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 73 2c 20 63 6f 6c 6f 72 3d 5b 2e 35 2c 20 2e | les_mat(xs,.xt,.Gs,.color=[.5,.. |
1b020 | 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 | 5,.1])\npl.plot(xs[:,.0],.xs[:,. |
1b040 | 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 | 1],.'+b',.label='Source.samples' |
1b060 | 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 | )\npl.plot(xt[:,.0],.xt[:,.1],.' |
1b080 | 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c | xr',.label='Target.samples')\npl |
1b0a0 | 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 | .legend(loc=0)\npl.title('OT.mat |
1b0c0 | 72 69 78 20 53 69 6e 6b 68 6f 72 6e 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 | rix.Sinkhorn.with.samples')\n\np |
1b0e0 | 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 | l.show()".......].....},.....{.. |
1b100 | 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 | ....."cell_type":."markdown",... |
1b120 | 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 | ...."metadata":.{},......."sourc |
1b140 | 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 6d 70 72 69 72 69 63 61 6c 20 53 69 6e 6b 68 6f | e":.[........."Emprirical.Sinkho |
1b160 | 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 | rn\n----------------\n\n"....... |
1b180 | 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ].....},.....{......."cell_type" |
1b1a0 | 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 | :."code",......."execution_count |
1b1c0 | 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 | ":.null,......."metadata":.{.... |
1b1e0 | 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c | ....."collapsed":.false.......}, |
1b200 | 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......."outputs":.[],......."sou |
1b220 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 73 69 6e 6b 68 6f 72 6e 5c 6e 5c | rce":.[........."#%%.sinkhorn\n\ |
1b240 | 6e 23 20 72 65 67 20 74 65 72 6d 5c 6e 6c 61 6d 62 64 20 3d 20 31 65 2d 33 5c 6e 5c 6e 47 65 73 | n#.reg.term\nlambd.=.1e-3\n\nGes |
1b260 | 20 3d 20 6f 74 2e 62 72 65 67 6d 61 6e 2e 65 6d 70 69 72 69 63 61 6c 5f 73 69 6e 6b 68 6f 72 6e | .=.ot.bregman.empirical_sinkhorn |
1b280 | 28 78 73 2c 20 78 74 2c 20 6c 61 6d 62 64 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 37 29 5c | (xs,.xt,.lambd)\n\npl.figure(7)\ |
1b2a0 | 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 65 73 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e | npl.imshow(Ges,.interpolation='n |
1b2c0 | 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 65 6d | earest')\npl.title('OT.matrix.em |
1b2e0 | 70 69 72 69 63 61 6c 20 73 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 | pirical.sinkhorn')\n\npl.figure( |
1b300 | 38 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 | 8)\not.plot.plot2D_samples_mat(x |
1b320 | 73 2c 20 78 74 2c 20 47 65 73 2c 20 63 6f 6c 6f 72 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e | s,.xt,.Ges,.color=[.5,..5,.1])\n |
1b340 | 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 | pl.plot(xs[:,.0],.xs[:,.1],.'+b' |
1b360 | 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c | ,.label='Source.samples')\npl.pl |
1b380 | 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 | ot(xt[:,.0],.xt[:,.1],.'xr',.lab |
1b3a0 | 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 | el='Target.samples')\npl.legend( |
1b3c0 | 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b | loc=0)\npl.title('OT.matrix.Sink |
1b3e0 | 68 6f 72 6e 20 66 72 6f 6d 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 | horn.from.samples')\n\npl.show() |
1b400 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 | ".......].....}...],..."metadata |
1b420 | 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 | ":.{....."kernelspec":.{......." |
1b440 | 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 | display_name":."Python.3",...... |
1b460 | 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 | ."language":."python",......."na |
1b480 | 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 | me":."python3".....},....."langu |
1b4a0 | 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d | age_info":.{......."codemirror_m |
1b4c0 | 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e | ode":.{........."name":."ipython |
1b4e0 | 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c | ",........."version":.3.......}, |
1b500 | 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a | ......."file_extension":.".py",. |
1b520 | 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e | ......"mimetype":."text/x-python |
1b540 | 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 | ",......."name":."python",...... |
1b560 | 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c | ."nbconvert_exporter":."python", |
1b580 | 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f | ......."pygments_lexer":."ipytho |
1b5a0 | 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 38 22 0a 20 20 | n3",......."version":."3.6.8"... |
1b5c0 | 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 | ..}...},..."nbformat":.4,..."nbf |
1b5e0 | 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 2d 60 cb 4c b5 | ormat_minor":.0.}PK........-`.L. |
1b600 | c3 fd 1f 0a 15 00 00 0a 15 00 00 1e 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 6c 69 6e 65 61 72 5f | ...............plot_otda_linear_ |
1b620 | 6d 61 70 70 69 6e 67 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 | mapping.ipynb{..."cells":.[..... |
1b640 | 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 | {......."cell_type":."code",.... |
1b660 | 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 | ..."execution_count":.null,..... |
1b680 | 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 | .."metadata":.{........."collaps |
1b6a0 | 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 | ed":.false.......},......."outpu |
1b6c0 | 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 | ts":.[],......."source":.[...... |
1b6e0 | 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a | ..."%matplotlib.inline".......]. |
1b700 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
1b720 | 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d | "markdown",......."metadata":.{} |
1b740 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 | ,......."source":.[........."\n# |
1b760 | 20 4c 69 6e 65 61 72 20 4f 54 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 5c 6e 5c | .Linear.OT.mapping.estimation\n\ |
1b780 | 6e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | n\n\n\n".......].....},.....{... |
1b7a0 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 | ...."cell_type":."code",......." |
1b7c0 | 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d | execution_count":.null,......."m |
1b7e0 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a | etadata":.{........."collapsed": |
1b800 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | .false.......},......."outputs": |
1b820 | 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .[],......."source":.[........." |
1b840 | 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 | #.Author:.Remi.Flamary.<remi.fla |
1b860 | 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 | mary@unice.fr>\n#\n#.License:.MI |
1b880 | 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c | T.License\n\nimport.numpy.as.np\ |
1b8a0 | 6e 69 6d 70 6f 72 74 20 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a | nimport.pylab.as.pl\nimport.ot". |
1b8c0 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
1b8e0 | 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 | _type":."markdown",......."metad |
1b900 | 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | ata":.{},......."source":.[..... |
1b920 | 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...."Generate.data\n------------ |
1b940 | 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 | -\n\n".......].....},.....{..... |
1b960 | 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 | .."cell_type":."code",......."ex |
1b980 | 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ecution_count":.null,......."met |
1b9a0 | 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 | adata":.{........."collapsed":.f |
1b9c0 | 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b | alse.......},......."outputs":.[ |
1b9e0 | 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 | ],......."source":.[........."n. |
1ba00 | 3d 20 31 30 30 30 5c 6e 64 20 3d 20 32 5c 6e 73 69 67 6d 61 20 3d 20 2e 31 5c 6e 5c 6e 23 20 73 | =.1000\nd.=.2\nsigma.=..1\n\n#.s |
1ba20 | 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 5c 6e 61 6e 67 6c 65 73 20 3d 20 6e 70 2e 72 61 6e 64 6f | ource.samples\nangles.=.np.rando |
1ba40 | 6d 2e 72 61 6e 64 28 6e 2c 20 31 29 20 2a 20 32 20 2a 20 6e 70 2e 70 69 5c 6e 78 73 20 3d 20 6e | m.rand(n,.1).*.2.*.np.pi\nxs.=.n |
1ba60 | 70 2e 63 6f 6e 63 61 74 65 6e 61 74 65 28 28 6e 70 2e 73 69 6e 28 61 6e 67 6c 65 73 29 2c 20 6e | p.concatenate((np.sin(angles),.n |
1ba80 | 70 2e 63 6f 73 28 61 6e 67 6c 65 73 29 29 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.cos(angles)),\n............... |
1baa0 | 20 20 20 20 20 61 78 69 73 3d 31 29 20 2b 20 73 69 67 6d 61 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d | .....axis=1).+.sigma.*.np.random |
1bac0 | 2e 72 61 6e 64 6e 28 6e 2c 20 32 29 5c 6e 78 73 5b 3a 6e 20 2f 2f 20 32 2c 20 31 5d 20 2b 3d 20 | .randn(n,.2)\nxs[:n.//.2,.1].+=. |
1bae0 | 32 5c 6e 5c 6e 5c 6e 23 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e 61 6e 67 6c 65 74 20 | 2\n\n\n#.target.samples\nanglet. |
1bb00 | 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 2c 20 31 29 20 2a 20 32 20 2a 20 6e 70 2e | =.np.random.rand(n,.1).*.2.*.np. |
1bb20 | 70 69 5c 6e 78 74 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 65 6e 61 74 65 28 28 6e 70 2e 73 69 6e 28 | pi\nxt.=.np.concatenate((np.sin( |
1bb40 | 61 6e 67 6c 65 74 29 2c 20 6e 70 2e 63 6f 73 28 61 6e 67 6c 65 74 29 29 2c 5c 6e 20 20 20 20 20 | anglet),.np.cos(anglet)),\n..... |
1bb60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 78 69 73 3d 31 29 20 2b 20 73 69 67 6d 61 20 2a | ...............axis=1).+.sigma.* |
1bb80 | 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 32 29 5c 6e 78 74 5b 3a 6e 20 2f 2f | .np.random.randn(n,.2)\nxt[:n.// |
1bba0 | 20 32 2c 20 31 5d 20 2b 3d 20 32 5c 6e 5c 6e 5c 6e 41 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 5b | .2,.1].+=.2\n\n\nA.=.np.array([[ |
1bbc0 | 31 2e 35 2c 20 2e 37 5d 2c 20 5b 2e 37 2c 20 31 2e 35 5d 5d 29 5c 6e 62 20 3d 20 6e 70 2e 61 72 | 1.5,..7],.[.7,.1.5]])\nb.=.np.ar |
1bbe0 | 72 61 79 28 5b 5b 34 2c 20 32 5d 5d 29 5c 6e 78 74 20 3d 20 78 74 2e 64 6f 74 28 41 29 20 2b 20 | ray([[4,.2]])\nxt.=.xt.dot(A).+. |
1bc00 | 62 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | b".......].....},.....{......."c |
1bc20 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 | ell_type":."markdown",......."me |
1bc40 | 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | tadata":.{},......."source":.[.. |
1bc60 | 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e | ......."Plot.data\n---------\n\n |
1bc80 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
1bca0 | 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 | ll_type":."code",......."executi |
1bcc0 | 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | on_count":.null,......."metadata |
1bce0 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a | ":.{........."collapsed":.false. |
1bd00 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 | ......},......."outputs":.[],... |
1bd20 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 | ...."source":.[........."pl.figu |
1bd40 | 72 65 28 31 2c 20 28 35 2c 20 35 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c | re(1,.(5,.5))\npl.plot(xs[:,.0], |
1bd60 | 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 | .xs[:,.1],.'+')\npl.plot(xt[:,.0 |
1bd80 | 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 6f 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | ],.xt[:,.1],.'o')".......].....} |
1bda0 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
1bdc0 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
1bde0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 73 74 69 6d 61 74 65 | ..."source":.[........."Estimate |
1be00 | 20 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 20 61 6e 64 20 74 72 61 6e 73 70 6f 72 74 5c 6e 2d | .linear.mapping.and.transport\n- |
1be20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
1be40 | 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 | ----\n\n".......].....},.....{.. |
1be60 | 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 | ....."cell_type":."code",....... |
1be80 | 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 | "execution_count":.null,......." |
1bea0 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 | metadata":.{........."collapsed" |
1bec0 | 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 | :.false.......},......."outputs" |
1bee0 | 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 | :.[],......."source":.[......... |
1bf00 | 22 41 65 2c 20 62 65 20 3d 20 6f 74 2e 64 61 2e 4f 54 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 | "Ae,.be.=.ot.da.OT_mapping_linea |
1bf20 | 72 28 78 73 2c 20 78 74 29 5c 6e 5c 6e 78 73 74 20 3d 20 78 73 2e 64 6f 74 28 41 65 29 20 2b 20 | r(xs,.xt)\n\nxst.=.xs.dot(Ae).+. |
1bf40 | 62 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | be".......].....},.....{......." |
1bf60 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d | cell_type":."markdown",......."m |
1bf80 | 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | etadata":.{},......."source":.[. |
1bfa0 | 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 | ........"Plot.transported.sample |
1bfc0 | 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 | s\n------------------------\n\n" |
1bfe0 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
1c000 | 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f | l_type":."code",......."executio |
1c020 | 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 | n_count":.null,......."metadata" |
1c040 | 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 | :.{........."collapsed":.false.. |
1c060 | 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 | .....},......."outputs":.[],.... |
1c080 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 | ..."source":.[........."pl.figur |
1c0a0 | 65 28 31 2c 20 28 35 2c 20 35 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 70 6c 6f 74 28 | e(1,.(5,.5))\npl.clf()\npl.plot( |
1c0c0 | 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 27 29 5c 6e 70 6c 2e 70 6c 6f | xs[:,.0],.xs[:,.1],.'+')\npl.plo |
1c0e0 | 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 6f 27 29 5c 6e 70 6c 2e 70 | t(xt[:,.0],.xt[:,.1],.'o')\npl.p |
1c100 | 6c 6f 74 28 78 73 74 5b 3a 2c 20 30 5d 2c 20 78 73 74 5b 3a 2c 20 31 5d 2c 20 27 2b 27 29 5c 6e | lot(xst[:,.0],.xst[:,.1],.'+')\n |
1c120 | 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | \npl.show()".......].....},..... |
1c140 | 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c | {......."cell_type":."markdown", |
1c160 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f | ......."metadata":.{},......."so |
1c180 | 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 6f 61 64 20 69 6d 61 67 65 20 64 61 74 | urce":.[........."Load.image.dat |
1c1a0 | 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a | a\n---------------\n\n".......]. |
1c1c0 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
1c1e0 | 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a | "code",......."execution_count": |
1c200 | 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 | .null,......."metadata":.{...... |
1c220 | 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 | ..."collapsed":.false.......},.. |
1c240 | 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 | ....."outputs":.[],......."sourc |
1c260 | 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e 20 | e":.[........."def.im2mat(I):\n. |
1c280 | 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 65 20 74 6f 20 6d | ...\"\"\"Converts.and.image.to.m |
1c2a0 | 61 74 72 69 78 20 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c 22 | atrix.(one.pixel.per.line)\"\"\" |
1c2c0 | 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 5b | \n....return.I.reshape((I.shape[ |
1c2e0 | 30 5d 20 2a 20 49 2e 73 68 61 70 65 5b 31 5d 2c 20 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e 5c | 0].*.I.shape[1],.I.shape[2]))\n\ |
1c300 | 6e 5c 6e 64 65 66 20 6d 61 74 32 69 6d 28 58 2c 20 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c 22 | n\ndef.mat2im(X,.shape):\n....\" |
1c320 | 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 62 61 63 6b 20 61 20 6d 61 74 72 69 78 20 74 6f 20 61 6e | \"\"Converts.back.a.matrix.to.an |
1c340 | 20 69 6d 61 67 65 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 58 2e 72 65 73 68 61 | .image\"\"\"\n....return.X.resha |
1c360 | 70 65 28 73 68 61 70 65 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 69 6e 6d 61 78 28 49 29 3a 5c 6e 20 | pe(shape)\n\n\ndef.minmax(I):\n. |
1c380 | 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 63 6c 69 70 28 49 2c 20 30 2c 20 31 29 5c 6e 5c 6e 5c 6e | ...return.np.clip(I,.0,.1)\n\n\n |
1c3a0 | 23 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 49 31 20 3d 20 70 6c 2e 69 6d 72 65 61 64 | #.Loading.images\nI1.=.pl.imread |
1c3c0 | 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 | ('../data/ocean_day.jpg').astype |
1c3e0 | 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 49 32 20 3d 20 70 6c 2e 69 6d 72 65 | (np.float64)./.256\nI2.=.pl.imre |
1c400 | 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 67 27 29 2e 61 | ad('../data/ocean_sunset.jpg').a |
1c420 | 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 5c 6e 5c 6e 58 31 20 | stype(np.float64)./.256\n\n\nX1. |
1c440 | 3d 20 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 20 3d 20 69 6d 32 6d 61 74 28 49 32 29 22 0a 20 | =.im2mat(I1)\nX2.=.im2mat(I2)".. |
1c460 | 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f | .....].....},.....{......."cell_ |
1c480 | 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 | type":."markdown",......."metada |
1c4a0 | 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 | ta":.{},......."source":.[...... |
1c4c0 | 20 20 20 22 45 73 74 69 6d 61 74 65 20 6d 61 70 70 69 6e 67 20 61 6e 64 20 61 64 61 70 74 5c 6e | ..."Estimate.mapping.and.adapt\n |
1c4e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e | ----------------------------\n\n |
1c500 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
1c520 | 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 | ll_type":."code",......."executi |
1c540 | 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 | on_count":.null,......."metadata |
1c560 | 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a | ":.{........."collapsed":.false. |
1c580 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 | ......},......."outputs":.[],... |
1c5a0 | 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6d 61 70 70 69 6e 67 | ...."source":.[........."mapping |
1c5c0 | 20 3d 20 6f 74 2e 64 61 2e 4c 69 6e 65 61 72 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e 5c 6e 6d 61 | .=.ot.da.LinearTransport()\n\nma |
1c5e0 | 70 70 69 6e 67 2e 66 69 74 28 58 73 3d 58 31 2c 20 58 74 3d 58 32 29 5c 6e 5c 6e 5c 6e 78 73 74 | pping.fit(Xs=X1,.Xt=X2)\n\n\nxst |
1c600 | 20 3d 20 6d 61 70 70 69 6e 67 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 78 74 73 | .=.mapping.transform(Xs=X1)\nxts |
1c620 | 20 3d 20 6d 61 70 70 69 6e 67 2e 69 6e 76 65 72 73 65 5f 74 72 61 6e 73 66 6f 72 6d 28 58 74 3d | .=.mapping.inverse_transform(Xt= |
1c640 | 58 32 29 5c 6e 5c 6e 49 31 74 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 78 73 74 2c 20 | X2)\n\nI1t.=.minmax(mat2im(xst,. |
1c660 | 49 31 2e 73 68 61 70 65 29 29 5c 6e 49 32 74 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 | I1.shape))\nI2t.=.minmax(mat2im( |
1c680 | 78 74 73 2c 20 49 32 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 23 20 25 25 22 0a 20 20 20 20 20 20 5d | xts,.I2.shape))\n\n#.%%".......] |
1c6a0 | 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a | .....},.....{......."cell_type": |
1c6c0 | 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b | ."markdown",......."metadata":.{ |
1c6e0 | 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c | },......."source":.[........."Pl |
1c700 | 6f 74 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 69 6d 61 67 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d | ot.transformed.images\n--------- |
1c720 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 | --------------\n\n".......]..... |
1c740 | 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 | },.....{......."cell_type":."cod |
1c760 | 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c | e",......."execution_count":.nul |
1c780 | 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 | l,......."metadata":.{........." |
1c7a0 | 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 | collapsed":.false.......},...... |
1c7c0 | 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 | ."outputs":.[],......."source":. |
1c7e0 | 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d | [........."pl.figure(2,.figsize= |
1c800 | 28 31 30 2c 20 37 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 31 29 5c | (10,.7))\n\npl.subplot(2,.2,.1)\ |
1c820 | 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e | npl.imshow(I1)\npl.axis('off')\n |
1c840 | 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 | pl.title('Im..1')\n\npl.subplot( |
1c860 | 32 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 73 | 2,.2,.2)\npl.imshow(I2)\npl.axis |
1c880 | 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 32 27 29 5c 6e 5c 6e 70 6c | ('off')\npl.title('Im..2')\n\npl |
1c8a0 | 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 | .subplot(2,.2,.3)\npl.imshow(I1t |
1c8c0 | 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 70 | )\npl.axis('off')\npl.title('Map |
1c8e0 | 70 69 6e 67 20 49 6d 2e 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c | ping.Im..1')\n\npl.subplot(2,.2, |
1c900 | 20 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 | .4)\npl.imshow(I2t)\npl.axis('of |
1c920 | 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6e 76 65 72 73 65 20 6d 61 70 70 69 6e 67 20 49 | f')\npl.title('Inverse.mapping.I |
1c940 | 6d 2e 20 32 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 | m..2')".......].....}...],..."me |
1c960 | 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 | tadata":.{....."kernelspec":.{.. |
1c980 | 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c | ....."display_name":."Python.3", |
1c9a0 | 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 | ......."language":."python",.... |
1c9c0 | 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 | ..."name":."python3".....},..... |
1c9e0 | 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 | "language_info":.{......."codemi |
1ca00 | 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 | rror_mode":.{........."name":."i |
1ca20 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 | python",........."version":.3... |
1ca40 | 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 | ....},......."file_extension":." |
1ca60 | 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d | .py",......."mimetype":."text/x- |
1ca80 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c | python",......."name":."python", |
1caa0 | 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 | ......."nbconvert_exporter":."py |
1cac0 | 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 | thon",......."pygments_lexer":." |
1cae0 | 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 | ipython3",......."version":."3.6 |
1cb00 | 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a | .5".....}...},..."nbformat":.4,. |
1cb20 | 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 | .."nbformat_minor":.0.}PK....... |
1cb40 | 00 2d 60 cb 4c 49 c5 7b 83 fa 16 00 00 fa 16 00 00 17 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 6d | .-`.LI.{.............plot_otda_m |
1cb60 | 61 70 70 69 6e 67 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b | apping.ipynb{..."cells":.[.....{ |
1cb80 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 | ......."cell_type":."code",..... |
1cba0 | 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 | .."execution_count":.null,...... |
1cbc0 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 | ."metadata":.{........."collapse |
1cbe0 | 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 | d":.false.......},......."output |
1cc00 | 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | s":.[],......."source":.[....... |
1cc20 | 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 | .."%matplotlib.inline".......].. |
1cc40 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
1cc60 | 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c | markdown",......."metadata":.{}, |
1cc80 | 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 | ......."source":.[........."\n#. |
1cca0 | 4f 54 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 20 64 6f 6d 61 69 6e | OT.mapping.estimation.for.domain |
1ccc0 | 20 61 64 61 70 74 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 70 72 | .adaptation\n\n\nThis.example.pr |
1cce0 | 65 73 65 6e 74 73 20 68 6f 77 20 74 6f 20 75 73 65 20 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f | esents.how.to.use.MappingTranspo |
1cd00 | 72 74 20 74 6f 20 65 73 74 69 6d 61 74 65 20 61 74 20 74 68 65 20 73 61 6d 65 5c 6e 74 69 6d 65 | rt.to.estimate.at.the.same\ntime |
1cd20 | 20 62 6f 74 68 20 74 68 65 20 63 6f 75 70 6c 69 6e 67 20 74 72 61 6e 73 70 6f 72 74 20 61 6e 64 | .both.the.coupling.transport.and |
1cd40 | 20 61 70 70 72 6f 78 69 6d 61 74 65 20 74 68 65 20 74 72 61 6e 73 70 6f 72 74 20 6d 61 70 20 77 | .approximate.the.transport.map.w |
1cd60 | 69 74 68 20 65 69 74 68 65 72 5c 6e 61 20 6c 69 6e 65 61 72 20 6f 72 20 61 20 6b 65 72 6e 65 6c | ith.either\na.linear.or.a.kernel |
1cd80 | 69 7a 65 64 20 6d 61 70 70 69 6e 67 20 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 5b 38 | ized.mapping.as.introduced.in.[8 |
1cda0 | 5d 2e 5c 6e 5c 6e 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 2c 20 4e 2e 20 43 6f 75 72 74 79 2c 20 | ].\n\n[8].M..Perrot,.N..Courty,. |
1cdc0 | 52 2e 20 46 6c 61 6d 61 72 79 2c 20 41 2e 20 48 61 62 72 61 72 64 2c 5c 6e 20 20 20 20 5c 22 4d | R..Flamary,.A..Habrard,\n....\"M |
1cde0 | 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 20 64 69 73 63 72 65 74 65 20 6f | apping.estimation.for.discrete.o |
1ce00 | 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 22 2c 5c 6e 20 20 20 20 4e 65 75 72 61 6c 20 | ptimal.transport\",\n....Neural. |
1ce20 | 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 50 72 6f 63 65 73 73 69 6e 67 20 53 79 73 74 65 6d 73 20 28 | Information.Processing.Systems.( |
1ce40 | 4e 49 50 53 29 2c 20 32 30 31 36 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | NIPS),.2016.\n\n".......].....}, |
1ce60 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 | .....{......."cell_type":."code" |
1ce80 | 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c | ,......."execution_count":.null, |
1cea0 | 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f | ......."metadata":.{........."co |
1cec0 | 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 | llapsed":.false.......},......." |
1cee0 | 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | outputs":.[],......."source":.[. |
1cf00 | 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 | ........"#.Authors:.Remi.Flamary |
1cf20 | 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 | .<remi.flamary@unice.fr>\n#..... |
1cf40 | 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e 63 68 61 | .....Stanislas.Chambon.<stan.cha |
1cf60 | 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d | mbon@gmail.com>\n#\n#.License:.M |
1cf80 | 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 | IT.License\n\nimport.numpy.as.np |
1cfa0 | 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c | \nimport.matplotlib.pylab.as.pl\ |
1cfc0 | 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b | nimport.ot".......].....},.....{ |
1cfe0 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a | ......."cell_type":."markdown",. |
1d000 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......"metadata":.{},......."sou |
1d020 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e | rce":.[........."Generate.data\n |
1d040 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | -------------\n\n".......].....} |
1d060 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 | ,.....{......."cell_type":."code |
1d080 | 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c | ",......."execution_count":.null |
1d0a0 | 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 | ,......."metadata":.{........."c |
1d0c0 | 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 | ollapsed":.false.......},....... |
1d0e0 | 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | "outputs":.[],......."source":.[ |
1d100 | 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 72 63 65 5f 73 61 6d 70 6c 65 73 20 3d 20 31 30 30 | ........."n_source_samples.=.100 |
1d120 | 5c 6e 6e 5f 74 61 72 67 65 74 5f 73 61 6d 70 6c 65 73 20 3d 20 31 30 30 5c 6e 74 68 65 74 61 20 | \nn_target_samples.=.100\ntheta. |
1d140 | 3d 20 32 20 2a 20 6e 70 2e 70 69 20 2f 20 32 30 5c 6e 6e 6f 69 73 65 5f 6c 65 76 65 6c 20 3d 20 | =.2.*.np.pi./.20\nnoise_level.=. |
1d160 | 30 2e 31 5c 6e 5c 6e 58 73 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 | 0.1\n\nXs,.ys.=.ot.datasets.make |
1d180 | 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 5c 6e 20 20 20 20 27 67 61 75 73 73 72 6f 74 27 2c 20 | _data_classif(\n....'gaussrot',. |
1d1a0 | 6e 5f 73 6f 75 72 63 65 5f 73 61 6d 70 6c 65 73 2c 20 6e 7a 3d 6e 6f 69 73 65 5f 6c 65 76 65 6c | n_source_samples,.nz=noise_level |
1d1c0 | 29 5c 6e 58 73 5f 6e 65 77 2c 20 5f 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f | )\nXs_new,._.=.ot.datasets.make_ |
1d1e0 | 64 61 74 61 5f 63 6c 61 73 73 69 66 28 5c 6e 20 20 20 20 27 67 61 75 73 73 72 6f 74 27 2c 20 6e | data_classif(\n....'gaussrot',.n |
1d200 | 5f 73 6f 75 72 63 65 5f 73 61 6d 70 6c 65 73 2c 20 6e 7a 3d 6e 6f 69 73 65 5f 6c 65 76 65 6c 29 | _source_samples,.nz=noise_level) |
1d220 | 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 64 61 74 61 | \nXt,.yt.=.ot.datasets.make_data |
1d240 | 5f 63 6c 61 73 73 69 66 28 5c 6e 20 20 20 20 27 67 61 75 73 73 72 6f 74 27 2c 20 6e 5f 74 61 72 | _classif(\n....'gaussrot',.n_tar |
1d260 | 67 65 74 5f 73 61 6d 70 6c 65 73 2c 20 74 68 65 74 61 3d 74 68 65 74 61 2c 20 6e 7a 3d 6e 6f 69 | get_samples,.theta=theta,.nz=noi |
1d280 | 73 65 5f 6c 65 76 65 6c 29 5c 6e 5c 6e 23 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 61 72 67 65 74 | se_level)\n\n#.one.of.the.target |
1d2a0 | 20 6d 6f 64 65 20 63 68 61 6e 67 65 73 20 69 74 73 20 76 61 72 69 61 6e 63 65 20 28 6e 6f 20 6c | .mode.changes.its.variance.(no.l |
1d2c0 | 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 29 5c 6e 58 74 5b 79 74 20 3d 3d 20 32 5d 20 2a 3d 20 33 | inear.mapping)\nXt[yt.==.2].*=.3 |
1d2e0 | 5c 6e 58 74 20 3d 20 58 74 20 2b 20 34 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 | \nXt.=.Xt.+.4".......].....},... |
1d300 | 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e | ..{......."cell_type":."markdown |
1d320 | 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 | ",......."metadata":.{},......." |
1d340 | 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d | source":.[........."Plot.data\n- |
1d360 | 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | --------\n\n".......].....},.... |
1d380 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
1d3a0 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
1d3c0 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
1d3e0 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
1d400 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
1d420 | 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 28 31 30 2c 20 35 29 29 5c 6e 70 6c 2e 63 | ...."pl.figure(1,.(10,.5))\npl.c |
1d440 | 6c 66 28 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c | lf()\npl.scatter(Xs[:,.0],.Xs[:, |
1d460 | 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f | .1],.c=ys,.marker='+',.label='So |
1d480 | 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c | urce.samples')\npl.scatter(Xt[:, |
1d4a0 | 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c | .0],.Xt[:,.1],.c=yt,.marker='o', |
1d4c0 | 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 | .label='Target.samples')\npl.leg |
1d4e0 | 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 | end(loc=0)\npl.title('Source.and |
1d500 | 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 22 0a 20 20 20 20 20 20 5d | .target.distributions')".......] |
1d520 | 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a | .....},.....{......."cell_type": |
1d540 | 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b | ."markdown",......."metadata":.{ |
1d560 | 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e | },......."source":.[........."In |
1d580 | 73 74 61 6e 74 69 61 74 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 74 72 61 6e 73 70 6f 72 | stantiate.the.different.transpor |
1d5a0 | 74 20 61 6c 67 6f 72 69 74 68 6d 73 20 61 6e 64 20 66 69 74 20 74 68 65 6d 5c 6e 2d 2d 2d 2d 2d | t.algorithms.and.fit.them\n----- |
1d5c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
1d5e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 | ----------------------\n\n"..... |
1d600 | 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 | ..].....},.....{......."cell_typ |
1d620 | 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 | e":."code",......."execution_cou |
1d640 | 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 | nt":.null,......."metadata":.{.. |
1d660 | 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 | ......."collapsed":.false....... |
1d680 | 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 | },......."outputs":.[],......."s |
1d6a0 | 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 4d 61 70 70 69 6e 67 54 72 61 6e | ource":.[........."#.MappingTran |
1d6c0 | 73 70 6f 72 74 20 77 69 74 68 20 6c 69 6e 65 61 72 20 6b 65 72 6e 65 6c 5c 6e 6f 74 5f 6d 61 70 | sport.with.linear.kernel\not_map |
1d6e0 | 70 69 6e 67 5f 6c 69 6e 65 61 72 20 3d 20 6f 74 2e 64 61 2e 4d 61 70 70 69 6e 67 54 72 61 6e 73 | ping_linear.=.ot.da.MappingTrans |
1d700 | 70 6f 72 74 28 5c 6e 20 20 20 20 6b 65 72 6e 65 6c 3d 5c 22 6c 69 6e 65 61 72 5c 22 2c 20 6d 75 | port(\n....kernel=\"linear\",.mu |
1d720 | 3d 31 65 30 2c 20 65 74 61 3d 31 65 2d 38 2c 20 62 69 61 73 3d 54 72 75 65 2c 5c 6e 20 20 20 20 | =1e0,.eta=1e-8,.bias=True,\n.... |
1d740 | 6d 61 78 5f 69 74 65 72 3d 32 30 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 6f 74 | max_iter=20,.verbose=True)\n\not |
1d760 | 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 | _mapping_linear.fit(Xs=Xs,.Xt=Xt |
1d780 | 29 5c 6e 5c 6e 23 20 66 6f 72 20 6f 72 69 67 69 6e 61 6c 20 73 6f 75 72 63 65 20 73 61 6d 70 6c | )\n\n#.for.original.source.sampl |
1d7a0 | 65 73 2c 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 20 62 61 72 79 63 65 6e 74 72 69 | es,.transform.applies.barycentri |
1d7c0 | 63 20 6d 61 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 20 3d 20 6f 74 | c.mapping\ntransp_Xs_linear.=.ot |
1d7e0 | 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 | _mapping_linear.transform(Xs=Xs) |
1d800 | 5c 6e 5c 6e 23 20 66 6f 72 20 6f 75 74 20 6f 66 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 2c | \n\n#.for.out.of.source.samples, |
1d820 | 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 20 74 68 65 20 6c 69 6e 65 61 72 20 6d 61 | .transform.applies.the.linear.ma |
1d840 | 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5f 6e 65 77 20 3d 20 6f 74 | pping\ntransp_Xs_linear_new.=.ot |
1d860 | 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 5f | _mapping_linear.transform(Xs=Xs_ |
1d880 | 6e 65 77 29 5c 6e 5c 6e 5c 6e 23 20 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f 72 74 20 77 69 74 | new)\n\n\n#.MappingTransport.wit |
1d8a0 | 68 20 67 61 75 73 73 69 61 6e 20 6b 65 72 6e 65 6c 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 | h.gaussian.kernel\not_mapping_ga |
1d8c0 | 75 73 73 69 61 6e 20 3d 20 6f 74 2e 64 61 2e 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f 72 74 28 | ussian.=.ot.da.MappingTransport( |
1d8e0 | 5c 6e 20 20 20 20 6b 65 72 6e 65 6c 3d 5c 22 67 61 75 73 73 69 61 6e 5c 22 2c 20 65 74 61 3d 31 | \n....kernel=\"gaussian\",.eta=1 |
1d900 | 65 2d 35 2c 20 6d 75 3d 31 65 2d 31 2c 20 62 69 61 73 3d 54 72 75 65 2c 20 73 69 67 6d 61 3d 31 | e-5,.mu=1e-1,.bias=True,.sigma=1 |
1d920 | 2c 5c 6e 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 | ,\n....max_iter=10,.verbose=True |
1d940 | 29 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e 66 69 74 28 58 73 3d 58 73 | )\not_mapping_gaussian.fit(Xs=Xs |
1d960 | 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 66 6f 72 20 6f 72 69 67 69 6e 61 6c 20 73 6f 75 72 63 | ,.Xt=Xt)\n\n#.for.original.sourc |
1d980 | 65 20 73 61 6d 70 6c 65 73 2c 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 20 62 61 72 | e.samples,.transform.applies.bar |
1d9a0 | 79 63 65 6e 74 72 69 63 20 6d 61 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 67 61 75 73 | ycentric.mapping\ntransp_Xs_gaus |
1d9c0 | 73 69 61 6e 20 3d 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e 74 72 61 6e 73 | sian.=.ot_mapping_gaussian.trans |
1d9e0 | 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 5c 6e 23 20 66 6f 72 20 6f 75 74 20 6f 66 20 73 6f 75 72 | form(Xs=Xs)\n\n#.for.out.of.sour |
1da00 | 63 65 20 73 61 6d 70 6c 65 73 2c 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 20 74 68 | ce.samples,.transform.applies.th |
1da20 | 65 20 67 61 75 73 73 69 61 6e 20 6d 61 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 67 61 | e.gaussian.mapping\ntransp_Xs_ga |
1da40 | 75 73 73 69 61 6e 5f 6e 65 77 20 3d 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e | ussian_new.=.ot_mapping_gaussian |
1da60 | 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 5f 6e 65 77 29 22 0a 20 20 20 20 20 20 5d 0a 20 | .transform(Xs=Xs_new)".......].. |
1da80 | 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | ...},.....{......."cell_type":." |
1daa0 | 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c | markdown",......."metadata":.{}, |
1dac0 | 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 | ......."source":.[........."Plot |
1dae0 | 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .transported.samples\n---------- |
1db00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 | --------------\n\n".......]..... |
1db20 | 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 | },.....{......."cell_type":."cod |
1db40 | 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c | e",......."execution_count":.nul |
1db60 | 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 | l,......."metadata":.{........." |
1db80 | 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 | collapsed":.false.......},...... |
1dba0 | 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 | ."outputs":.[],......."source":. |
1dbc0 | 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 | [........."pl.figure(2)\npl.clf( |
1dbe0 | 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 | )\npl.subplot(2,.2,.1)\npl.scatt |
1dc00 | 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 | er(Xt[:,.0],.Xt[:,.1],.c=yt,.mar |
1dc20 | 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 | ker='o',\n...........label='Targ |
1dc40 | 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 61 74 74 | et.samples',.alpha=.2)\npl.scatt |
1dc60 | 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 | er(transp_Xs_linear[:,.0],.trans |
1dc80 | 70 5f 58 73 5f 6c 69 6e 65 61 72 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d | p_Xs_linear[:,.1],.c=ys,.marker= |
1dca0 | 27 2b 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 4d 61 70 70 65 64 20 73 | '+',\n...........label='Mapped.s |
1dcc0 | 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 42 61 72 79 | ource.samples')\npl.title(\"Bary |
1dce0 | 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 6e 65 61 72 29 5c 22 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 | ..mapping.(linear)\")\npl.legend |
1dd00 | 28 6c 6f 63 3d 30 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 32 29 5c 6e | (loc=0)\n\npl.subplot(2,.2,.2)\n |
1dd20 | 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 | pl.scatter(Xt[:,.0],.Xt[:,.1],.c |
1dd40 | 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 | =yt,.marker='o',\n...........lab |
1dd60 | 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 29 5c 6e | el='Target.samples',.alpha=.2)\n |
1dd80 | 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5f 6e 65 77 5b | pl.scatter(transp_Xs_linear_new[ |
1dda0 | 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5f 6e 65 77 5b 3a 2c 20 31 | :,.0],.transp_Xs_linear_new[:,.1 |
1ddc0 | 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c | ],\n...........c=ys,.marker='+', |
1dde0 | 20 6c 61 62 65 6c 3d 27 4c 65 61 72 6e 65 64 20 6d 61 70 70 69 6e 67 27 29 5c 6e 70 6c 2e 74 69 | .label='Learned.mapping')\npl.ti |
1de00 | 74 6c 65 28 5c 22 45 73 74 69 6d 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 6e 65 61 72 29 5c 22 29 | tle(\"Estim..mapping.(linear)\") |
1de20 | 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 6c 2e 73 63 61 74 | \n\npl.subplot(2,.2,.3)\npl.scat |
1de40 | 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 | ter(Xt[:,.0],.Xt[:,.1],.c=yt,.ma |
1de60 | 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 | rker='o',\n...........label='Tar |
1de80 | 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 61 74 | get.samples',.alpha=.2)\npl.scat |
1dea0 | 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 67 61 75 73 73 69 61 6e 5b 3a 2c 20 30 5d 2c 20 74 72 | ter(transp_Xs_gaussian[:,.0],.tr |
1dec0 | 61 6e 73 70 5f 58 73 5f 67 61 75 73 73 69 61 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 | ansp_Xs_gaussian[:,.1],.c=ys,\n. |
1dee0 | 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 62 61 72 | ..........marker='+',.label='bar |
1df00 | 79 63 65 6e 74 72 69 63 20 6d 61 70 70 69 6e 67 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 42 | ycentric.mapping')\npl.title(\"B |
1df20 | 61 72 79 2e 20 6d 61 70 70 69 6e 67 20 28 6b 65 72 6e 65 6c 29 5c 22 29 5c 6e 5c 6e 70 6c 2e 73 | ary..mapping.(kernel)\")\n\npl.s |
1df40 | 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 34 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a | ubplot(2,.2,.4)\npl.scatter(Xt[: |
1df60 | 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 | ,.0],.Xt[:,.1],.c=yt,.marker='o' |
1df80 | 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 | ,\n...........label='Target.samp |
1dfa0 | 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e | les',.alpha=.2)\npl.scatter(tran |
1dfc0 | 73 70 5f 58 73 5f 67 61 75 73 73 69 61 6e 5f 6e 65 77 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 | sp_Xs_gaussian_new[:,.0],.transp |
1dfe0 | 5f 58 73 5f 67 61 75 73 73 69 61 6e 5f 6e 65 77 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 | _Xs_gaussian_new[:,.1],.c=ys,\n. |
1e000 | 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 4c 65 61 | ..........marker='+',.label='Lea |
1e020 | 72 6e 65 64 20 6d 61 70 70 69 6e 67 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 45 73 74 69 6d | rned.mapping')\npl.title(\"Estim |
1e040 | 2e 20 6d 61 70 70 69 6e 67 20 28 6b 65 72 6e 65 6c 29 5c 22 29 5c 6e 70 6c 2e 74 69 67 68 74 5f | ..mapping.(kernel)\")\npl.tight_ |
1e060 | 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 | layout()\n\npl.show()".......].. |
1e080 | 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b | ...}...],..."metadata":.{....."k |
1e0a0 | 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d | ernelspec":.{......."display_nam |
1e0c0 | 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 | e":."Python.3",......."language" |
1e0e0 | 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f | :."python",......."name":."pytho |
1e100 | 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 | n3".....},....."language_info":. |
1e120 | 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 | {......."codemirror_mode":.{.... |
1e140 | 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 | ....."name":."ipython",......... |
1e160 | 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c | "version":.3.......},......."fil |
1e180 | 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 | e_extension":.".py",......."mime |
1e1a0 | 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e | type":."text/x-python",......."n |
1e1c0 | 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 | ame":."python",......."nbconvert |
1e1e0 | 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 | _exporter":."python",......."pyg |
1e200 | 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 | ments_lexer":."ipython3",....... |
1e220 | 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 | "version":."3.6.5".....}...},... |
1e240 | 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 | "nbformat":.4,..."nbformat_minor |
1e260 | 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 2d 60 cb 4c e5 eb aa 89 7c 10 00 00 7c 10 00 00 | ":.0.}PK........-`.L....|...|... |
1e280 | 16 00 00 00 70 6c 6f 74 5f 63 6f 6d 70 75 74 65 5f 65 6d 64 2e 69 70 79 6e 62 7b 0a 20 20 22 63 | ....plot_compute_emd.ipynb{..."c |
1e2a0 | 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 | ells":.[.....{......."cell_type" |
1e2c0 | 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 | :."code",......."execution_count |
1e2e0 | 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 | ":.null,......."metadata":.{.... |
1e300 | 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c | ....."collapsed":.false.......}, |
1e320 | 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 | ......."outputs":.[],......."sou |
1e340 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c | rce":.[........."%matplotlib.inl |
1e360 | 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 | ine".......].....},.....{....... |
1e380 | 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 | "cell_type":."markdown",......." |
1e3a0 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b | metadata":.{},......."source":.[ |
1e3c0 | 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 50 6c 6f 74 20 6d 75 6c 74 69 70 6c 65 20 45 4d 44 5c | ........."\n#.Plot.multiple.EMD\ |
1e3e0 | 6e 5c 6e 5c 6e 53 68 6f 77 73 20 68 6f 77 20 74 6f 20 63 6f 6d 70 75 74 65 20 6d 75 6c 74 69 70 | n\n\nShows.how.to.compute.multip |
1e400 | 6c 65 20 45 4d 44 20 61 6e 64 20 53 69 6e 6b 68 6f 72 6e 20 77 69 74 68 20 74 77 6f 20 64 69 66 | le.EMD.and.Sinkhorn.with.two.dif |
1e420 | 66 65 72 6e 74 5c 6e 67 72 6f 75 6e 64 20 6d 65 74 72 69 63 73 20 61 6e 64 20 70 6c 6f 74 20 74 | fernt\nground.metrics.and.plot.t |
1e440 | 68 65 69 72 20 76 61 6c 75 65 73 20 66 6f 72 20 64 69 66 66 65 65 6e 74 20 64 69 73 74 72 69 62 | heir.values.for.diffeent.distrib |
1e460 | 75 74 69 6f 6e 73 2e 5c 6e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | utions.\n\n\n\n".......].....},. |
1e480 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c | ....{......."cell_type":."code", |
1e4a0 | 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a | ......."execution_count":.null,. |
1e4c0 | 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c | ......"metadata":.{........."col |
1e4e0 | 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f | lapsed":.false.......},......."o |
1e500 | 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | utputs":.[],......."source":.[.. |
1e520 | 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c | ......."#.Author:.Remi.Flamary.< |
1e540 | 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 | remi.flamary@unice.fr>\n#\n#.Lic |
1e560 | 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 | ense:.MIT.License\n\nimport.nump |
1e580 | 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 | y.as.np\nimport.matplotlib.pylab |
1e5a0 | 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 | .as.pl\nimport.ot\nfrom.ot.datas |
1e5c0 | 65 74 73 20 69 6d 70 6f 72 74 20 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 | ets.import.make_1D_gauss.as.gaus |
1e5e0 | 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | s".......].....},.....{......."c |
1e600 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 | ell_type":."markdown",......."me |
1e620 | 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 | tadata":.{},......."source":.[.. |
1e640 | 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d | ......."Generate.data\n--------- |
1e660 | 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 | ----\n\n".......].....},.....{.. |
1e680 | 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 | ....."cell_type":."code",....... |
1e6a0 | 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 | "execution_count":.null,......." |
1e6c0 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 | metadata":.{........."collapsed" |
1e6e0 | 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 | :.false.......},......."outputs" |
1e700 | 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 | :.[],......."source":.[......... |
1e720 | 22 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 | "#%%.parameters\n\nn.=.100..#.nb |
1e740 | 20 62 69 6e 73 5c 6e 6e 5f 74 61 72 67 65 74 20 3d 20 35 30 20 20 23 20 6e 62 20 74 61 72 67 65 | .bins\nn_target.=.50..#.nb.targe |
1e760 | 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 | t.distributions\n\n\n#.bin.posit |
1e780 | 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e | ions\nx.=.np.arange(n,.dtype=np. |
1e7a0 | 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 6c 73 74 5f 6d 20 3d 20 6e 70 2e 6c 69 6e 73 70 61 63 65 28 | float64)\n\nlst_m.=.np.linspace( |
1e7c0 | 32 30 2c 20 39 30 2c 20 6e 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 | 20,.90,.n_target)\n\n#.Gaussian. |
1e7e0 | 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 | distributions\na.=.gauss(n,.m=20 |
1e800 | 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 5c 6e 42 20 3d | ,.s=5)..#.m=.mean,.s=.std\n\nB.= |
1e820 | 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 6e 5f 74 61 72 67 65 74 29 29 5c 6e 5c 6e 66 6f 72 20 | .np.zeros((n,.n_target))\n\nfor. |
1e840 | 69 2c 20 6d 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 6c 73 74 5f 6d 29 3a 5c 6e 20 20 20 20 42 | i,.m.in.enumerate(lst_m):\n....B |
1e860 | 5b 3a 2c 20 69 5d 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 6d 2c 20 73 3d 35 29 5c 6e 5c 6e 23 | [:,.i].=.gauss(n,.m=m,.s=5)\n\n# |
1e880 | 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 61 6e 64 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e | .loss.matrix.and.normalization\n |
1e8a0 | 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 78 | M.=.ot.dist(x.reshape((n,.1)),.x |
1e8c0 | 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 27 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e | .reshape((n,.1)),.'euclidean')\n |
1e8e0 | 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 5c 6e 4d 32 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 | M./=.M.max()\nM2.=.ot.dist(x.res |
1e900 | 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c | hape((n,.1)),.x.reshape((n,.1)), |
1e920 | 20 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 32 20 2f 3d 20 4d 32 2e 6d 61 78 28 29 22 | .'sqeuclidean')\nM2./=.M2.max()" |
1e940 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
1e960 | 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | l_type":."markdown",......."meta |
1e980 | 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | data":.{},......."source":.[.... |
1e9a0 | 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a | ....."Plot.data\n---------\n\n". |
1e9c0 | 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c | ......].....},.....{......."cell |
1e9e0 | 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e | _type":."code",......."execution |
1ea00 | 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a | _count":.null,......."metadata": |
1ea20 | 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 | .{........."collapsed":.false... |
1ea40 | 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 | ....},......."outputs":.[],..... |
1ea60 | 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 20 | .."source":.[........."#%%.plot. |
1ea80 | 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 | the.distributions\n\npl.figure(1 |
1eaa0 | 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 31 29 5c 6e 70 6c 2e 70 6c 6f 74 28 | )\npl.subplot(2,.1,.1)\npl.plot( |
1eac0 | 78 2c 20 61 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 | x,.a,.'b',.label='Source.distrib |
1eae0 | 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 | ution')\npl.title('Source.distri |
1eb00 | 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 | bution')\npl.subplot(2,.1,.2)\np |
1eb20 | 6c 2e 70 6c 6f 74 28 78 2c 20 42 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 64 69 73 74 72 | l.plot(x,.B,.label='Target.distr |
1eb40 | 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 61 72 67 65 74 20 64 69 73 | ibutions')\npl.title('Target.dis |
1eb60 | 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 | tributions')\npl.tight_layout()" |
1eb80 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
1eba0 | 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | l_type":."markdown",......."meta |
1ebc0 | 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | data":.{},......."source":.[.... |
1ebe0 | 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 45 4d 44 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 72 | ....."Compute.EMD.for.the.differ |
1ec00 | 65 6e 74 20 6c 6f 73 73 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ent.losses\n-------------------- |
1ec20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 | ----------------\n\n".......]... |
1ec40 | 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 | ..},.....{......."cell_type":."c |
1ec60 | 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e | ode",......."execution_count":.n |
1ec80 | 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 | ull,......."metadata":.{........ |
1eca0 | 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 | ."collapsed":.false.......},.... |
1ecc0 | 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 | ..."outputs":.[],......."source" |
1ece0 | 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 43 6f 6d 70 75 74 65 20 61 6e 64 20 70 6c 6f | :.[........."#%%.Compute.and.plo |
1ed00 | 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c | t.distributions.and.loss.matrix\ |
1ed20 | 6e 5c 6e 64 5f 65 6d 64 20 3d 20 6f 74 2e 65 6d 64 32 28 61 2c 20 42 2c 20 4d 29 20 20 23 20 64 | n\nd_emd.=.ot.emd2(a,.B,.M)..#.d |
1ed40 | 69 72 65 63 74 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 45 4d 44 5c 6e 64 5f 65 6d 64 32 | irect.computation.of.EMD\nd_emd2 |
1ed60 | 20 3d 20 6f 74 2e 65 6d 64 32 28 61 2c 20 42 2c 20 4d 32 29 20 20 23 20 64 69 72 65 63 74 20 63 | .=.ot.emd2(a,.B,.M2)..#.direct.c |
1ed80 | 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 45 4d 44 20 77 69 74 68 20 6c 6f 73 73 20 4d 32 5c 6e | omputation.of.EMD.with.loss.M2\n |
1eda0 | 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 65 6d 64 2c | \n\npl.figure(2)\npl.plot(d_emd, |
1edc0 | 20 6c 61 62 65 6c 3d 27 45 75 63 6c 69 64 65 61 6e 20 45 4d 44 27 29 5c 6e 70 6c 2e 70 6c 6f 74 | .label='Euclidean.EMD')\npl.plot |
1ede0 | 28 64 5f 65 6d 64 32 2c 20 6c 61 62 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 | (d_emd2,.label='Squared.Euclidea |
1ee00 | 6e 20 45 4d 44 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 4d 44 20 64 69 73 74 61 6e 63 65 73 | n.EMD')\npl.title('EMD.distances |
1ee20 | 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | ')\npl.legend()".......].....},. |
1ee40 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f | ....{......."cell_type":."markdo |
1ee60 | 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 | wn",......."metadata":.{},...... |
1ee80 | 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 53 69 | ."source":.[........."Compute.Si |
1eea0 | 6e 6b 68 6f 72 6e 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 6c 6f 73 73 65 73 5c | nkhorn.for.the.different.losses\ |
1eec0 | 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | n------------------------------- |
1eee0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 | ----------\n\n".......].....},.. |
1ef00 | 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a | ...{......."cell_type":."code",. |
1ef20 | 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 | ......"execution_count":.null,.. |
1ef40 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c | ....."metadata":.{........."coll |
1ef60 | 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 | apsed":.false.......},......."ou |
1ef80 | 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | tputs":.[],......."source":.[... |
1efa0 | 20 20 20 20 20 20 22 23 25 25 5c 6e 72 65 67 20 3d 20 31 65 2d 32 5c 6e 64 5f 73 69 6e 6b 68 6f | ......"#%%\nreg.=.1e-2\nd_sinkho |
1efc0 | 72 6e 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 32 28 61 2c 20 42 2c 20 4d 2c 20 72 65 67 29 5c | rn.=.ot.sinkhorn2(a,.B,.M,.reg)\ |
1efe0 | 6e 64 5f 73 69 6e 6b 68 6f 72 6e 32 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 32 28 61 2c 20 42 | nd_sinkhorn2.=.ot.sinkhorn2(a,.B |
1f000 | 2c 20 4d 32 2c 20 72 65 67 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 | ,.M2,.reg)\n\npl.figure(2)\npl.c |
1f020 | 6c 66 28 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 65 6d 64 2c 20 6c 61 62 65 6c 3d 27 45 75 63 6c | lf()\npl.plot(d_emd,.label='Eucl |
1f040 | 69 64 65 61 6e 20 45 4d 44 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 65 6d 64 32 2c 20 6c 61 62 | idean.EMD')\npl.plot(d_emd2,.lab |
1f060 | 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 20 45 4d 44 27 29 5c 6e 70 6c 2e | el='Squared.Euclidean.EMD')\npl. |
1f080 | 70 6c 6f 74 28 64 5f 73 69 6e 6b 68 6f 72 6e 2c 20 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 45 75 63 | plot(d_sinkhorn,.'+',.label='Euc |
1f0a0 | 6c 69 64 65 61 6e 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 73 69 6e | lidean.Sinkhorn')\npl.plot(d_sin |
1f0c0 | 6b 68 6f 72 6e 32 2c 20 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 6c | khorn2,.'+',.label='Squared.Eucl |
1f0e0 | 69 64 65 61 6e 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 4d 44 20 | idean.Sinkhorn')\npl.title('EMD. |
1f100 | 64 69 73 74 61 6e 63 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e 70 6c 2e 73 | distances')\npl.legend()\n\npl.s |
1f120 | 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 | how()".......].....}...],..."met |
1f140 | 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 | adata":.{....."kernelspec":.{... |
1f160 | 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a | ...."display_name":."Python.3",. |
1f180 | 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 | ......"language":."python",..... |
1f1a0 | 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 | .."name":."python3".....},....." |
1f1c0 | 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 | language_info":.{......."codemir |
1f1e0 | 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 | ror_mode":.{........."name":."ip |
1f200 | 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 | ython",........."version":.3.... |
1f220 | 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e | ...},......."file_extension":.". |
1f240 | 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 | py",......."mimetype":."text/x-p |
1f260 | 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a | ython",......."name":."python",. |
1f280 | 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 | ......"nbconvert_exporter":."pyt |
1f2a0 | 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 | hon",......."pygments_lexer":."i |
1f2c0 | 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e | python3",......."version":."3.6. |
1f2e0 | 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 | 5".....}...},..."nbformat":.4,.. |
1f300 | 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 | ."nbformat_minor":.0.}PK........ |
1f320 | ec 45 43 4d 58 b0 17 7b e5 0e 00 00 e5 0e 00 00 23 00 00 00 70 6c 6f 74 5f 63 6f 6e 76 6f 6c 75 | .ECMX..{........#...plot_convolu |
1f340 | 74 69 6f 6e 61 6c 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c | tional_barycenter.ipynb{..."cell |
1f360 | 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 | s":.[.....{......."cell_type":." |
1f380 | 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 | code",......."execution_count":. |
1f3a0 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 | null,......."metadata":.{....... |
1f3c0 | 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 | .."collapsed":.false.......},... |
1f3e0 | 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 | ...."outputs":.[],......."source |
1f400 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 | ":.[........."%matplotlib.inline |
1f420 | 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 | ".......].....},.....{......."ce |
1f440 | 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 | ll_type":."markdown",......."met |
1f460 | 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | adata":.{},......."source":.[... |
1f480 | 20 20 20 20 20 20 22 5c 6e 23 20 43 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 20 57 61 73 73 65 72 73 | ......"\n#.Convolutional.Wassers |
1f4a0 | 74 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 20 65 78 61 6d 70 6c 65 5c 6e 5c 6e 5c 6e 54 68 69 | tein.Barycenter.example\n\n\nThi |
1f4c0 | 73 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 69 6c 6c 75 73 74 72 | s.example.is.designed.to.illustr |
1f4e0 | 61 74 65 20 68 6f 77 20 74 68 65 20 43 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 20 57 61 73 73 65 72 | ate.how.the.Convolutional.Wasser |
1f500 | 73 74 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 5c 6e 66 75 6e 63 74 69 6f 6e 20 6f 66 20 50 4f | stein.Barycenter\nfunction.of.PO |
1f520 | 54 20 77 6f 72 6b 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 | T.works.\n\n".......].....},.... |
1f540 | 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 | .{......."cell_type":."code",... |
1f560 | 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 | ...."execution_count":.null,.... |
1f580 | 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 | ..."metadata":.{........."collap |
1f5a0 | 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 | sed":.false.......},......."outp |
1f5c0 | 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 | uts":.[],......."source":.[..... |
1f5e0 | 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 4e 69 63 6f 6c 61 73 20 43 6f 75 72 74 79 20 3c 6e | ...."#.Author:.Nicolas.Courty.<n |
1f600 | 63 6f 75 72 74 79 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 | courty@irisa.fr>\n#\n#.License:. |
1f620 | 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 | MIT.License\n\n\nimport.numpy.as |
1f640 | 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 | .np\nimport.pylab.as.pl\nimport. |
1f660 | 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | ot".......].....},.....{......." |
1f680 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d | cell_type":."markdown",......."m |
1f6a0 | 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | etadata":.{},......."source":.[. |
1f6c0 | 20 20 20 20 20 20 20 20 22 44 61 74 61 20 70 72 65 70 61 72 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d | ........"Data.preparation\n----- |
1f6e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 54 68 65 20 66 6f 75 72 20 64 69 73 74 72 69 62 75 | -----------\n\nThe.four.distribu |
1f700 | 74 69 6f 6e 73 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 34 20 73 69 6d | tions.are.constructed.from.4.sim |
1f720 | 70 6c 65 20 69 6d 61 67 65 73 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 | ple.images\n\n".......].....},.. |
1f740 | 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a | ...{......."cell_type":."code",. |
1f760 | 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 | ......"execution_count":.null,.. |
1f780 | 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c | ....."metadata":.{........."coll |
1f7a0 | 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 | apsed":.false.......},......."ou |
1f7c0 | 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 | tputs":.[],......."source":.[... |
1f7e0 | 20 20 20 20 20 20 22 66 31 20 3d 20 31 20 2d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 | ......"f1.=.1.-.pl.imread('../da |
1f800 | 74 61 2f 72 65 64 63 72 6f 73 73 2e 70 6e 67 27 29 5b 3a 2c 20 3a 2c 20 32 5d 5c 6e 66 32 20 3d | ta/redcross.png')[:,.:,.2]\nf2.= |
1f820 | 20 31 20 2d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 64 75 63 6b 2e 70 6e 67 | .1.-.pl.imread('../data/duck.png |
1f840 | 27 29 5b 3a 2c 20 3a 2c 20 32 5d 5c 6e 66 33 20 3d 20 31 20 2d 20 70 6c 2e 69 6d 72 65 61 64 28 | ')[:,.:,.2]\nf3.=.1.-.pl.imread( |
1f860 | 27 2e 2e 2f 64 61 74 61 2f 68 65 61 72 74 2e 70 6e 67 27 29 5b 3a 2c 20 3a 2c 20 32 5d 5c 6e 66 | '../data/heart.png')[:,.:,.2]\nf |
1f880 | 34 20 3d 20 31 20 2d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 74 6f 6f 74 68 | 4.=.1.-.pl.imread('../data/tooth |
1f8a0 | 2e 70 6e 67 27 29 5b 3a 2c 20 3a 2c 20 32 5d 5c 6e 5c 6e 41 20 3d 20 5b 5d 5c 6e 66 31 20 3d 20 | .png')[:,.:,.2]\n\nA.=.[]\nf1.=. |
1f8c0 | 66 31 20 2f 20 6e 70 2e 73 75 6d 28 66 31 29 5c 6e 66 32 20 3d 20 66 32 20 2f 20 6e 70 2e 73 75 | f1./.np.sum(f1)\nf2.=.f2./.np.su |
1f8e0 | 6d 28 66 32 29 5c 6e 66 33 20 3d 20 66 33 20 2f 20 6e 70 2e 73 75 6d 28 66 33 29 5c 6e 66 34 20 | m(f2)\nf3.=.f3./.np.sum(f3)\nf4. |
1f900 | 3d 20 66 34 20 2f 20 6e 70 2e 73 75 6d 28 66 34 29 5c 6e 41 2e 61 70 70 65 6e 64 28 66 31 29 5c | =.f4./.np.sum(f4)\nA.append(f1)\ |
1f920 | 6e 41 2e 61 70 70 65 6e 64 28 66 32 29 5c 6e 41 2e 61 70 70 65 6e 64 28 66 33 29 5c 6e 41 2e 61 | nA.append(f2)\nA.append(f3)\nA.a |
1f940 | 70 70 65 6e 64 28 66 34 29 5c 6e 41 20 3d 20 6e 70 2e 61 72 72 61 79 28 41 29 5c 6e 5c 6e 6e 62 | ppend(f4)\nA.=.np.array(A)\n\nnb |
1f960 | 5f 69 6d 61 67 65 73 20 3d 20 35 5c 6e 5c 6e 23 20 74 68 6f 73 65 20 61 72 65 20 74 68 65 20 66 | _images.=.5\n\n#.those.are.the.f |
1f980 | 6f 75 72 20 63 6f 72 6e 65 72 73 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 74 68 61 74 20 77 69 6c | our.corners.coordinates.that.wil |
1f9a0 | 6c 20 62 65 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 62 79 20 62 69 6c 69 6e 65 61 72 5c 6e 23 | l.be.interpolated.by.bilinear\n# |
1f9c0 | 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 76 31 20 3d 20 6e 70 2e 61 72 72 61 79 28 28 31 | .interpolation\nv1.=.np.array((1 |
1f9e0 | 2c 20 30 2c 20 30 2c 20 30 29 29 5c 6e 76 32 20 3d 20 6e 70 2e 61 72 72 61 79 28 28 30 2c 20 31 | ,.0,.0,.0))\nv2.=.np.array((0,.1 |
1fa00 | 2c 20 30 2c 20 30 29 29 5c 6e 76 33 20 3d 20 6e 70 2e 61 72 72 61 79 28 28 30 2c 20 30 2c 20 31 | ,.0,.0))\nv3.=.np.array((0,.0,.1 |
1fa20 | 2c 20 30 29 29 5c 6e 76 34 20 3d 20 6e 70 2e 61 72 72 61 79 28 28 30 2c 20 30 2c 20 30 2c 20 31 | ,.0))\nv4.=.np.array((0,.0,.0,.1 |
1fa40 | 29 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 | ))".......].....},.....{......." |
1fa60 | 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d | cell_type":."markdown",......."m |
1fa80 | 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a | etadata":.{},......."source":.[. |
1faa0 | 20 20 20 20 20 20 20 20 22 42 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 | ........"Barycenter.computation. |
1fac0 | 61 6e 64 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | and.visualization\n------------- |
1fae0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 5c | ---------------------------\n\n\ |
1fb00 | 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 | n".......].....},.....{......."c |
1fb20 | 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 | ell_type":."code",......."execut |
1fb40 | 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ion_count":.null,......."metadat |
1fb60 | 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 | a":.{........."collapsed":.false |
1fb80 | 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 | .......},......."outputs":.[],.. |
1fba0 | 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 | ....."source":.[........."pl.fig |
1fbc0 | 75 72 65 28 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 | ure(figsize=(10,.10))\npl.title( |
1fbe0 | 27 43 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 42 61 72 79 63 | 'Convolutional.Wasserstein.Baryc |
1fc00 | 65 6e 74 65 72 73 20 69 6e 20 50 4f 54 27 29 5c 6e 63 6d 20 3d 20 27 42 6c 75 65 73 27 5c 6e 23 | enters.in.POT')\ncm.=.'Blues'\n# |
1fc20 | 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 5c 6e 72 65 67 20 3d | .regularization.parameter\nreg.= |
1fc40 | 20 30 2e 30 30 34 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 5f 69 6d 61 67 65 73 | .0.004\nfor.i.in.range(nb_images |
1fc60 | 29 3a 5c 6e 20 20 20 20 66 6f 72 20 6a 20 69 6e 20 72 61 6e 67 65 28 6e 62 5f 69 6d 61 67 65 73 | ):\n....for.j.in.range(nb_images |
1fc80 | 29 3a 5c 6e 20 20 20 20 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 6e 62 5f 69 6d 61 67 65 73 | ):\n........pl.subplot(nb_images |
1fca0 | 2c 20 6e 62 5f 69 6d 61 67 65 73 2c 20 69 20 2a 20 6e 62 5f 69 6d 61 67 65 73 20 2b 20 6a 20 2b | ,.nb_images,.i.*.nb_images.+.j.+ |
1fcc0 | 20 31 29 5c 6e 20 20 20 20 20 20 20 20 74 78 20 3d 20 66 6c 6f 61 74 28 69 29 20 2f 20 28 6e 62 | .1)\n........tx.=.float(i)./.(nb |
1fce0 | 5f 69 6d 61 67 65 73 20 2d 20 31 29 5c 6e 20 20 20 20 20 20 20 20 74 79 20 3d 20 66 6c 6f 61 74 | _images.-.1)\n........ty.=.float |
1fd00 | 28 6a 29 20 2f 20 28 6e 62 5f 69 6d 61 67 65 73 20 2d 20 31 29 5c 6e 5c 6e 20 20 20 20 20 20 20 | (j)./.(nb_images.-.1)\n\n....... |
1fd20 | 20 23 20 77 65 69 67 68 74 73 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 62 79 20 62 69 | .#.weights.are.constructed.by.bi |
1fd40 | 6c 69 6e 65 61 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 20 20 20 20 20 20 20 20 74 6d | linear.interpolation\n........tm |
1fd60 | 70 31 20 3d 20 28 31 20 2d 20 74 78 29 20 2a 20 76 31 20 2b 20 74 78 20 2a 20 76 32 5c 6e 20 20 | p1.=.(1.-.tx).*.v1.+.tx.*.v2\n.. |
1fd80 | 20 20 20 20 20 20 74 6d 70 32 20 3d 20 28 31 20 2d 20 74 78 29 20 2a 20 76 33 20 2b 20 74 78 20 | ......tmp2.=.(1.-.tx).*.v3.+.tx. |
1fda0 | 2a 20 76 34 5c 6e 20 20 20 20 20 20 20 20 77 65 69 67 68 74 73 20 3d 20 28 31 20 2d 20 74 79 29 | *.v4\n........weights.=.(1.-.ty) |
1fdc0 | 20 2a 20 74 6d 70 31 20 2b 20 74 79 20 2a 20 74 6d 70 32 5c 6e 5c 6e 20 20 20 20 20 20 20 20 69 | .*.tmp1.+.ty.*.tmp2\n\n........i |
1fde0 | 66 20 69 20 3d 3d 20 30 20 61 6e 64 20 6a 20 3d 3d 20 30 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 | f.i.==.0.and.j.==.0:\n.......... |
1fe00 | 20 20 70 6c 2e 69 6d 73 68 6f 77 28 66 31 2c 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 20 20 | ..pl.imshow(f1,.cmap=cm)\n...... |
1fe20 | 20 20 20 20 20 20 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 20 20 20 20 20 20 20 20 65 6c | ......pl.axis('off')\n........el |
1fe40 | 69 66 20 69 20 3d 3d 20 30 20 61 6e 64 20 6a 20 3d 3d 20 28 6e 62 5f 69 6d 61 67 65 73 20 2d 20 | if.i.==.0.and.j.==.(nb_images.-. |
1fe60 | 31 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 66 33 2c 20 63 | 1):\n............pl.imshow(f3,.c |
1fe80 | 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 61 78 69 73 28 27 6f 66 | map=cm)\n............pl.axis('of |
1fea0 | 66 27 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 69 66 20 69 20 3d 3d 20 28 6e 62 5f 69 6d 61 67 65 | f')\n........elif.i.==.(nb_image |
1fec0 | 73 20 2d 20 31 29 20 61 6e 64 20 6a 20 3d 3d 20 30 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 | s.-.1).and.j.==.0:\n............ |
1fee0 | 70 6c 2e 69 6d 73 68 6f 77 28 66 32 2c 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 20 20 20 20 | pl.imshow(f2,.cmap=cm)\n........ |
1ff00 | 20 20 20 20 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 69 66 | ....pl.axis('off')\n........elif |
1ff20 | 20 69 20 3d 3d 20 28 6e 62 5f 69 6d 61 67 65 73 20 2d 20 31 29 20 61 6e 64 20 6a 20 3d 3d 20 28 | .i.==.(nb_images.-.1).and.j.==.( |
1ff40 | 6e 62 5f 69 6d 61 67 65 73 20 2d 20 31 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e | nb_images.-.1):\n............pl. |
1ff60 | 69 6d 73 68 6f 77 28 66 34 2c 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 | imshow(f4,.cmap=cm)\n........... |
1ff80 | 20 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e | .pl.axis('off')\n........else:\n |
1ffa0 | 20 20 20 20 20 20 20 20 20 20 20 20 23 20 63 61 6c 6c 20 74 6f 20 62 61 72 79 63 65 6e 74 65 72 | ............#.call.to.barycenter |
1ffc0 | 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 69 6d 73 | .computation\n............pl.ims |
1ffe0 | 68 6f 77 28 6f 74 2e 62 72 65 67 6d 61 6e 2e 63 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 5f 62 61 72 | how(ot.bregman.convolutional_bar |
20000 | 79 63 65 6e 74 65 72 32 64 28 41 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 2c 20 63 6d 61 70 | ycenter2d(A,.reg,.weights),.cmap |
20020 | 3d 63 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 | =cm)\n............pl.axis('off') |
20040 | 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a | \npl.show()".......].....}...],. |
20060 | 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 | .."metadata":.{....."kernelspec" |
20080 | 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f | :.{......."display_name":."Pytho |
200a0 | 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 | n.3",......."language":."python" |
200c0 | 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c | ,......."name":."python3".....}, |
200e0 | 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 | ....."language_info":.{......."c |
20100 | 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 | odemirror_mode":.{........."name |
20120 | 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a | ":."ipython",........."version": |
20140 | 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f | .3.......},......."file_extensio |
20160 | 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 | n":.".py",......."mimetype":."te |
20180 | 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 | xt/x-python",......."name":."pyt |
201a0 | 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 | hon",......."nbconvert_exporter" |
201c0 | 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 | :."python",......."pygments_lexe |
201e0 | 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a | r":."ipython3",......."version": |
20200 | 20 22 33 2e 36 2e 35 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 | ."3.6.5".....}...},..."nbformat" |
20220 | 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 | :.4,..."nbformat_minor":.0.}PK.. |
20240 | 14 00 00 00 00 00 77 6d 7d 4e a0 07 79 4d 23 16 00 00 23 16 00 00 1c 00 00 00 70 6c 6f 74 5f 6f | ......wm}N..yM#...#.......plot_o |
20260 | 74 64 61 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 | tda_color_images.ipynb{..."cells |
20280 | 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 | ":.[.....{......."cell_type":."c |
202a0 | 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e | ode",......."execution_count":.n |
202c0 | 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 | ull,......."metadata":.{........ |
202e0 | 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 | ."collapsed":.false.......},.... |
20300 | 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 | ..."outputs":.[],......."source" |
20320 | 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 | :.[........."%matplotlib.inline" |
20340 | 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c | .......].....},.....{......."cel |
20360 | 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | l_type":."markdown",......."meta |
20380 | 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 | data":.{},......."source":.[.... |
203a0 | 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 66 6f 72 20 69 6d 61 67 65 20 63 6f 6c 6f 72 20 61 64 61 | ....."\n#.OT.for.image.color.ada |
203c0 | 70 74 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 70 72 65 73 65 6e | ptation\n\n\nThis.example.presen |
203e0 | 74 73 20 61 20 77 61 79 20 6f 66 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6c 6f 72 73 20 | ts.a.way.of.transferring.colors. |
20400 | 62 65 74 77 65 65 6e 20 74 77 6f 20 69 6d 61 67 65 73 5c 6e 77 69 74 68 20 4f 70 74 69 6d 61 6c | between.two.images\nwith.Optimal |
20420 | 20 54 72 61 6e 73 70 6f 72 74 20 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 5b 36 5d 5c | .Transport.as.introduced.in.[6]\ |
20440 | 6e 5c 6e 5b 36 5d 20 46 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 64 61 6b 69 73 2c | n\n[6].Ferradans,.S.,.Papadakis, |
20460 | 20 4e 2e 2c 20 50 65 79 72 65 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 2e 20 28 | .N.,.Peyre,.G.,.&.Aujol,.J..F..( |
20480 | 32 30 31 34 29 2e 5c 6e 52 65 67 75 6c 61 72 69 7a 65 64 20 64 69 73 63 72 65 74 65 20 6f 70 74 | 2014).\nRegularized.discrete.opt |
204a0 | 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 2e 5c 6e 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e | imal.transport.\nSIAM.Journal.on |
204c0 | 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e 63 65 73 2c 20 37 28 33 29 2c 20 31 38 35 33 2d 31 38 | .Imaging.Sciences,.7(3),.1853-18 |
204e0 | 38 32 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | 82.\n\n".......].....},.....{... |
20500 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 | ...."cell_type":."code",......." |
20520 | 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d | execution_count":.null,......."m |
20540 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a | etadata":.{........."collapsed": |
20560 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | .false.......},......."outputs": |
20580 | 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .[],......."source":.[........." |
205a0 | 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c | #.Authors:.Remi.Flamary.<remi.fl |
205c0 | 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 20 53 74 61 6e | amary@unice.fr>\n#..........Stan |
205e0 | 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e 63 68 61 6d 62 6f 6e 40 67 6d 61 69 | islas.Chambon.<stan.chambon@gmai |
20600 | 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 | l.com>\n#\n#.License:.MIT.Licens |
20620 | 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 66 72 6f 6d 20 73 63 | e\n\nimport.numpy.as.np\nfrom.sc |
20640 | 69 70 79 20 69 6d 70 6f 72 74 20 6e 64 69 6d 61 67 65 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c | ipy.import.ndimage\nimport.matpl |
20660 | 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e | otlib.pylab.as.pl\nimport.ot\n\n |
20680 | 5c 6e 72 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 65 28 34 32 29 5c | \nr.=.np.random.RandomState(42)\ |
206a0 | 6e 5c 6e 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 | n\n\ndef.im2mat(I):\n....\"\"\"C |
206c0 | 6f 6e 76 65 72 74 73 20 61 6e 20 69 6d 61 67 65 20 74 6f 20 6d 61 74 72 69 78 20 28 6f 6e 65 20 | onverts.an.image.to.matrix.(one. |
206e0 | 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 | pixel.per.line)\"\"\"\n....retur |
20700 | 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 5b 30 5d 20 2a 20 49 2e 73 68 61 70 | n.I.reshape((I.shape[0].*.I.shap |
20720 | 65 5b 31 5d 2c 20 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 | e[1],.I.shape[2]))\n\n\ndef.mat2 |
20740 | 69 6d 28 58 2c 20 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 | im(X,.shape):\n....\"\"\"Convert |
20760 | 73 20 62 61 63 6b 20 61 20 6d 61 74 72 69 78 20 74 6f 20 61 6e 20 69 6d 61 67 65 5c 22 5c 22 5c | s.back.a.matrix.to.an.image\"\"\ |
20780 | 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 58 2e 72 65 73 68 61 70 65 28 73 68 61 70 65 29 5c 6e | "\n....return.X.reshape(shape)\n |
207a0 | 5c 6e 5c 6e 64 65 66 20 6d 69 6e 6d 61 78 28 49 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e | \n\ndef.minmax(I):\n....return.n |
207c0 | 70 2e 63 6c 69 70 28 49 2c 20 30 2c 20 31 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a | p.clip(I,.0,.1)".......].....},. |
207e0 | 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f | ....{......."cell_type":."markdo |
20800 | 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 | wn",......."metadata":.{},...... |
20820 | 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 | ."source":.[........."Generate.d |
20840 | 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a | ata\n-------------\n\n".......]. |
20860 | 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 | ....},.....{......."cell_type":. |
20880 | 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a | "code",......."execution_count": |
208a0 | 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 | .null,......."metadata":.{...... |
208c0 | 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 | ..."collapsed":.false.......},.. |
208e0 | 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 | ....."outputs":.[],......."sourc |
20900 | 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c | e":.[........."#.Loading.images\ |
20920 | 6e 49 31 20 3d 20 6e 64 69 6d 61 67 65 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 | nI1.=.ndimage.imread('../data/oc |
20940 | 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 | ean_day.jpg').astype(np.float64) |
20960 | 20 2f 20 32 35 36 5c 6e 49 32 20 3d 20 6e 64 69 6d 61 67 65 2e 69 6d 72 65 61 64 28 27 2e 2e 2f | ./.256\nI2.=.ndimage.imread('../ |
20980 | 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e | data/ocean_sunset.jpg').astype(n |
209a0 | 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 5c 6e 58 31 20 3d 20 69 6d 32 6d 61 74 28 | p.float64)./.256\n\nX1.=.im2mat( |
209c0 | 49 31 29 5c 6e 58 32 20 3d 20 69 6d 32 6d 61 74 28 49 32 29 5c 6e 5c 6e 23 20 74 72 61 69 6e 69 | I1)\nX2.=.im2mat(I2)\n\n#.traini |
209e0 | 6e 67 20 73 61 6d 70 6c 65 73 5c 6e 6e 62 20 3d 20 31 30 30 30 5c 6e 69 64 78 31 20 3d 20 72 2e | ng.samples\nnb.=.1000\nidx1.=.r. |
20a00 | 72 61 6e 64 69 6e 74 28 58 31 2e 73 68 61 70 65 5b 30 5d 2c 20 73 69 7a 65 3d 28 6e 62 2c 29 29 | randint(X1.shape[0],.size=(nb,)) |
20a20 | 5c 6e 69 64 78 32 20 3d 20 72 2e 72 61 6e 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 20 | \nidx2.=.r.randint(X2.shape[0],. |
20a40 | 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 5c 6e 58 73 20 3d 20 58 31 5b 69 64 78 31 2c 20 3a 5d 5c | size=(nb,))\n\nXs.=.X1[idx1,.:]\ |
20a60 | 6e 58 74 20 3d 20 58 32 5b 69 64 78 32 2c 20 3a 5d 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | nXt.=.X2[idx2,.:]".......].....} |
20a80 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
20aa0 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
20ac0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 6f 72 69 | ..."source":.[........."Plot.ori |
20ae0 | 67 69 6e 61 6c 20 69 6d 61 67 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ginal.image\n------------------- |
20b00 | 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 | \n\n".......].....},.....{...... |
20b20 | 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 | ."cell_type":."code",......."exe |
20b40 | 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 | cution_count":.null,......."meta |
20b60 | 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 | data":.{........."collapsed":.fa |
20b80 | 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d | lse.......},......."outputs":.[] |
20ba0 | 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e | ,......."source":.[........."pl. |
20bc0 | 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 5c 6e 70 | figure(1,.figsize=(6.4,.3))\n\np |
20be0 | 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 | l.subplot(1,.2,.1)\npl.imshow(I1 |
20c00 | 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 | )\npl.axis('off')\npl.title('Ima |
20c20 | 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 | ge.1')\n\npl.subplot(1,.2,.2)\np |
20c40 | 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c | l.imshow(I2)\npl.axis('off')\npl |
20c60 | 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d | .title('Image.2')".......].....} |
20c80 | 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b | ,.....{......."cell_type":."mark |
20ca0 | 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 | down",......."metadata":.{},.... |
20cc0 | 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 63 61 74 74 65 72 20 | ..."source":.[........."Scatter. |
20ce0 | 70 6c 6f 74 20 6f 66 20 63 6f 6c 6f 72 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | plot.of.colors\n---------------- |
20d00 | 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b | ------\n\n".......].....},.....{ |
20d20 | 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 | ......."cell_type":."code",..... |
20d40 | 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 | .."execution_count":.null,...... |
20d60 | 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 | ."metadata":.{........."collapse |
20d80 | 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 | d":.false.......},......."output |
20da0 | 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | s":.[],......."source":.[....... |
20dc0 | 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 | .."pl.figure(2,.figsize=(6.4,.3) |
20de0 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 | )\n\npl.subplot(1,.2,.1)\npl.sca |
20e00 | 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 32 5d 2c 20 63 3d 58 73 29 5c 6e | tter(Xs[:,.0],.Xs[:,.2],.c=Xs)\n |
20e20 | 70 6c 2e 61 78 69 73 28 5b 30 2c 20 31 2c 20 30 2c 20 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c | pl.axis([0,.1,.0,.1])\npl.xlabel |
20e40 | 28 27 52 65 64 27 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e 74 | ('Red')\npl.ylabel('Blue')\npl.t |
20e60 | 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c | itle('Image.1')\n\npl.subplot(1, |
20e80 | 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b | .2,.2)\npl.scatter(Xt[:,.0],.Xt[ |
20ea0 | 3a 2c 20 32 5d 2c 20 63 3d 58 74 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 20 31 2c 20 30 2c 20 | :,.2],.c=Xt)\npl.axis([0,.1,.0,. |
20ec0 | 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c | 1])\npl.xlabel('Red')\npl.ylabel |
20ee0 | 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 70 | ('Blue')\npl.title('Image.2')\np |
20f00 | 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c | l.tight_layout()".......].....}, |
20f20 | 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 | .....{......."cell_type":."markd |
20f40 | 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 | own",......."metadata":.{},..... |
20f60 | 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 73 74 61 6e 74 69 61 | .."source":.[........."Instantia |
20f80 | 74 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 74 72 61 6e 73 70 6f 72 74 20 61 6c 67 6f 72 | te.the.different.transport.algor |
20fa0 | 69 74 68 6d 73 20 61 6e 64 20 66 69 74 20 74 68 65 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ithms.and.fit.them\n------------ |
20fc0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
20fe0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 | ---------------\n\n".......].... |
21000 | 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f | .},.....{......."cell_type":."co |
21020 | 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 | de",......."execution_count":.nu |
21040 | 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 | ll,......."metadata":.{......... |
21060 | 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 | "collapsed":.false.......},..... |
21080 | 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a | .."outputs":.[],......."source": |
210a0 | 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 45 4d 44 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 65 | .[........."#.EMDTransport\not_e |
210c0 | 6d 64 20 3d 20 6f 74 2e 64 61 2e 45 4d 44 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e 6f 74 5f 65 6d | md.=.ot.da.EMDTransport()\not_em |
210e0 | 64 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 | d.fit(Xs=Xs,.Xt=Xt)\n\n#.Sinkhor |
21100 | 6e 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 64 61 2e | nTransport\not_sinkhorn.=.ot.da. |
21120 | 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f | SinkhornTransport(reg_e=1e-1)\no |
21140 | 74 5f 73 69 6e 6b 68 6f 72 6e 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e | t_sinkhorn.fit(Xs=Xs,.Xt=Xt)\n\n |
21160 | 23 20 70 72 65 64 69 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 69 6d 61 67 65 73 20 28 75 73 69 | #.prediction.between.images.(usi |
21180 | 6e 67 20 6f 75 74 20 6f 66 20 73 61 6d 70 6c 65 20 70 72 65 64 69 63 74 69 6f 6e 20 61 73 20 69 | ng.out.of.sample.prediction.as.i |
211a0 | 6e 20 5b 36 5d 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 20 3d 20 6f 74 5f 65 6d 64 2e 74 | n.[6])\ntransp_Xs_emd.=.ot_emd.t |
211c0 | 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 74 72 61 6e 73 70 5f 58 74 5f 65 6d 64 20 3d | ransform(Xs=X1)\ntransp_Xt_emd.= |
211e0 | 20 6f 74 5f 65 6d 64 2e 69 6e 76 65 72 73 65 5f 74 72 61 6e 73 66 6f 72 6d 28 58 74 3d 58 32 29 | .ot_emd.inverse_transform(Xt=X2) |
21200 | 5c 6e 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e 6b | \n\ntransp_Xs_sinkhorn.=.ot_sink |
21220 | 68 6f 72 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 74 72 61 6e 73 70 5f 58 74 | horn.transform(Xs=X1)\ntransp_Xt |
21240 | 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 69 6e 76 65 72 73 65 5f | _sinkhorn.=.ot_sinkhorn.inverse_ |
21260 | 74 72 61 6e 73 66 6f 72 6d 28 58 74 3d 58 32 29 5c 6e 5c 6e 49 31 74 20 3d 20 6d 69 6e 6d 61 78 | transform(Xt=X2)\n\nI1t.=.minmax |
21280 | 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 2c 20 49 31 2e 73 68 61 70 65 29 | (mat2im(transp_Xs_emd,.I1.shape) |
212a0 | 29 5c 6e 49 32 74 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 74 | )\nI2t.=.minmax(mat2im(transp_Xt |
212c0 | 5f 65 6d 64 2c 20 49 32 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 49 31 74 65 20 3d 20 6d 69 6e 6d 61 | _emd,.I2.shape))\n\nI1te.=.minma |
212e0 | 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 2c 20 49 31 2e | x(mat2im(transp_Xs_sinkhorn,.I1. |
21300 | 73 68 61 70 65 29 29 5c 6e 49 32 74 65 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 72 | shape))\nI2te.=.minmax(mat2im(tr |
21320 | 61 6e 73 70 5f 58 74 5f 73 69 6e 6b 68 6f 72 6e 2c 20 49 32 2e 73 68 61 70 65 29 29 22 0a 20 20 | ansp_Xt_sinkhorn,.I2.shape))"... |
21340 | 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 | ....].....},.....{......."cell_t |
21360 | 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 | ype":."markdown",......."metadat |
21380 | 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 | a":.{},......."source":.[....... |
213a0 | 20 20 22 50 6c 6f 74 20 6e 65 77 20 69 6d 61 67 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .."Plot.new.images\n------------ |
213c0 | 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 | ---\n\n".......].....},.....{... |
213e0 | 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 | ...."cell_type":."code",......." |
21400 | 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d | execution_count":.null,......."m |
21420 | 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a | etadata":.{........."collapsed": |
21440 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a | .false.......},......."outputs": |
21460 | 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 | .[],......."source":.[........." |
21480 | 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 69 67 73 69 7a 65 3d 28 38 2c 20 34 29 29 5c 6e 5c 6e | pl.figure(3,.figsize=(8,.4))\n\n |
214a0 | 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 | pl.subplot(2,.3,.1)\npl.imshow(I |
214c0 | 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d | 1)\npl.axis('off')\npl.title('Im |
214e0 | 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 32 29 5c 6e | age.1')\n\npl.subplot(2,.3,.2)\n |
21500 | 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e | pl.imshow(I1t)\npl.axis('off')\n |
21520 | 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 20 41 64 61 70 74 27 29 5c 6e 5c 6e 70 6c 2e | pl.title('Image.1.Adapt')\n\npl. |
21540 | 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 65 | subplot(2,.3,.3)\npl.imshow(I1te |
21560 | 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 | )\npl.axis('off')\npl.title('Ima |
21580 | 67 65 20 31 20 41 64 61 70 74 20 28 72 65 67 29 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 | ge.1.Adapt.(reg)')\n\npl.subplot |
215a0 | 28 32 2c 20 33 2c 20 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 | (2,.3,.4)\npl.imshow(I2)\npl.axi |
215c0 | 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 5c | s('off')\npl.title('Image.2')\n\ |
215e0 | 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 | npl.subplot(2,.3,.5)\npl.imshow( |
21600 | 49 32 74 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 | I2t)\npl.axis('off')\npl.title(' |
21620 | 49 6d 61 67 65 20 32 20 41 64 61 70 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c | Image.2.Adapt')\n\npl.subplot(2, |
21640 | 20 33 2c 20 36 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 65 29 5c 6e 70 6c 2e 61 78 69 73 | .3,.6)\npl.imshow(I2te)\npl.axis |
21660 | 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 20 41 64 61 70 74 | ('off')\npl.title('Image.2.Adapt |
21680 | 20 28 72 65 67 29 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 | .(reg)')\npl.tight_layout()\n\np |
216a0 | 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 | l.show()".......].....}...],..." |
216c0 | 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b | metadata":.{....."kernelspec":.{ |
216e0 | 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 | ......."display_name":."Python.3 |
21700 | 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 | ",......."language":."python",.. |
21720 | 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 | ....."name":."python3".....},... |
21740 | 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 | .."language_info":.{......."code |
21760 | 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 | mirror_mode":.{........."name":. |
21780 | 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a | "ipython",........."version":.3. |
217a0 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a | ......},......."file_extension": |
217c0 | 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f | .".py",......."mimetype":."text/ |
217e0 | 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e | x-python",......."name":."python |
21800 | 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 | ",......."nbconvert_exporter":." |
21820 | 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a | python",......."pygments_lexer": |
21840 | 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 | ."ipython3",......."version":."3 |
21860 | 2e 36 2e 37 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 | .6.7".....}...},..."nbformat":.4 |
21880 | 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 01 02 14 03 14 | ,..."nbformat_minor":.0.}PK..... |
218a0 | 00 00 00 00 00 2d 60 cb 4c 88 ac 62 ba 81 11 00 00 81 11 00 00 11 00 00 00 00 00 00 00 00 00 00 | .....-`.L..b.................... |
218c0 | 00 b4 81 00 00 00 00 70 6c 6f 74 5f 67 72 6f 6d 6f 76 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 | .......plot_gromov.ipynbPK...... |
218e0 | 00 00 00 00 a7 6e a2 4c ae 38 61 57 26 14 00 00 26 14 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 | .....n.L.8aW&...&............... |
21900 | b4 81 b0 11 00 00 70 6c 6f 74 5f 57 44 41 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 | ......plot_WDA.ipynbPK.......... |
21920 | 18 7f a2 4c aa d3 d6 af 27 23 00 00 27 23 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 b4 81 02 26 | ...L....'#..'#.................& |
21940 | 00 00 70 6c 6f 74 5f 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 79 6e 62 50 4b | ..plot_gromov_barycenter.ipynbPK |
21960 | 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c 17 03 7f 9a 5e 13 00 00 5e 13 00 00 16 00 00 00 00 00 | ..........-`.L....^...^......... |
21980 | 00 00 00 00 00 00 b4 81 63 49 00 00 70 6c 6f 74 5f 6f 70 74 69 6d 5f 4f 54 72 65 67 2e 69 70 79 | ........cI..plot_optim_OTreg.ipy |
219a0 | 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c d1 72 b5 4d f4 1c 00 00 f4 1c 00 00 12 00 | nbPK..........-`.L.r.M.......... |
219c0 | 00 00 00 00 00 00 00 00 00 00 b4 81 f5 5c 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 64 32 2e 69 70 79 | .............\..plot_otda_d2.ipy |
219e0 | 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c a9 b8 76 f6 f8 19 00 00 f8 19 00 00 1f 00 | nbPK..........-`.L..v........... |
21a00 | 00 00 00 00 00 00 00 00 00 00 b4 81 19 7a 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 73 65 6d 69 5f 73 | .............z..plot_otda_semi_s |
21a20 | 75 70 65 72 76 69 73 65 64 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c 27 | upervised.ipynbPK..........-`.L' |
21a40 | 4a df 9c 9d 0d 00 00 9d 0d 00 00 10 00 00 00 00 00 00 00 00 00 00 00 b4 81 4e 94 00 00 70 6c 6f | J........................N...plo |
21a60 | 74 5f 4f 54 5f 31 44 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 77 6d 7d 4e 6b b3 7a | t_OT_1D.ipynbPK..........wm}Nk.z |
21a80 | d2 55 26 00 00 55 26 00 00 15 00 00 00 00 00 00 00 00 00 00 00 b4 81 19 a2 00 00 70 6c 6f 74 5f | .U&..U&....................plot_ |
21aa0 | 73 74 6f 63 68 61 73 74 69 63 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 ec 45 43 4d | stochastic.ipynbPK...........ECM |
21ac0 | 80 1a 80 7c 9f 15 00 00 9f 15 00 00 18 00 00 00 00 00 00 00 00 00 00 00 b4 81 a1 c8 00 00 70 6c | ...|..........................pl |
21ae0 | 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 | ot_barycenter_1D.ipynbPK........ |
21b00 | 00 00 2d 60 cb 4c cc bf 84 66 2d 18 00 00 2d 18 00 00 17 00 00 00 00 00 00 00 00 00 00 00 b4 81 | ..-`.L...f-...-................. |
21b20 | 76 de 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 63 6c 61 73 73 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 | v...plot_otda_classes.ipynbPK... |
21b40 | 03 14 00 00 00 00 00 ec 45 43 4d df ba b4 fb aa 10 00 00 aa 10 00 00 17 00 00 00 00 00 00 00 00 | ........ECM..................... |
21b60 | 00 00 00 b4 81 d8 f6 00 00 70 6c 6f 74 5f 4f 54 5f 31 44 5f 73 6d 6f 6f 74 68 2e 69 70 79 6e 62 | .........plot_OT_1D_smooth.ipynb |
21b80 | 50 4b 01 02 14 03 14 00 00 00 00 00 77 6d 7d 4e 80 8e 14 e4 3b 18 00 00 3b 18 00 00 25 00 00 00 | PK..........wm}N....;...;...%... |
21ba0 | 00 00 00 00 00 00 00 00 b4 81 b7 07 01 00 70 6c 6f 74 5f 6f 74 64 61 5f 6d 61 70 70 69 6e 67 5f | ..............plot_otda_mapping_ |
21bc0 | 63 6f 6c 6f 72 73 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 ec | colors_images.ipynbPK........... |
21be0 | 45 43 4d c7 ed 71 d0 e2 0d 00 00 e2 0d 00 00 22 00 00 00 00 00 00 00 00 00 00 00 b4 81 35 20 01 | ECM..q.........".............5.. |
21c00 | 00 70 6c 6f 74 5f 66 72 65 65 5f 73 75 70 70 6f 72 74 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 | .plot_free_support_barycenter.ip |
21c20 | 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 05 72 d9 4e 76 0a 6d b5 0e 1a 00 00 0e 1a 00 00 0e | ynbPK...........r.Nv.m.......... |
21c40 | 00 00 00 00 00 00 00 00 00 00 00 b4 81 57 2e 01 00 70 6c 6f 74 5f 66 67 77 2e 69 70 79 6e 62 50 | .............W...plot_fgw.ipynbP |
21c60 | 4b 01 02 14 03 14 00 00 00 00 00 35 72 d9 4e 2a a3 88 70 7d 20 00 00 7d 20 00 00 19 00 00 00 00 | K..........5r.N*..p}...}........ |
21c80 | 00 00 00 00 00 00 00 b4 81 91 48 01 00 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 66 67 77 | ..........H..plot_barycenter_fgw |
21ca0 | 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c 3e 1d 30 6f d5 1a 00 00 d5 1a | .ipynbPK..........-`.L>.0o...... |
21cc0 | 00 00 16 00 00 00 00 00 00 00 00 00 00 00 b4 81 45 69 01 00 70 6c 6f 74 5f 4f 54 5f 4c 31 5f 76 | ................Ei..plot_OT_L1_v |
21ce0 | 73 5f 4c 32 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c f9 b0 b7 c4 b9 1d | s_L2.ipynbPK..........-`.L...... |
21d00 | 00 00 b9 1d 00 00 24 00 00 00 00 00 00 00 00 00 00 00 b4 81 4e 84 01 00 70 6c 6f 74 5f 62 61 72 | ......$.............N...plot_bar |
21d20 | 79 63 65 6e 74 65 72 5f 6c 70 5f 76 73 5f 65 6e 74 72 6f 70 69 63 2e 69 70 79 6e 62 50 4b 01 02 | ycenter_lp_vs_entropic.ipynbPK.. |
21d40 | 14 03 14 00 00 00 00 00 04 72 d9 4e 43 f7 2c fd 72 13 00 00 72 13 00 00 18 00 00 00 00 00 00 00 | .........r.NC.,.r...r........... |
21d60 | 00 00 00 00 b4 81 49 a2 01 00 70 6c 6f 74 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 2e 69 70 79 | ......I...plot_OT_2D_samples.ipy |
21d80 | 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c b5 c3 fd 1f 0a 15 00 00 0a 15 00 00 1e 00 | nbPK..........-`.L.............. |
21da0 | 00 00 00 00 00 00 00 00 00 00 b4 81 f1 b5 01 00 70 6c 6f 74 5f 6f 74 64 61 5f 6c 69 6e 65 61 72 | ................plot_otda_linear |
21dc0 | 5f 6d 61 70 70 69 6e 67 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d 60 cb 4c 49 c5 | _mapping.ipynbPK..........-`.LI. |
21de0 | 7b 83 fa 16 00 00 fa 16 00 00 17 00 00 00 00 00 00 00 00 00 00 00 b4 81 37 cb 01 00 70 6c 6f 74 | {.......................7...plot |
21e00 | 5f 6f 74 64 61 5f 6d 61 70 70 69 6e 67 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 2d | _otda_mapping.ipynbPK..........- |
21e20 | 60 cb 4c e5 eb aa 89 7c 10 00 00 7c 10 00 00 16 00 00 00 00 00 00 00 00 00 00 00 b4 81 66 e2 01 | `.L....|...|.................f.. |
21e40 | 00 70 6c 6f 74 5f 63 6f 6d 70 75 74 65 5f 65 6d 64 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 | .plot_compute_emd.ipynbPK....... |
21e60 | 00 00 00 ec 45 43 4d 58 b0 17 7b e5 0e 00 00 e5 0e 00 00 23 00 00 00 00 00 00 00 00 00 00 00 b4 | ....ECMX..{........#............ |
21e80 | 81 16 f3 01 00 70 6c 6f 74 5f 63 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 5f 62 61 72 79 63 65 6e 74 | .....plot_convolutional_barycent |
21ea0 | 65 72 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 77 6d 7d 4e a0 07 79 4d 23 16 00 00 | er.ipynbPK..........wm}N..yM#... |
21ec0 | 23 16 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 b4 81 3c 02 02 00 70 6c 6f 74 5f 6f 74 64 61 5f | #.................<...plot_otda_ |
21ee0 | 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 05 06 00 00 00 00 17 00 17 00 59 06 | color_images.ipynbPK..........Y. |
21f00 | 00 00 99 18 02 00 00 00 | ........ |