ofs | hex dump | ascii |
---|
0000 | 50 4b 03 04 14 00 00 00 00 00 3b 82 e3 4a 7b d5 9c b1 6e 08 00 00 6e 08 00 00 1c 00 00 00 61 75 | PK........;..J{...n...n.......au |
0020 | 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 57 44 41 2e 69 70 79 6e 62 7b 0a 20 20 22 6e | to_examples/plot_WDA.ipynb{..."n |
0040 | 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 74 22 | bformat_minor":.0,...."nbformat" |
0060 | 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 20 22 | :.4,...."cells":.[.....{......." |
0080 | 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 20 22 | execution_count":.null,........" |
00a0 | 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 75 72 | cell_type":."code",........"sour |
00c0 | 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 |
00e0 | 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 20 5b | ne".......],........"outputs":.[ |
0100 | 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 20 | ],........"metadata":.{......... |
0120 | 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 7d | "collapsed":.false.......}.....} |
0140 | 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 20 | ,......{......."source":.[...... |
0160 | 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 6e 74 | ..."\n#.Wasserstein.Discriminant |
0180 | 20 41 6e 61 6c 79 73 69 73 5c 6e 5c 6e 5c 6e 40 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 | .Analysis\n\n\n@author:.rflamary |
01a0 | 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 65 | \n\n".......],........"cell_type |
01c0 | 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 22 | ":."markdown",........"metadata" |
01e0 | 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 74 | :.{}.....},......{......."execut |
0200 | 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 74 | ion_count":.null,........"cell_t |
0220 | 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 5b | ype":."code",........"source":.[ |
0240 | 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d | ........."import.numpy.as.np\nim |
0260 | 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 6d 70 | port.matplotlib.pylab.as.pl\nimp |
0280 | 6f 72 74 20 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 74 20 | ort.ot\nfrom.ot.datasets.import. |
02a0 | 67 65 74 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 5c 6e 66 72 6f 6d 20 6f 74 2e 64 | get_1D_gauss.as.gauss\nfrom.ot.d |
02c0 | 72 20 69 6d 70 6f 72 74 20 77 64 61 5c 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 | r.import.wda\n\n\n#%%.parameters |
02e0 | 5c 6e 5c 6e 6e 3d 31 30 30 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 20 69 6e 20 73 6f 75 72 63 | \n\nn=1000.#.nb.samples.in.sourc |
0300 | 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 61 74 61 73 65 74 73 5c 6e 6e 7a 3d 30 2e 32 5c 6e 78 | e.and.target.datasets\nnz=0.2\nx |
0320 | 73 2c 79 73 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 64 61 74 61 5f 63 6c 61 73 73 69 | s,ys=ot.datasets.get_data_classi |
0340 | 66 28 27 33 67 61 75 73 73 27 2c 6e 2c 6e 7a 29 5c 6e 78 74 2c 79 74 3d 6f 74 2e 64 61 74 61 73 | f('3gauss',n,nz)\nxt,yt=ot.datas |
0360 | 65 74 73 2e 67 65 74 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 6e 2c | ets.get_data_classif('3gauss',n, |
0380 | 6e 7a 29 5c 6e 5c 6e 6e 62 6e 6f 69 73 65 3d 38 5c 6e 5c 6e 78 73 3d 6e 70 2e 68 73 74 61 63 6b | nz)\n\nnbnoise=8\n\nxs=np.hstack |
03a0 | 28 28 78 73 2c 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 6e 62 6e 6f 69 73 65 29 29 | ((xs,np.random.randn(n,nbnoise)) |
03c0 | 29 5c 6e 78 74 3d 6e 70 2e 68 73 74 61 63 6b 28 28 78 74 2c 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 | )\nxt=np.hstack((xt,np.random.ra |
03e0 | 6e 64 6e 28 6e 2c 6e 62 6e 6f 69 73 65 29 29 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 73 61 6d | ndn(n,nbnoise)))\n\n#%%.plot.sam |
0400 | 70 6c 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 63 61 | ples\n\npl.figure(1)\n\n\npl.sca |
0420 | 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 | tter(xt[:,0],xt[:,1],c=ys,marker |
0440 | 3d 27 2b 27 2c 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 | ='+',label='Source.samples')\npl |
0460 | 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 44 69 73 63 72 69 | .legend(loc=0)\npl.title('Discri |
0480 | 6d 69 6e 61 6e 74 20 64 69 6d 65 6e 73 69 6f 6e 73 27 29 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f | minant.dimensions')\n\n\n#%%.plo |
04a0 | 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\ |
04c0 | 6e 70 3d 32 5c 6e 72 65 67 3d 31 5c 6e 6b 3d 31 30 5c 6e 6d 61 78 69 74 65 72 3d 31 30 30 5c 6e | np=2\nreg=1\nk=10\nmaxiter=100\n |
04e0 | 5c 6e 50 2c 70 72 6f 6a 20 3d 20 77 64 61 28 78 73 2c 79 73 2c 70 2c 72 65 67 2c 6b 2c 6d 61 78 | \nP,proj.=.wda(xs,ys,p,reg,k,max |
0500 | 69 74 65 72 3d 6d 61 78 69 74 65 72 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 | iter=maxiter)\n\n#%%.plot.sample |
0520 | 73 5c 6e 5c 6e 78 73 70 3d 70 72 6f 6a 28 78 73 29 5c 6e 78 74 70 3d 70 72 6f 6a 28 78 74 29 5c | s\n\nxsp=proj(xs)\nxtp=proj(xt)\ |
0540 | 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 28 31 30 2c 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 | n\npl.figure(1,(10,5))\n\npl.sub |
0560 | 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 70 5b 3a 2c 30 5d | plot(1,2,1)\npl.scatter(xsp[:,0] |
0580 | 2c 78 73 70 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d | ,xsp[:,1],c=ys,marker='+',label= |
05a0 | 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 65 6e 64 28 | 'Projected.samples')\npl.legend( |
05c0 | 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 74 72 61 69 | loc=0)\npl.title('Projected.trai |
05e0 | 6e 69 6e 67 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 | ning.samples')\n\n\npl.subplot(1 |
0600 | 2c 32 2c 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 70 5b 3a 2c 30 5d 2c 78 74 70 5b 3a | ,2,2)\npl.scatter(xtp[:,0],xtp[: |
0620 | 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 | ,1],c=ys,marker='+',label='Proje |
0640 | 63 74 65 64 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 30 29 | cted.samples')\npl.legend(loc=0) |
0660 | 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a 65 63 74 65 64 20 74 65 73 74 20 73 61 6d 70 6c | \npl.title('Projected.test.sampl |
0680 | 65 73 27 29 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 | es')".......],........"outputs": |
06a0 | 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":.{....... |
06c0 | 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.......}.... |
06e0 | 20 7d 0a 20 20 5d 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 | .}...],...."metadata":.{....."ke |
0700 | 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 |
0720 | 22 3a 20 22 50 79 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 | ":."Python.2",........"name":."p |
0740 | 79 74 68 6f 6e 32 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 | ython2",........"language":."pyt |
0760 | 68 6f 6e 22 0a 20 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 | hon".....},......"language_info" |
0780 | 3a 20 7b 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 | :.{......."mimetype":."text/x-py |
07a0 | 74 68 6f 6e 22 2c 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 | thon",........"nbconvert_exporte |
07c0 | 72 22 3a 20 22 70 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 | r":."python",........"name":."py |
07e0 | 74 68 6f 6e 22 2c 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 | thon",........"file_extension":. |
0800 | 22 2e 70 79 22 2c 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 | ".py",........"version":."2.7.12 |
0820 | 22 2c 20 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 | ",........"pygments_lexer":."ipy |
0840 | 74 68 6f 6e 32 22 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 | thon2",........"codemirror_mode" |
0860 | 3a 20 7b 0a 20 20 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 | :.{........."version":.2,....... |
0880 | 20 20 20 22 6e 61 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 | ..."name":."ipython".......}.... |
08a0 | 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 87 7b 82 49 fa 8c 13 06 e2 10 00 00 e2 10 | .}...}.}PK.........{.I.......... |
08c0 | 00 00 25 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 6d 61 | ..%...auto_examples/plot_OTDA_ma |
08e0 | 70 70 69 6e 67 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a | pping.ipynb{..."nbformat_minor": |
0900 | 20 30 2c 20 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 22 | .0,...."nbformat":.4,...."cells" |
0920 | 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 6e 5f 63 6f 75 6e 74 | :.[.....{......."execution_count |
0940 | 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 |
0960 | 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":.[......... |
0980 | 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 2c 20 0a 20 | "%matplotlib.inline".......],... |
09a0 | 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 20 22 6d 65 74 61 | ....."outputs":.[],........"meta |
09c0 | 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 |
09e0 | 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 20 20 20 20 20 20 | lse.......}.....},......{....... |
0a00 | 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 3d 3d 3d | "source":.[........."\n========= |
0a20 | 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 | ================================ |
0a40 | 3d 3d 3d 3d 3d 3d 5c 6e 4f 54 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f | ======\nOT.mapping.estimation.fo |
0a60 | 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 5b 38 5d 5c 6e 3d 3d 3d 3d 3d 3d 3d | r.domain.adaptation.[8]\n======= |
0a80 | 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 | ================================ |
0aa0 | 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 5c 6e 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 2c 20 4e 2e 20 43 6f | ========\n\n[8].M..Perrot,.N..Co |
0ac0 | 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 22 | urty,.R..Flamary,.A..Habrard,.\" |
0ae0 | 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 63 | Mapping.estimation.for\n....disc |
0b00 | 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 6c | rete.optimal.transport\",.Neural |
0b20 | 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 20 | .Information.Processing.Systems. |
0b40 | 28 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 2c 20 0a 20 20 20 | (NIPS),.2016.\n\n".......],..... |
0b60 | 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 20 20 | ..."cell_type":."markdown",..... |
0b80 | 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 7b 0a | ..."metadata":.{}.....},......{. |
0ba0 | 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 20 0a | ......"execution_count":.null,.. |
0bc0 | 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 20 20 | ......"cell_type":."code",...... |
0be0 | 20 20 22 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 | .."source":.[........."import.nu |
0c00 | 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 2e 70 79 6c | mpy.as.np\nimport.matplotlib.pyl |
0c20 | 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 64 | ab.as.pl\nimport.ot\n\n\n\n#%%.d |
0c40 | 61 74 61 73 65 74 20 67 65 6e 65 72 61 74 69 6f 6e 5c 6e 5c 6e 6e 70 2e 72 61 6e 64 6f 6d 2e 73 | ataset.generation\n\nnp.random.s |
0c60 | 65 65 64 28 30 29 20 23 20 6d 61 6b 65 73 20 65 78 61 6d 70 6c 65 20 72 65 70 72 6f 64 75 63 69 | eed(0).#.makes.example.reproduci |
0c80 | 62 6c 65 5c 6e 5c 6e 6e 3d 31 30 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 20 69 6e 20 73 6f 75 | ble\n\nn=100.#.nb.samples.in.sou |
0ca0 | 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 61 74 61 73 65 74 73 5c 6e 74 68 65 74 61 3d 32 | rce.and.target.datasets\ntheta=2 |
0cc0 | 2a 6e 70 2e 70 69 2f 32 30 5c 6e 6e 7a 3d 30 2e 31 5c 6e 78 73 2c 79 73 3d 6f 74 2e 64 61 74 61 | *np.pi/20\nnz=0.1\nxs,ys=ot.data |
0ce0 | 73 65 74 73 2e 67 65 74 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 67 61 75 73 73 72 6f 74 27 | sets.get_data_classif('gaussrot' |
0d00 | 2c 6e 2c 6e 7a 3d 6e 7a 29 5c 6e 78 74 2c 79 74 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 | ,n,nz=nz)\nxt,yt=ot.datasets.get |
0d20 | 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 67 61 75 73 73 72 6f 74 27 2c 6e 2c 74 68 65 74 61 | _data_classif('gaussrot',n,theta |
0d40 | 3d 74 68 65 74 61 2c 6e 7a 3d 6e 7a 29 5c 6e 5c 6e 23 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 61 | =theta,nz=nz)\n\n#.one.of.the.ta |
0d60 | 72 67 65 74 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 | rget.mode.changes.its.variance.( |
0d80 | 6e 6f 20 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 29 5c 6e 78 74 5b 79 74 3d 3d 32 5d 2a 3d 33 | no.linear.mapping)\nxt[yt==2]*=3 |
0da0 | 5c 6e 78 74 3d 78 74 2b 34 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c | \nxt=xt+4\n\n\n#%%.plot.samples\ |
0dc0 | 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 28 38 2c 35 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c | n\npl.figure(1,(8,5))\npl.clf()\ |
0de0 | 6e 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 63 3d | n\npl.scatter(xs[:,0],xs[:,1],c= |
0e00 | 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 | ys,marker='+',label='Source.samp |
0e20 | 6c 65 73 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 | les')\npl.scatter(xt[:,0],xt[:,1 |
0e40 | 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 | ],c=yt,marker='o',label='Target. |
0e60 | 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 | samples')\n\npl.legend(loc=0)\np |
0e80 | 6c 2e 74 69 74 6c 65 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 | l.title('Source.and.target.distr |
0ea0 | 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 4f 54 20 6c 69 6e 65 61 72 20 | ibutions')\n\n\n\n#%%.OT.linear. |
0ec0 | 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 5c 6e 5c 6e 65 74 61 3d 31 65 2d 38 20 20 | mapping.estimation\n\neta=1e-8.. |
0ee0 | 20 23 20 71 75 61 64 72 61 74 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 66 6f 72 20 | .#.quadratic.regularization.for. |
0f00 | 72 65 67 72 65 73 73 69 6f 6e 5c 6e 6d 75 3d 31 65 30 20 20 20 20 20 23 20 77 65 69 67 68 74 20 | regression\nmu=1e0.....#.weight. |
0f20 | 6f 66 20 74 68 65 20 4f 54 20 6c 69 6e 65 61 72 20 74 65 72 6d 5c 6e 62 69 61 73 3d 54 72 75 65 | of.the.OT.linear.term\nbias=True |
0f40 | 20 20 23 20 65 73 74 69 6d 61 74 65 20 61 20 62 69 61 73 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e | ..#.estimate.a.bias\n\not_mappin |
0f60 | 67 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 28 29 5c 6e 6f | g=ot.da.OTDA_mapping_linear()\no |
0f80 | 74 5f 6d 61 70 70 69 6e 67 2e 66 69 74 28 78 73 2c 78 74 2c 6d 75 3d 6d 75 2c 65 74 61 3d 65 74 | t_mapping.fit(xs,xt,mu=mu,eta=et |
0fa0 | 61 2c 62 69 61 73 3d 62 69 61 73 2c 6e 75 6d 49 74 65 72 6d 61 78 20 3d 20 32 30 2c 76 65 72 62 | a,bias=bias,numItermax.=.20,verb |
0fc0 | 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 78 73 74 3d 6f 74 5f 6d 61 70 70 69 6e 67 2e 70 72 65 64 | ose=True)\n\nxst=ot_mapping.pred |
0fe0 | 69 63 74 28 78 73 29 20 23 20 75 73 65 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 6d 61 70 70 | ict(xs).#.use.the.estimated.mapp |
1000 | 69 6e 67 5c 6e 78 73 74 30 3d 6f 74 5f 6d 61 70 70 69 6e 67 2e 69 6e 74 65 72 70 28 29 20 20 20 | ing\nxst0=ot_mapping.interp()... |
1020 | 23 20 75 73 65 20 62 61 72 79 63 65 6e 74 72 69 63 20 6d 61 70 70 69 6e 67 5c 6e 5c 6e 5c 6e 70 | #.use.barycentric.mapping\n\n\np |
1040 | 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 37 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c | l.figure(2,(10,7))\npl.clf()\npl |
1060 | 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a | .subplot(2,2,1)\npl.scatter(xt[: |
1080 | 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 | ,0],xt[:,1],c=yt,marker='o',labe |
10a0 | 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 2e 33 29 5c 6e 70 6c | l='Target.samples',alpha=.3)\npl |
10c0 | 2e 73 63 61 74 74 65 72 28 78 73 74 30 5b 3a 2c 30 5d 2c 78 73 74 30 5b 3a 2c 31 5d 2c 63 3d 79 | .scatter(xst0[:,0],xst0[:,1],c=y |
10e0 | 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 62 61 72 79 63 65 6e 74 72 69 63 20 | s,marker='+',label='barycentric. |
1100 | 6d 61 70 70 69 6e 67 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 62 61 72 79 63 65 6e 74 72 69 | mapping')\npl.title(\"barycentri |
1120 | 63 20 6d 61 70 70 69 6e 67 5c 22 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 32 | c.mapping\")\n\npl.subplot(2,2,2 |
1140 | 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d | )\npl.scatter(xt[:,0],xt[:,1],c= |
1160 | 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 | yt,marker='o',label='Target.samp |
1180 | 6c 65 73 27 2c 61 6c 70 68 61 3d 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 5b 3a | les',alpha=.3)\npl.scatter(xst[: |
11a0 | 2c 30 5d 2c 78 73 74 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 | ,0],xst[:,1],c=ys,marker='+',lab |
11c0 | 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 74 6c 65 28 | el='Learned.mapping')\npl.title( |
11e0 | 5c 22 4c 65 61 72 6e 65 64 20 6d 61 70 70 69 6e 67 5c 22 29 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 | \"Learned.mapping\")\n\n\n\n#%%. |
1200 | 4b 65 72 6e 65 6c 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 5c 6e 5c 6e 65 74 61 | Kernel.mapping.estimation\n\neta |
1220 | 3d 31 65 2d 35 20 20 20 23 20 71 75 61 64 72 61 74 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 | =1e-5...#.quadratic.regularizati |
1240 | 6f 6e 20 66 6f 72 20 72 65 67 72 65 73 73 69 6f 6e 5c 6e 6d 75 3d 31 65 2d 31 20 20 20 20 20 23 | on.for.regression\nmu=1e-1.....# |
1260 | 20 77 65 69 67 68 74 20 6f 66 20 74 68 65 20 4f 54 20 6c 69 6e 65 61 72 20 74 65 72 6d 5c 6e 62 | .weight.of.the.OT.linear.term\nb |
1280 | 69 61 73 3d 54 72 75 65 20 20 23 20 65 73 74 69 6d 61 74 65 20 61 20 62 69 61 73 5c 6e 73 69 67 | ias=True..#.estimate.a.bias\nsig |
12a0 | 6d 61 3d 31 20 20 20 20 23 20 73 69 67 6d 61 20 62 61 6e 64 77 69 64 74 68 20 66 6f 74 20 67 61 | ma=1....#.sigma.bandwidth.fot.ga |
12c0 | 75 73 73 69 61 6e 20 6b 65 72 6e 65 6c 5c 6e 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 | ussian.kernel\n\n\not_mapping_ke |
12e0 | 72 6e 65 6c 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 28 29 | rnel=ot.da.OTDA_mapping_kernel() |
1300 | 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 2e 66 69 74 28 78 73 2c 78 74 2c 6d 75 | \not_mapping_kernel.fit(xs,xt,mu |
1320 | 3d 6d 75 2c 65 74 61 3d 65 74 61 2c 73 69 67 6d 61 3d 73 69 67 6d 61 2c 62 69 61 73 3d 62 69 61 | =mu,eta=eta,sigma=sigma,bias=bia |
1340 | 73 2c 6e 75 6d 49 74 65 72 6d 61 78 20 3d 20 31 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c | s,numItermax.=.10,verbose=True)\ |
1360 | 6e 5c 6e 78 73 74 5f 6b 65 72 6e 65 6c 3d 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 2e | n\nxst_kernel=ot_mapping_kernel. |
1380 | 70 72 65 64 69 63 74 28 78 73 29 20 23 20 75 73 65 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 | predict(xs).#.use.the.estimated. |
13a0 | 6d 61 70 70 69 6e 67 5c 6e 78 73 74 30 5f 6b 65 72 6e 65 6c 3d 6f 74 5f 6d 61 70 70 69 6e 67 5f | mapping\nxst0_kernel=ot_mapping_ |
13c0 | 6b 65 72 6e 65 6c 2e 69 6e 74 65 72 70 28 29 20 20 20 23 20 75 73 65 20 62 61 72 79 63 65 6e 74 | kernel.interp()...#.use.barycent |
13e0 | 72 69 63 20 6d 61 70 70 69 6e 67 5c 6e 5c 6e 5c 6e 23 25 25 20 50 6c 6f 74 74 69 6e 67 20 74 68 | ric.mapping\n\n\n#%%.Plotting.th |
1400 | 65 20 6d 61 70 70 65 64 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c | e.mapped.samples\n\npl.figure(2, |
1420 | 28 31 30 2c 37 29 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 | (10,7))\npl.clf()\npl.subplot(2, |
1440 | 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d | 2,1)\npl.scatter(xt[:,0],xt[:,1] |
1460 | 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 | ,c=yt,marker='o',label='Target.s |
1480 | 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 | amples',alpha=.2)\npl.scatter(xs |
14a0 | 74 30 5b 3a 2c 30 5d 2c 78 73 74 30 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b | t0[:,0],xst0[:,1],c=ys,marker='+ |
14c0 | 27 2c 6c 61 62 65 6c 3d 27 4d 61 70 70 65 64 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 | ',label='Mapped.source.samples') |
14e0 | 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 42 61 72 79 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 6e 65 | \npl.title(\"Bary..mapping.(line |
1500 | 61 72 29 5c 22 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 5c 6e 70 6c 2e 73 | ar)\")\npl.legend(loc=0)\n\npl.s |
1520 | 75 62 70 6c 6f 74 28 32 2c 32 2c 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 | ubplot(2,2,2)\npl.scatter(xt[:,0 |
1540 | 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d | ],xt[:,1],c=yt,marker='o',label= |
1560 | 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 | 'Target.samples',alpha=.2)\npl.s |
1580 | 63 61 74 74 65 72 28 78 73 74 5b 3a 2c 30 5d 2c 78 73 74 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 | catter(xst[:,0],xst[:,1],c=ys,ma |
15a0 | 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 4c 65 61 72 6e 65 64 20 6d 61 70 70 69 6e 67 27 | rker='+',label='Learned.mapping' |
15c0 | 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 45 73 74 69 6d 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 | )\npl.title(\"Estim..mapping.(li |
15e0 | 6e 65 61 72 29 5c 22 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 33 29 5c 6e 70 | near)\")\n\npl.subplot(2,2,3)\np |
1600 | 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d | l.scatter(xt[:,0],xt[:,1],c=yt,m |
1620 | 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 | arker='o',label='Target.samples' |
1640 | 2c 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 30 5f 6b 65 72 6e | ,alpha=.2)\npl.scatter(xst0_kern |
1660 | 65 6c 5b 3a 2c 30 5d 2c 78 73 74 30 5f 6b 65 72 6e 65 6c 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 | el[:,0],xst0_kernel[:,1],c=ys,ma |
1680 | 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 62 61 72 79 63 65 6e 74 72 69 63 20 6d 61 70 70 | rker='+',label='barycentric.mapp |
16a0 | 69 6e 67 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 42 61 72 79 2e 20 6d 61 70 70 69 6e 67 20 | ing')\npl.title(\"Bary..mapping. |
16c0 | 28 6b 65 72 6e 65 6c 29 5c 22 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 34 29 | (kernel)\")\n\npl.subplot(2,2,4) |
16e0 | 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 | \npl.scatter(xt[:,0],xt[:,1],c=y |
1700 | 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c | t,marker='o',label='Target.sampl |
1720 | 65 73 27 2c 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 5f 6b 65 | es',alpha=.2)\npl.scatter(xst_ke |
1740 | 72 6e 65 6c 5b 3a 2c 30 5d 2c 78 73 74 5f 6b 65 72 6e 65 6c 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d | rnel[:,0],xst_kernel[:,1],c=ys,m |
1760 | 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 4c 65 61 72 6e 65 64 20 6d 61 70 70 69 6e 67 | arker='+',label='Learned.mapping |
1780 | 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 45 73 74 69 6d 2e 20 6d 61 70 70 69 6e 67 20 28 6b | ')\npl.title(\"Estim..mapping.(k |
17a0 | 65 72 6e 65 6c 29 5c 22 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 | ernel)\")".......],........"outp |
17c0 | 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 0a 20 | uts":.[],........"metadata":.{.. |
17e0 | 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....... |
1800 | 7d 0a 20 20 20 20 7d 0a 20 20 5d 2c 20 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 | }.....}...],...."metadata":.{... |
1820 | 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 70 6c 61 79 | .."kernelspec":.{......."display |
1840 | 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 32 22 2c 20 0a 20 20 20 20 20 20 22 6e 61 6d 65 | _name":."Python.2",........"name |
1860 | 22 3a 20 22 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a | ":."python2",........"language": |
1880 | 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f | ."python".....},......"language_ |
18a0 | 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 | info":.{......."mimetype":."text |
18c0 | 2f 78 2d 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 | /x-python",........"nbconvert_ex |
18e0 | 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 | porter":."python",........"name" |
1900 | 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 | :."python",........"file_extensi |
1920 | 6f 6e 22 3a 20 22 2e 70 79 22 2c 20 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 32 | on":.".py",........"version":."2 |
1940 | 2e 37 2e 31 32 22 2c 20 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a | .7.12",........"pygments_lexer": |
1960 | 20 22 69 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f | ."ipython2",........"codemirror_ |
1980 | 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 32 2c 20 0a | mode":.{........."version":.2,.. |
19a0 | 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 0a 20 20 20 20 20 20 | ........"name":."ipython"....... |
19c0 | 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 ab 83 e3 4a d1 21 9f 53 e8 | }.....}...}.}PK...........J.!.S. |
19e0 | 08 00 00 e8 08 00 00 24 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 6f 70 | .......$...auto_examples/plot_op |
1a00 | 74 69 6d 5f 4f 54 72 65 67 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e | tim_OTreg.ipynb{..."nbformat_min |
1a20 | 6f 72 22 3a 20 30 2c 20 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 | or":.0,...."nbformat":.4,...."ce |
1a40 | 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 6e 5f 63 | lls":.[.....{......."execution_c |
1a60 | 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 22 3a | ount":.null,........"cell_type": |
1a80 | 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 20 20 | ."code",........"source":.[..... |
1aa0 | 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 5d | ...."%matplotlib.inline".......] |
1ac0 | 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 20 22 | ,........"outputs":.[],........" |
1ae0 | 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" |
1b00 | 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 20 20 | :.false.......}.....},......{... |
1b20 | 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 52 65 67 | ...."source":.[........."\n#.Reg |
1b40 | 75 6c 61 72 69 7a 65 64 20 4f 54 20 77 69 74 68 20 67 65 6e 65 72 69 63 20 73 6f 6c 76 65 72 5c | ularized.OT.with.generic.solver\ |
1b60 | 6e 5c 6e 5c 6e 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 | n\n\n\n\n".......],........"cell |
1b80 | 5f 74 79 70 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 | _type":."markdown",........"meta |
1ba0 | 64 61 74 61 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 | data":.{}.....},......{......."e |
1bc0 | 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 20 22 63 | xecution_count":.null,........"c |
1be0 | 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 75 72 63 | ell_type":."code",........"sourc |
1c00 | 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 20 61 73 20 6e | e":.[........."import.numpy.as.n |
1c20 | 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 70 6c | p\nimport.matplotlib.pylab.as.pl |
1c40 | 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 | \nimport.ot\n\n\n\n#%%.parameter |
1c60 | 73 5c 6e 5c 6e 6e 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f | s\n\nn=100.#.nb.bins\n\n#.bin.po |
1c80 | 73 69 74 69 6f 6e 73 5c 6e 78 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e 70 2e | sitions\nx=np.arange(n,dtype=np. |
1ca0 | 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 69 62 75 74 | float64)\n\n#.Gaussian.distribut |
1cc0 | 69 6f 6e 73 5c 6e 61 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 31 44 5f 67 61 75 73 73 | ions\na=ot.datasets.get_1D_gauss |
1ce0 | 28 6e 2c 6d 3d 32 30 2c 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e | (n,m=20,s=5).#.m=.mean,.s=.std\n |
1d00 | 62 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 31 44 5f 67 61 75 73 73 28 6e 2c 6d 3d 36 | b=ot.datasets.get_1D_gauss(n,m=6 |
1d20 | 30 2c 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 3d 6f 74 2e 64 | 0,s=10)\n\n#.loss.matrix\nM=ot.d |
1d40 | 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 2c 78 2e 72 65 73 68 61 70 65 28 28 | ist(x.reshape((n,1)),x.reshape(( |
1d60 | 6e 2c 31 29 29 29 5c 6e 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 23 25 25 20 45 4d 44 5c 6e 5c | n,1)))\nM/=M.max()\n\n#%%.EMD\n\ |
1d80 | 6e 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 | nG0=ot.emd(a,b,M)\n\npl.figure(3 |
1da0 | 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 30 2c 27 4f 54 | )\not.plot.plot1D_mat(a,b,G0,'OT |
1dc0 | 20 6d 61 74 72 69 78 20 47 30 27 29 5c 6e 5c 6e 23 25 25 20 45 78 61 6d 70 6c 65 20 77 69 74 68 | .matrix.G0')\n\n#%%.Example.with |
1de0 | 20 46 72 6f 62 65 6e 69 75 73 20 6e 6f 72 6d 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e | .Frobenius.norm.regularization\n |
1e00 | 5c 6e 64 65 66 20 66 28 47 29 3a 20 72 65 74 75 72 6e 20 30 2e 35 2a 6e 70 2e 73 75 6d 28 47 2a | \ndef.f(G):.return.0.5*np.sum(G* |
1e20 | 2a 32 29 5c 6e 64 65 66 20 64 66 28 47 29 3a 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 72 65 67 3d | *2)\ndef.df(G):.return.G\n\nreg= |
1e40 | 31 65 2d 31 5c 6e 5c 6e 47 6c 32 3d 6f 74 2e 6f 70 74 69 6d 2e 63 67 28 61 2c 62 2c 4d 2c 72 65 | 1e-1\n\nGl2=ot.optim.cg(a,b,M,re |
1e60 | 67 2c 66 2c 64 66 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 | g,f,df,verbose=True)\n\npl.figur |
1e80 | 65 28 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 6c 32 | e(3)\not.plot.plot1D_mat(a,b,Gl2 |
1ea0 | 2c 27 4f 54 20 6d 61 74 72 69 78 20 46 72 6f 62 2e 20 72 65 67 27 29 5c 6e 5c 6e 23 25 25 20 45 | ,'OT.matrix.Frob..reg')\n\n#%%.E |
1ec0 | 78 61 6d 70 6c 65 20 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 | xample.with.entropic.regularizat |
1ee0 | 69 6f 6e 5c 6e 5c 6e 64 65 66 20 66 28 47 29 3a 20 72 65 74 75 72 6e 20 6e 70 2e 73 75 6d 28 47 | ion\n\ndef.f(G):.return.np.sum(G |
1f00 | 2a 6e 70 2e 6c 6f 67 28 47 29 29 5c 6e 64 65 66 20 64 66 28 47 29 3a 20 72 65 74 75 72 6e 20 6e | *np.log(G))\ndef.df(G):.return.n |
1f20 | 70 2e 6c 6f 67 28 47 29 2b 31 5c 6e 5c 6e 72 65 67 3d 31 65 2d 33 5c 6e 5c 6e 47 65 3d 6f 74 2e | p.log(G)+1\n\nreg=1e-3\n\nGe=ot. |
1f40 | 6f 70 74 69 6d 2e 63 67 28 61 2c 62 2c 4d 2c 72 65 67 2c 66 2c 64 66 2c 76 65 72 62 6f 73 65 3d | optim.cg(a,b,M,reg,f,df,verbose= |
1f60 | 54 72 75 65 29 5c 6e 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 | True)\n\npl.figure(4)\not.plot.p |
1f80 | 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 65 2c 27 4f 54 20 6d 61 74 72 69 78 20 45 6e 74 72 | lot1D_mat(a,b,Ge,'OT.matrix.Entr |
1fa0 | 6f 70 2e 20 72 65 67 27 29 5c 6e 5c 6e 23 25 25 20 45 78 61 6d 70 6c 65 20 77 69 74 68 20 46 72 | op..reg')\n\n#%%.Example.with.Fr |
1fc0 | 6f 62 65 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 | obenius.norm.+.entropic.regulari |
1fe0 | 7a 61 74 69 6f 6e 20 77 69 74 68 20 67 63 67 5c 6e 5c 6e 64 65 66 20 66 28 47 29 3a 20 72 65 74 | zation.with.gcg\n\ndef.f(G):.ret |
2000 | 75 72 6e 20 30 2e 35 2a 6e 70 2e 73 75 6d 28 47 2a 2a 32 29 5c 6e 64 65 66 20 64 66 28 47 29 3a | urn.0.5*np.sum(G**2)\ndef.df(G): |
2020 | 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 72 65 67 31 3d 31 65 2d 33 5c 6e 72 65 67 32 3d 31 65 2d | .return.G\n\nreg1=1e-3\nreg2=1e- |
2040 | 31 5c 6e 5c 6e 47 65 6c 32 3d 6f 74 2e 6f 70 74 69 6d 2e 67 63 67 28 61 2c 62 2c 4d 2c 72 65 67 | 1\n\nGel2=ot.optim.gcg(a,b,M,reg |
2060 | 31 2c 72 65 67 32 2c 66 2c 64 66 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e | 1,reg2,f,df,verbose=True)\n\npl. |
2080 | 66 69 67 75 72 65 28 35 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c | figure(5)\not.plot.plot1D_mat(a, |
20a0 | 62 2c 47 65 6c 32 2c 27 4f 54 20 65 6e 74 72 6f 70 69 63 20 2b 20 6d 61 74 72 69 78 20 46 72 6f | b,Gel2,'OT.entropic.+.matrix.Fro |
20c0 | 62 2e 20 72 65 67 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 | b..reg')\npl.show()".......],... |
20e0 | 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 20 22 6d 65 74 61 | ....."outputs":.[],........"meta |
2100 | 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 |
2120 | 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 5d 2c 20 0a 20 20 22 6d 65 74 61 64 | lse.......}.....}...],...."metad |
2140 | 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 20 | ata":.{....."kernelspec":.{..... |
2160 | 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 32 22 2c 20 0a 20 | .."display_name":."Python.2",... |
2180 | 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 | ....."name":."python2",........" |
21a0 | 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 | language":."python".....},...... |
21c0 | 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 6d 69 6d 65 74 79 | "language_info":.{......."mimety |
21e0 | 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 62 | pe":."text/x-python",........"nb |
2200 | 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 20 0a 20 20 | convert_exporter":."python",.... |
2220 | 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 66 69 | ...."name":."python",........"fi |
2240 | 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 20 0a 20 20 20 20 20 20 22 76 65 | le_extension":.".py",........"ve |
2260 | 72 73 69 6f 6e 22 3a 20 22 32 2e 37 2e 31 32 22 2c 20 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e | rsion":."2.7.12",........"pygmen |
2280 | 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 63 | ts_lexer":."ipython2",........"c |
22a0 | 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 76 65 72 73 | odemirror_mode":.{........."vers |
22c0 | 69 6f 6e 22 3a 20 32 2c 20 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 | ion":.2,.........."name":."ipyth |
22e0 | 6f 6e 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 | on".......}.....}...}.}PK....... |
2300 | 00 76 7b 82 49 50 0d 0a 74 03 0e 00 00 03 0e 00 00 25 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c | .v{.IP..t........%...auto_exampl |
2320 | 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 63 6c 61 73 73 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 6e | es/plot_OTDA_classes.ipynb{..."n |
2340 | 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 74 22 | bformat_minor":.0,...."nbformat" |
2360 | 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 20 22 | :.4,...."cells":.[.....{......." |
2380 | 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 20 22 | execution_count":.null,........" |
23a0 | 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 75 72 | cell_type":."code",........"sour |
23c0 | 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 |
23e0 | 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 20 5b | ne".......],........"outputs":.[ |
2400 | 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 20 | ],........"metadata":.{......... |
2420 | 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 7d | "collapsed":.false.......}.....} |
2440 | 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 20 | ,......{......."source":.[...... |
2460 | 20 20 20 22 5c 6e 23 20 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e | ..."\n#.OT.for.domain.adaptation |
2480 | 5c 6e 5c 6e 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 | \n\n\n\n".......],........"cell_ |
24a0 | 74 79 70 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 | type":."markdown",........"metad |
24c0 | 61 74 61 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 | ata":.{}.....},......{......."ex |
24e0 | 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 20 22 63 65 | ecution_count":.null,........"ce |
2500 | 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 75 72 63 65 | ll_type":."code",........"source |
2520 | 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e | ":.[........."import.matplotlib. |
2540 | 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 5c 6e 5c 6e 5c 6e | pylab.as.pl\nimport.ot\n\n\n\n\n |
2560 | 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 3d 31 35 30 20 23 20 6e 62 20 73 61 6d | #%%.parameters\n\nn=150.#.nb.sam |
2580 | 70 6c 65 73 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 61 74 61 73 65 | ples.in.source.and.target.datase |
25a0 | 74 73 5c 6e 5c 6e 78 73 2c 79 73 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 64 61 74 61 | ts\n\nxs,ys=ot.datasets.get_data |
25c0 | 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 6e 29 5c 6e 78 74 2c 79 74 3d 6f 74 2e 64 | _classif('3gauss',n)\nxt,yt=ot.d |
25e0 | 61 74 61 73 65 74 73 2e 67 65 74 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 | atasets.get_data_classif('3gauss |
2600 | 32 27 2c 6e 29 5c 6e 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c | 2',n)\n\n\n\n\n#%%.plot.samples\ |
2620 | 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c | n\npl.figure(1)\n\npl.subplot(2, |
2640 | 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d | 2,1)\npl.scatter(xs[:,0],xs[:,1] |
2660 | 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 | ,c=ys,marker='+',label='Source.s |
2680 | 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 |
26a0 | 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c | itle('Source..distributions')\n\ |
26c0 | 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 | npl.subplot(2,2,2)\npl.scatter(x |
26e0 | 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c | t[:,0],xt[:,1],c=yt,marker='o',l |
2700 | 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 65 6e | abel='Target.samples')\npl.legen |
2720 | 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 74 61 72 67 65 74 20 20 64 69 73 74 | d(loc=0)\npl.title('target..dist |
2740 | 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 5c 6e 23 25 25 20 4f 54 20 65 73 74 69 6d 61 74 69 | ributions')\n\n\n#%%.OT.estimati |
2760 | 6f 6e 5c 6e 5c 6e 23 20 4c 50 20 70 72 6f 62 6c 65 6d 5c 6e 64 61 5f 65 6d 64 3d 6f 74 2e 64 61 | on\n\n#.LP.problem\nda_emd=ot.da |
2780 | 2e 4f 54 44 41 28 29 20 20 20 20 20 23 20 69 6e 69 74 20 63 6c 61 73 73 5c 6e 64 61 5f 65 6d 64 | .OTDA().....#.init.class\nda_emd |
27a0 | 2e 66 69 74 28 78 73 2c 78 74 29 20 20 20 20 20 20 20 23 20 66 69 74 20 64 69 73 74 72 69 62 75 | .fit(xs,xt).......#.fit.distribu |
27c0 | 74 69 6f 6e 73 5c 6e 78 73 74 30 3d 64 61 5f 65 6d 64 2e 69 6e 74 65 72 70 28 29 20 20 20 20 23 | tions\nxst0=da_emd.interp()....# |
27e0 | 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 6f 66 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 | .interpolation.of.source.samples |
2800 | 5c 6e 5c 6e 5c 6e 23 20 73 69 6e 6b 68 6f 72 6e 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c | \n\n\n#.sinkhorn.regularization\ |
2820 | 6e 6c 61 6d 62 64 3d 31 65 2d 31 5c 6e 64 61 5f 65 6e 74 72 6f 70 3d 6f 74 2e 64 61 2e 4f 54 44 | nlambd=1e-1\nda_entrop=ot.da.OTD |
2840 | 41 5f 73 69 6e 6b 68 6f 72 6e 28 29 5c 6e 64 61 5f 65 6e 74 72 6f 70 2e 66 69 74 28 78 73 2c 78 | A_sinkhorn()\nda_entrop.fit(xs,x |
2860 | 74 2c 72 65 67 3d 6c 61 6d 62 64 29 5c 6e 78 73 74 73 3d 64 61 5f 65 6e 74 72 6f 70 2e 69 6e 74 | t,reg=lambd)\nxsts=da_entrop.int |
2880 | 65 72 70 28 29 5c 6e 5c 6e 23 20 6e 6f 6e 2d 63 6f 6e 76 65 78 20 47 72 6f 75 70 20 6c 61 73 73 | erp()\n\n#.non-convex.Group.lass |
28a0 | 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 72 65 67 3d 31 65 2d 31 5c 6e 65 74 61 3d | o.regularization\nreg=1e-1\neta= |
28c0 | 31 65 30 5c 6e 64 61 5f 6c 70 6c 31 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6c 70 6c 31 28 29 5c 6e | 1e0\nda_lpl1=ot.da.OTDA_lpl1()\n |
28e0 | 64 61 5f 6c 70 6c 31 2e 66 69 74 28 78 73 2c 79 73 2c 78 74 2c 72 65 67 3d 72 65 67 2c 65 74 61 | da_lpl1.fit(xs,ys,xt,reg=reg,eta |
2900 | 3d 65 74 61 29 5c 6e 78 73 74 67 3d 64 61 5f 6c 70 6c 31 2e 69 6e 74 65 72 70 28 29 5c 6e 5c 6e | =eta)\nxstg=da_lpl1.interp()\n\n |
2920 | 5c 6e 23 20 54 72 75 65 20 47 72 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 | \n#.True.Group.lasso.regularizat |
2940 | 69 6f 6e 5c 6e 72 65 67 3d 31 65 2d 31 5c 6e 65 74 61 3d 32 65 30 5c 6e 64 61 5f 6c 31 6c 32 3d | ion\nreg=1e-1\neta=2e0\nda_l1l2= |
2960 | 6f 74 2e 64 61 2e 4f 54 44 41 5f 6c 31 6c 32 28 29 5c 6e 64 61 5f 6c 31 6c 32 2e 66 69 74 28 78 | ot.da.OTDA_l1l2()\nda_l1l2.fit(x |
2980 | 73 2c 79 73 2c 78 74 2c 72 65 67 3d 72 65 67 2c 65 74 61 3d 65 74 61 2c 6e 75 6d 49 74 65 72 6d | s,ys,xt,reg=reg,eta=eta,numIterm |
29a0 | 61 78 3d 32 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 78 73 74 67 6c 3d 64 61 5f 6c 31 | ax=20,verbose=True)\nxstgl=da_l1 |
29c0 | 6c 32 2e 69 6e 74 65 72 70 28 29 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 69 6e 74 65 72 70 | l2.interp()\n\n\n#%%.plot.interp |
29e0 | 6f 6c 61 74 65 64 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 | olated.source.samples\npl.figure |
2a00 | 28 34 2c 28 31 35 2c 38 29 29 5c 6e 5c 6e 70 61 72 61 6d 5f 69 6d 67 3d 7b 27 69 6e 74 65 72 70 | (4,(15,8))\n\nparam_img={'interp |
2a20 | 6f 6c 61 74 69 6f 6e 27 3a 27 6e 65 61 72 65 73 74 27 2c 27 63 6d 61 70 27 3a 27 6a 65 74 27 7d | olation':'nearest','cmap':'jet'} |
2a40 | 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 | \n\npl.subplot(2,4,1)\npl.imshow |
2a60 | 28 64 61 5f 65 6d 64 2e 47 2c 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 74 69 74 6c 65 | (da_emd.G,**param_img)\npl.title |
2a80 | 28 27 4f 54 20 6d 61 74 72 69 78 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c | ('OT.matrix')\n\n\npl.subplot(2, |
2aa0 | 34 2c 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 65 6e 74 72 6f 70 2e 47 2c 2a 2a 70 61 | 4,2)\npl.imshow(da_entrop.G,**pa |
2ac0 | 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 73 69 | ram_img)\npl.title('OT.matrix.si |
2ae0 | 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 33 29 5c 6e 70 | nkhorn')\n\npl.subplot(2,4,3)\np |
2b00 | 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 6c 70 6c 31 2e 47 2c 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c | l.imshow(da_lpl1.G,**param_img)\ |
2b20 | 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 6e 6f 6e 2d 63 6f 6e 76 65 78 20 | npl.title('OT.matrix.non-convex. |
2b40 | 47 72 6f 75 70 20 4c 61 73 73 6f 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c | Group.Lasso')\n\npl.subplot(2,4, |
2b60 | 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 6c 31 6c 32 2e 47 2c 2a 2a 70 61 72 61 6d 5f | 4)\npl.imshow(da_l1l2.G,**param_ |
2b80 | 69 6d 67 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 72 6f 75 70 20 | img)\npl.title('OT.matrix.Group. |
2ba0 | 4c 61 73 73 6f 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 35 29 5c 6e | Lasso')\n\n\npl.subplot(2,4,5)\n |
2bc0 | 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c | pl.scatter(xt[:,0],xt[:,1],c=yt, |
2be0 | 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 | marker='o',label='Target.samples |
2c00 | 27 2c 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 30 5b 3a 2c | ',alpha=0.3)\npl.scatter(xst0[:, |
2c20 | 30 5d 2c 78 73 74 30 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 | 0],xst0[:,1],c=ys,marker='+',lab |
2c40 | 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 | el='Transp.samples',s=30)\npl.ti |
2c60 | 74 6c 65 28 27 49 6e 74 65 72 70 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 | tle('Interp.samples')\npl.legend |
2c80 | 28 6c 6f 63 3d 30 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 36 29 5c 6e 70 6c | (loc=0)\n\npl.subplot(2,4,6)\npl |
2ca0 | 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 | .scatter(xt[:,0],xt[:,1],c=yt,ma |
2cc0 | 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c | rker='o',label='Target.samples', |
2ce0 | 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 73 5b 3a 2c 30 5d | alpha=0.3)\npl.scatter(xsts[:,0] |
2d00 | 2c 78 73 74 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c | ,xsts[:,1],c=ys,marker='+',label |
2d20 | 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c | ='Transp.samples',s=30)\npl.titl |
2d40 | 65 28 27 49 6e 74 65 72 70 20 73 61 6d 70 6c 65 73 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e | e('Interp.samples.Sinkhorn')\n\n |
2d60 | 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 37 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 | pl.subplot(2,4,7)\npl.scatter(xt |
2d80 | 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 | [:,0],xt[:,1],c=yt,marker='o',la |
2da0 | 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 33 29 5c | bel='Target.samples',alpha=0.3)\ |
2dc0 | 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 67 5b 3a 2c 30 5d 2c 78 73 74 67 5b 3a 2c 31 5d 2c | npl.scatter(xstg[:,0],xstg[:,1], |
2de0 | 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 | c=ys,marker='+',label='Transp.sa |
2e00 | 6d 70 6c 65 73 27 2c 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6e 74 65 72 70 20 73 | mples',s=30)\npl.title('Interp.s |
2e20 | 61 6d 70 6c 65 73 20 6e 6f 6e 2d 63 6f 6e 76 65 78 20 47 72 6f 75 70 20 4c 61 73 73 6f 27 29 5c | amples.non-convex.Group.Lasso')\ |
2e40 | 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 38 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 | n\npl.subplot(2,4,8)\npl.scatter |
2e60 | 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 | (xt[:,0],xt[:,1],c=yt,marker='o' |
2e80 | 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e | ,label='Target.samples',alpha=0. |
2ea0 | 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 67 6c 5b 3a 2c 30 5d 2c 78 73 74 67 6c 5b | 3)\npl.scatter(xstgl[:,0],xstgl[ |
2ec0 | 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 54 72 61 6e | :,1],c=ys,marker='+',label='Tran |
2ee0 | 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6e 74 | sp.samples',s=30)\npl.title('Int |
2f00 | 65 72 70 20 73 61 6d 70 6c 65 73 20 47 72 6f 75 70 20 4c 61 73 73 6f 27 29 22 0a 20 20 20 20 20 | erp.samples.Group.Lasso')"...... |
2f20 | 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":.[],....... |
2f40 | 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 |
2f60 | 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 2c 20 0a 20 20 | d":.false.......}.....}...],.... |
2f80 | 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 3a 20 | "metadata":.{....."kernelspec":. |
2fa0 | 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 6e 20 | {......."display_name":."Python. |
2fc0 | 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 22 2c 20 0a 20 | 2",........"name":."python2",... |
2fe0 | 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 20 20 20 7d 2c | ....."language":."python".....}, |
3000 | 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 20 20 20 20 22 | ......"language_info":.{......." |
3020 | 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 20 0a 20 20 20 | mimetype":."text/x-python",..... |
3040 | 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 6f 6e | ..."nbconvert_exporter":."python |
3060 | 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 20 0a 20 20 20 | ",........"name":."python",..... |
3080 | 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 20 0a 20 20 20 | ..."file_extension":.".py",..... |
30a0 | 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 20 20 20 20 22 | ..."version":."2.7.12",........" |
30c0 | 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 2c 20 0a 20 20 | pygments_lexer":."ipython2",.... |
30e0 | 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 20 20 20 | ...."codemirror_mode":.{........ |
3100 | 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 6d 65 22 3a 20 | ."version":.2,.........."name":. |
3120 | 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 0a 7d 50 4b 03 | "ipython".......}.....}...}.}PK. |
3140 | 04 14 00 00 00 00 00 b5 82 e3 4a 21 2e ce 60 70 07 00 00 70 07 00 00 1e 00 00 00 61 75 74 6f 5f | ..........J!..`p...p.......auto_ |
3160 | 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 31 44 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 | examples/plot_OT_1D.ipynb{..."nb |
3180 | 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 74 22 3a | format_minor":.0,...."nbformat": |
31a0 | 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 20 22 65 | .4,...."cells":.[.....{......."e |
31c0 | 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 20 22 63 | xecution_count":.null,........"c |
31e0 | 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 75 72 63 | ell_type":."code",........"sourc |
3200 | 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 6e | e":.[........."%matplotlib.inlin |
3220 | 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 20 5b 5d | e".......],........"outputs":.[] |
3240 | 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 20 22 | ,........"metadata":.{........." |
3260 | 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 7d 2c | collapsed":.false.......}.....}, |
3280 | 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 20 20 | ......{......."source":.[....... |
32a0 | 20 20 22 5c 6e 23 20 31 44 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 5c 6e 5c | .."\n#.1D.optimal.transport\n\n\ |
32c0 | 6e 40 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c | n@author:.rflamary\n\n".......], |
32e0 | 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 2c | ........"cell_type":."markdown", |
3300 | 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 20 | ........"metadata":.{}.....},... |
3320 | 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 75 | ...{......."execution_count":.nu |
3340 | 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 20 | ll,........"cell_type":."code",. |
3360 | 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 69 6d 70 6f | ......."source":.[........."impo |
3380 | 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 |
33a0 | 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 66 72 6f 6d 20 6f | b.pylab.as.pl\nimport.ot\nfrom.o |
33c0 | 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 67 65 74 5f 31 44 5f 67 61 75 73 73 20 61 | t.datasets.import.get_1D_gauss.a |
33e0 | 73 20 67 61 75 73 73 5c 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e | s.gauss\n\n\n#%%.parameters\n\nn |
3400 | 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e | =100.#.nb.bins\n\n#.bin.position |
3420 | 73 5c 6e 78 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 | s\nx=np.arange(n,dtype=np.float6 |
3440 | 34 29 5c 6e 5c 6e 23 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 | 4)\n\n#.Gaussian.distributions\n |
3460 | 61 3d 67 61 75 73 73 28 6e 2c 6d 3d 32 30 2c 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 | a=gauss(n,m=20,s=5).#.m=.mean,.s |
3480 | 3d 20 73 74 64 5c 6e 62 3d 67 61 75 73 73 28 6e 2c 6d 3d 36 30 2c 73 3d 31 30 29 5c 6e 5c 6e 23 | =.std\nb=gauss(n,m=60,s=10)\n\n# |
34a0 | 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 3d 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 | .loss.matrix\nM=ot.dist(x.reshap |
34c0 | 65 28 28 6e 2c 31 29 29 2c 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 29 5c 6e 4d 2f 3d 4d | e((n,1)),x.reshape((n,1)))\nM/=M |
34e0 | 2e 6d 61 78 28 29 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 | .max()\n\n#%%.plot.the.distribut |
3500 | 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c | ions\n\npl.figure(1)\npl.plot(x, |
3520 | 61 2c 27 62 27 2c 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 | a,'b',label='Source.distribution |
3540 | 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 62 2c 27 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 | ')\npl.plot(x,b,'r',label='Targe |
3560 | 74 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 | t.distribution')\npl.legend()\n\ |
3580 | 6e 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 | n#%%.plot.distributions.and.loss |
35a0 | 20 6d 61 74 72 69 78 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 6f 74 2e 70 6c 6f 74 | .matrix\n\npl.figure(2)\not.plot |
35c0 | 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 4d 2c 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d | .plot1D_mat(a,b,M,'Cost.matrix.M |
35e0 | 27 29 5c 6e 5c 6e 23 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d | ')\n\n#%%.EMD\n\nG0=ot.emd(a,b,M |
3600 | 29 5c 6e 5c 6e 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 | )\n\npl.figure(3)\not.plot.plot1 |
3620 | 44 5f 6d 61 74 28 61 2c 62 2c 47 30 2c 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 5c 6e 5c 6e | D_mat(a,b,G0,'OT.matrix.G0')\n\n |
3640 | 23 25 25 20 53 69 6e 6b 68 6f 72 6e 5c 6e 5c 6e 6c 61 6d 62 64 3d 31 65 2d 33 5c 6e 47 73 3d 6f | #%%.Sinkhorn\n\nlambd=1e-3\nGs=o |
3660 | 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 2c 76 65 72 62 6f 73 65 3d 54 | t.sinkhorn(a,b,M,lambd,verbose=T |
3680 | 72 75 65 29 5c 6e 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 | rue)\n\npl.figure(4)\not.plot.pl |
36a0 | 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 73 2c 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 | ot1D_mat(a,b,Gs,'OT.matrix.Sinkh |
36c0 | 6f 72 6e 27 29 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 | orn')".......],........"outputs" |
36e0 | 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 0a 20 20 20 20 20 | :.[],........"metadata":.{...... |
3700 | 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 0a 20 20 | ..."collapsed":.false.......}... |
3720 | 20 20 7d 0a 20 20 5d 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 | ..}...],...."metadata":.{....."k |
3740 | 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 |
3760 | 65 22 3a 20 22 50 79 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 | e":."Python.2",........"name":." |
3780 | 70 79 74 68 6f 6e 32 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 | python2",........"language":."py |
37a0 | 74 68 6f 6e 22 0a 20 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 | thon".....},......"language_info |
37c0 | 22 3a 20 7b 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 | ":.{......."mimetype":."text/x-p |
37e0 | 79 74 68 6f 6e 22 2c 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 | ython",........"nbconvert_export |
3800 | 65 72 22 3a 20 22 70 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 | er":."python",........"name":."p |
3820 | 79 74 68 6f 6e 22 2c 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 | ython",........"file_extension": |
3840 | 20 22 2e 70 79 22 2c 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 | .".py",........"version":."2.7.1 |
3860 | 32 22 2c 20 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 | 2",........"pygments_lexer":."ip |
3880 | 79 74 68 6f 6e 32 22 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 | ython2",........"codemirror_mode |
38a0 | 22 3a 20 7b 0a 20 20 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 | ":.{........."version":.2,...... |
38c0 | 20 20 20 20 22 6e 61 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 | ...."name":."ipython".......}... |
38e0 | 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 32 82 e3 4a 48 a2 ab 22 f5 14 00 00 f5 | ..}...}.}PK........2..JH.."..... |
3900 | 14 00 00 20 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 63 6f 6e | .......auto_examples/plot_OT_con |
3920 | 76 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 2c 20 | v.ipynb{..."nbformat_minor":.0,. |
3940 | 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a | ..."nbformat":.4,...."cells":.[. |
3960 | 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 |
3980 | 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", |
39a0 | 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 25 6d 61 | ........"source":.[........."%ma |
39c0 | 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 | tplotlib.inline".......],....... |
39e0 | 20 22 6f 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 | ."outputs":.[],........"metadata |
3a00 | 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. |
3a20 | 20 20 20 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 | ......}.....},......{......."sou |
3a40 | 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 57 61 73 73 65 72 73 74 | rce":.[........."\n#.1D.Wasserst |
3a60 | 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 20 64 65 6d 6f 5c 6e 5c 6e 5c 6e 5c 6e 40 61 75 74 68 | ein.barycenter.demo\n\n\n\n@auth |
3a80 | 6f 72 3a 20 72 66 6c 61 6d 61 72 79 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 | or:.rflamary\n\n".......],...... |
3aa0 | 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 20 20 20 | .."cell_type":."markdown",...... |
3ac0 | 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 7b 0a 20 | .."metadata":.{}.....},......{.. |
3ae0 | 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 20 0a 20 | ....."execution_count":.null,... |
3b00 | 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 20 20 20 | ....."cell_type":."code",....... |
3b20 | 20 22 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 | ."source":.[........."import.num |
3b40 | 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 |
3b60 | 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f | b.as.pl\nimport.ot\nfrom.mpl_too |
3b80 | 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d 70 6f 72 74 20 41 78 65 73 33 44 20 23 6e 65 63 | lkits.mplot3d.import.Axes3D.#nec |
3ba0 | 65 73 73 61 72 79 20 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 | essary.for.3d.plot.even.if.not.u |
3bc0 | 73 65 64 5c 6e 69 6d 70 6f 72 74 20 73 63 69 70 79 20 61 73 20 73 70 5c 6e 69 6d 70 6f 72 74 20 | sed\nimport.scipy.as.sp\nimport. |
3be0 | 73 63 69 70 79 2e 73 69 67 6e 61 6c 20 61 73 20 73 70 73 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 | scipy.signal.as.sps\n#%%.paramet |
3c00 | 65 72 73 5c 6e 5c 6e 6e 3d 31 30 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 | ers\n\nn=10.#.nb.bins\n\n#.bin.p |
3c20 | 6f 73 69 74 69 6f 6e 73 5c 6e 78 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e 70 | ositions\nx=np.arange(n,dtype=np |
3c40 | 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 78 78 2c 79 79 3d 6e 70 2e 6d 65 73 68 67 72 69 64 28 78 | .float64)\n\nxx,yy=np.meshgrid(x |
3c60 | 2c 78 29 5c 6e 5c 6e 5c 6e 78 70 6f 73 3d 6e 70 2e 68 73 74 61 63 6b 28 28 78 78 2e 72 65 73 68 | ,x)\n\n\nxpos=np.hstack((xx.resh |
3c80 | 61 70 65 28 2d 31 2c 31 29 2c 79 79 2e 72 65 73 68 61 70 65 28 2d 31 2c 31 29 29 29 5c 6e 5c 6e | ape(-1,1),yy.reshape(-1,1)))\n\n |
3ca0 | 4d 3d 6f 74 2e 64 69 73 74 28 78 70 6f 73 29 5c 6e 5c 6e 5c 6e 49 30 3d 28 28 78 78 2d 35 29 2a | M=ot.dist(xpos)\n\n\nI0=((xx-5)* |
3cc0 | 2a 32 2b 28 79 79 2d 35 29 2a 2a 32 3c 33 2a 2a 32 29 2a 31 2e 30 5c 6e 49 31 3d 28 28 78 78 2d | *2+(yy-5)**2<3**2)*1.0\nI1=((xx- |
3ce0 | 37 29 2a 2a 32 2b 28 79 79 2d 37 29 2a 2a 32 3c 33 2a 2a 32 29 2a 31 2e 30 5c 6e 5c 6e 49 30 2f | 7)**2+(yy-7)**2<3**2)*1.0\n\nI0/ |
3d00 | 3d 49 30 2e 73 75 6d 28 29 5c 6e 49 31 2f 3d 49 31 2e 73 75 6d 28 29 5c 6e 5c 6e 69 30 3d 49 30 | =I0.sum()\nI1/=I1.sum()\n\ni0=I0 |
3d20 | 2e 72 61 76 65 6c 28 29 5c 6e 69 31 3d 49 31 2e 72 61 76 65 6c 28 29 5c 6e 5c 6e 4d 3d 4d 5b 69 | .ravel()\ni1=I1.ravel()\n\nM=M[i |
3d40 | 30 3e 30 2c 3a 5d 5b 3a 2c 69 31 3e 30 5d 2e 63 6f 70 79 28 29 5c 6e 69 30 3d 69 30 5b 69 30 3e | 0>0,:][:,i1>0].copy()\ni0=i0[i0> |
3d60 | 30 5d 5c 6e 69 31 3d 69 31 5b 69 31 3e 30 5d 5c 6e 49 74 6f 74 3d 6e 70 2e 63 6f 6e 63 61 74 65 | 0]\ni1=i1[i1>0]\nItot=np.concate |
3d80 | 6e 61 74 65 28 28 49 30 5b 3a 2c 3a 2c 6e 70 2e 6e 65 77 61 78 69 73 5d 2c 49 31 5b 3a 2c 3a 2c | nate((I0[:,:,np.newaxis],I1[:,:, |
3da0 | 6e 70 2e 6e 65 77 61 78 69 73 5d 29 2c 32 29 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 74 68 | np.newaxis]),2)\n\n\n#%%.plot.th |
3dc0 | 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 29 5c | e.distributions\n\npl.figure(1)\ |
3de0 | 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 30 | npl.subplot(2,2,1)\npl.imshow(I0 |
3e00 | 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 | )\npl.subplot(2,2,2)\npl.imshow( |
3e20 | 49 31 29 5c 6e 5c 6e 5c 6e 23 25 25 20 62 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 | I1)\n\n\n#%%.barycenter.computat |
3e40 | 69 6f 6e 5c 6e 5c 6e 61 6c 70 68 61 3d 30 2e 35 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e | ion\n\nalpha=0.5.#.0<=alpha<=1\n |
3e60 | 77 65 69 67 68 74 73 3d 6e 70 2e 61 72 72 61 79 28 5b 31 2d 61 6c 70 68 61 2c 61 6c 70 68 61 5d | weights=np.array([1-alpha,alpha] |
3e80 | 29 5c 6e 5c 6e 5c 6e 64 65 66 20 63 6f 6e 76 32 28 49 2c 6b 29 3a 5c 6e 20 20 20 20 72 65 74 75 | )\n\n\ndef.conv2(I,k):\n....retu |
3ea0 | 72 6e 20 73 70 2e 6e 64 69 6d 61 67 65 2e 63 6f 6e 76 6f 6c 76 65 31 64 28 73 70 2e 6e 64 69 6d | rn.sp.ndimage.convolve1d(sp.ndim |
3ec0 | 61 67 65 2e 63 6f 6e 76 6f 6c 76 65 31 64 28 49 2c 6b 2c 61 78 69 73 3d 31 29 2c 6b 2c 61 78 69 | age.convolve1d(I,k,axis=1),k,axi |
3ee0 | 73 3d 30 29 5c 6e 5c 6e 64 65 66 20 63 6f 6e 76 32 6e 28 49 2c 6b 29 3a 5c 6e 20 20 20 20 72 65 | s=0)\n\ndef.conv2n(I,k):\n....re |
3f00 | 73 3d 6e 70 2e 7a 65 72 6f 73 5f 6c 69 6b 65 28 49 29 5c 6e 20 20 20 20 66 6f 72 20 69 20 69 6e | s=np.zeros_like(I)\n....for.i.in |
3f20 | 20 72 61 6e 67 65 28 49 2e 73 68 61 70 65 5b 32 5d 29 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 73 | .range(I.shape[2]):\n........res |
3f40 | 5b 3a 2c 3a 2c 69 5d 3d 63 6f 6e 76 32 28 49 5b 3a 2c 3a 2c 69 5d 2c 6b 29 5c 6e 20 20 20 20 72 | [:,:,i]=conv2(I[:,:,i],k)\n....r |
3f60 | 65 74 75 72 6e 20 72 65 73 5c 6e 5c 6e 5c 6e 64 65 66 20 67 65 74 5f 31 44 6b 65 72 6e 65 6c 28 | eturn.res\n\n\ndef.get_1Dkernel( |
3f80 | 72 65 67 2c 74 68 72 3d 31 65 2d 31 36 2c 77 6d 61 78 3d 31 30 32 34 29 3a 5c 6e 20 20 20 20 77 | reg,thr=1e-16,wmax=1024):\n....w |
3fa0 | 3d 6d 61 78 28 6d 69 6e 28 77 6d 61 78 2c 32 2a 69 6e 74 28 28 2d 6e 70 2e 6c 6f 67 28 74 68 72 | =max(min(wmax,2*int((-np.log(thr |
3fc0 | 29 2a 72 65 67 29 2a 2a 28 2e 35 29 29 29 2c 33 29 5c 6e 20 20 20 20 78 3d 6e 70 2e 61 72 61 6e | )*reg)**(.5))),3)\n....x=np.aran |
3fe0 | 67 65 28 77 2c 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 20 20 20 20 72 65 74 75 | ge(w,dtype=np.float64)\n....retu |
4000 | 72 6e 20 6e 70 2e 65 78 70 28 2d 28 28 78 2d 77 2f 32 29 2a 2a 32 29 2f 72 65 67 29 5c 6e 20 20 | rn.np.exp(-((x-w/2)**2)/reg)\n.. |
4020 | 20 20 5c 6e 74 68 72 3d 31 65 2d 31 36 5c 6e 72 65 67 3d 31 65 30 5c 6e 5c 6e 6b 3d 67 65 74 5f | ..\nthr=1e-16\nreg=1e0\n\nk=get_ |
4040 | 31 44 6b 65 72 6e 65 6c 28 72 65 67 29 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e | 1Dkernel(reg)\npl.figure(2)\npl. |
4060 | 70 6c 6f 74 28 6b 29 5c 6e 5c 6e 49 30 35 3d 63 6f 6e 76 32 28 49 30 2c 6b 29 5c 6e 5c 6e 70 6c | plot(k)\n\nI05=conv2(I0,k)\n\npl |
4080 | 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 5c 6e 70 | .figure(1)\npl.subplot(2,2,1)\np |
40a0 | 6c 2e 69 6d 73 68 6f 77 28 49 30 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 32 29 5c | l.imshow(I0)\npl.subplot(2,2,2)\ |
40c0 | 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 30 35 29 5c 6e 5c 6e 23 25 25 5c 6e 5c 6e 47 3d 6f 74 2e 65 | npl.imshow(I05)\n\n#%%\n\nG=ot.e |
40e0 | 6d 64 28 69 30 2c 69 31 2c 4d 29 5c 6e 72 30 3d 6e 70 2e 73 75 6d 28 4d 2a 47 29 5c 6e 5c 6e 72 | md(i0,i1,M)\nr0=np.sum(M*G)\n\nr |
4100 | 65 67 3d 31 65 2d 31 5c 6e 47 73 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 6f 72 6e 5f | eg=1e-1\nGs=ot.bregman.sinkhorn_ |
4120 | 6b 6e 6f 70 70 28 69 30 2c 69 31 2c 4d 2c 72 65 67 3d 72 65 67 29 5c 6e 72 73 3d 6e 70 2e 73 75 | knopp(i0,i1,M,reg=reg)\nrs=np.su |
4140 | 6d 28 4d 2a 47 73 29 5c 6e 5c 6e 23 25 25 5c 6e 5c 6e 64 65 66 20 6d 79 6c 6f 67 28 75 29 3a 5c | m(M*Gs)\n\n#%%\n\ndef.mylog(u):\ |
4160 | 6e 20 20 20 20 74 6d 70 3d 6e 70 2e 6c 6f 67 28 75 29 5c 6e 20 20 20 20 74 6d 70 5b 6e 70 2e 69 | n....tmp=np.log(u)\n....tmp[np.i |
4180 | 73 6e 61 6e 28 74 6d 70 29 5d 3d 30 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 74 6d 70 5c 6e 5c 6e | snan(tmp)]=0\n....return.tmp\n\n |
41a0 | 64 65 66 20 73 69 6e 6b 68 6f 72 6e 5f 63 6f 6e 76 28 61 2c 62 2c 20 72 65 67 2c 20 6e 75 6d 49 | def.sinkhorn_conv(a,b,.reg,.numI |
41c0 | 74 65 72 6d 61 78 20 3d 20 31 30 30 30 2c 20 73 74 6f 70 54 68 72 3d 31 65 2d 39 2c 20 76 65 72 | termax.=.1000,.stopThr=1e-9,.ver |
41e0 | 62 6f 73 65 3d 46 61 6c 73 65 2c 20 6c 6f 67 3d 46 61 6c 73 65 2c 2a 2a 6b 77 61 72 67 73 29 3a | bose=False,.log=False,**kwargs): |
4200 | 5c 6e 5c 6e 5c 6e 20 20 20 20 61 3d 6e 70 2e 61 73 61 72 72 61 79 28 61 2c 64 74 79 70 65 3d 6e | \n\n\n....a=np.asarray(a,dtype=n |
4220 | 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 20 20 20 20 62 3d 6e 70 2e 61 73 61 72 72 61 79 28 62 2c 64 | p.float64)\n....b=np.asarray(b,d |
4240 | 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 | type=np.float64)\n........\n.... |
4260 | 5c 6e 20 20 20 20 69 66 20 6c 65 6e 28 62 2e 73 68 61 70 65 29 3e 32 3a 5c 6e 20 20 20 20 20 20 | \n....if.len(b.shape)>2:\n...... |
4280 | 20 20 6e 62 62 3d 62 2e 73 68 61 70 65 5b 32 5d 5c 6e 20 20 20 20 20 20 20 20 61 3d 61 5b 3a 2c | ..nbb=b.shape[2]\n........a=a[:, |
42a0 | 3a 2c 6e 70 2e 6e 65 77 61 78 69 73 5d 5c 6e 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 | :,np.newaxis]\n....else:\n...... |
42c0 | 20 20 6e 62 62 3d 30 5c 6e 20 20 20 20 5c 6e 5c 6e 20 20 20 20 69 66 20 6c 6f 67 3a 5c 6e 20 20 | ..nbb=0\n....\n\n....if.log:\n.. |
42e0 | 20 20 20 20 20 20 6c 6f 67 3d 7b 27 65 72 72 27 3a 5b 5d 7d 5c 6e 5c 6e 20 20 20 20 23 20 77 65 | ......log={'err':[]}\n\n....#.we |
4300 | 20 61 73 73 75 6d 65 20 74 68 61 74 20 6e 6f 20 64 69 73 74 61 6e 63 65 73 20 61 72 65 20 6e 75 | .assume.that.no.distances.are.nu |
4320 | 6c 6c 20 65 78 63 65 70 74 20 74 68 6f 73 65 20 6f 66 20 74 68 65 20 64 69 61 67 6f 6e 61 6c 20 | ll.except.those.of.the.diagonal. |
4340 | 6f 66 20 64 69 73 74 61 6e 63 65 73 5c 6e 20 20 20 20 69 66 20 6e 62 62 3a 5c 6e 20 20 20 20 20 | of.distances\n....if.nbb:\n..... |
4360 | 20 20 20 75 20 3d 20 6e 70 2e 6f 6e 65 73 28 28 61 2e 73 68 61 70 65 5b 30 5d 2c 61 2e 73 68 61 | ...u.=.np.ones((a.shape[0],a.sha |
4380 | 70 65 5b 31 5d 2c 6e 62 62 29 29 2f 28 6e 70 2e 70 72 6f 64 28 61 2e 73 68 61 70 65 5b 3a 32 5d | pe[1],nbb))/(np.prod(a.shape[:2] |
43a0 | 29 29 5c 6e 20 20 20 20 20 20 20 20 76 20 3d 20 6e 70 2e 6f 6e 65 73 28 28 61 2e 73 68 61 70 65 | ))\n........v.=.np.ones((a.shape |
43c0 | 5b 30 5d 2c 61 2e 73 68 61 70 65 5b 31 5d 2c 6e 62 62 29 29 2f 28 6e 70 2e 70 72 6f 64 28 62 2e | [0],a.shape[1],nbb))/(np.prod(b. |
43e0 | 73 68 61 70 65 5b 3a 32 5d 29 29 5c 6e 20 20 20 20 20 20 20 20 61 30 3d 31 2e 30 2f 28 6e 70 2e | shape[:2]))\n........a0=1.0/(np. |
4400 | 70 72 6f 64 28 62 2e 73 68 61 70 65 5b 3a 32 5d 29 29 5c 6e 20 20 20 20 65 6c 73 65 3a 5c 6e 20 | prod(b.shape[:2]))\n....else:\n. |
4420 | 20 20 20 20 20 20 20 75 20 3d 20 6e 70 2e 6f 6e 65 73 28 28 61 2e 73 68 61 70 65 5b 30 5d 2c 61 | .......u.=.np.ones((a.shape[0],a |
4440 | 2e 73 68 61 70 65 5b 31 5d 29 29 2f 28 6e 70 2e 70 72 6f 64 28 61 2e 73 68 61 70 65 5b 3a 32 5d | .shape[1]))/(np.prod(a.shape[:2] |
4460 | 29 29 5c 6e 20 20 20 20 20 20 20 20 76 20 3d 20 6e 70 2e 6f 6e 65 73 28 28 61 2e 73 68 61 70 65 | ))\n........v.=.np.ones((a.shape |
4480 | 5b 30 5d 2c 61 2e 73 68 61 70 65 5b 31 5d 29 29 2f 28 6e 70 2e 70 72 6f 64 28 62 2e 73 68 61 70 | [0],a.shape[1]))/(np.prod(b.shap |
44a0 | 65 5b 3a 32 5d 29 29 5c 6e 20 20 20 20 20 20 20 20 61 30 3d 31 2e 30 2f 28 6e 70 2e 70 72 6f 64 | e[:2]))\n........a0=1.0/(np.prod |
44c0 | 28 62 2e 73 68 61 70 65 5b 3a 32 5d 29 29 5c 6e 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 20 20 | (b.shape[:2]))\n........\n...... |
44e0 | 20 20 5c 6e 20 20 20 20 6b 3d 67 65 74 5f 31 44 6b 65 72 6e 65 6c 28 72 65 67 29 5c 6e 20 20 20 | ..\n....k=get_1Dkernel(reg)\n... |
4500 | 20 5c 6e 20 20 20 20 69 66 20 6e 62 62 3a 5c 6e 20 20 20 20 20 20 20 20 4b 3d 6c 61 6d 62 64 61 | .\n....if.nbb:\n........K=lambda |
4520 | 20 49 3a 20 63 6f 6e 76 32 6e 28 49 2c 6b 29 5c 6e 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 | .I:.conv2n(I,k)\n....else:\n.... |
4540 | 20 20 20 20 4b 3d 6c 61 6d 62 64 61 20 49 3a 20 63 6f 6e 76 32 28 49 2c 6b 29 5c 6e 5c 6e 20 20 | ....K=lambda.I:.conv2(I,k)\n\n.. |
4560 | 20 20 63 70 74 20 3d 20 30 5c 6e 20 20 20 20 65 72 72 3d 31 5c 6e 20 20 20 20 77 68 69 6c 65 20 | ..cpt.=.0\n....err=1\n....while. |
4580 | 28 65 72 72 3e 73 74 6f 70 54 68 72 20 61 6e 64 20 63 70 74 3c 6e 75 6d 49 74 65 72 6d 61 78 29 | (err>stopThr.and.cpt<numItermax) |
45a0 | 3a 5c 6e 20 20 20 20 20 20 20 20 75 70 72 65 76 20 3d 20 75 5c 6e 20 20 20 20 20 20 20 20 76 70 | :\n........uprev.=.u\n........vp |
45c0 | 72 65 76 20 3d 20 76 5c 6e 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 20 20 20 20 76 20 3d 20 6e | rev.=.v\n........\n........v.=.n |
45e0 | 70 2e 64 69 76 69 64 65 28 62 2c 20 4b 28 75 29 29 5c 6e 20 20 20 20 20 20 20 20 75 20 3d 20 6e | p.divide(b,.K(u))\n........u.=.n |
4600 | 70 2e 64 69 76 69 64 65 28 61 2c 20 4b 28 76 29 29 5c 6e 5c 6e 20 20 20 20 20 20 20 20 69 66 20 | p.divide(a,.K(v))\n\n........if. |
4620 | 28 6e 70 2e 61 6e 79 28 6e 70 2e 69 73 6e 61 6e 28 75 29 29 20 6f 72 20 6e 70 2e 61 6e 79 28 6e | (np.any(np.isnan(u)).or.np.any(n |
4640 | 70 2e 69 73 6e 61 6e 28 76 29 29 20 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 6e 70 2e | p.isnan(v)).\n............or.np. |
4660 | 61 6e 79 28 6e 70 2e 69 73 69 6e 66 28 75 29 29 20 6f 72 20 6e 70 2e 61 6e 79 28 6e 70 2e 69 73 | any(np.isinf(u)).or.np.any(np.is |
4680 | 69 6e 66 28 76 29 29 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 23 20 77 65 20 68 61 76 65 | inf(v))):\n............#.we.have |
46a0 | 20 72 65 61 63 68 65 64 20 74 68 65 20 6d 61 63 68 69 6e 65 20 70 72 65 63 69 73 69 6f 6e 5c 6e | .reached.the.machine.precision\n |
46c0 | 20 20 20 20 20 20 20 20 20 20 20 20 23 20 63 6f 6d 65 20 62 61 63 6b 20 74 6f 20 70 72 65 76 69 | ............#.come.back.to.previ |
46e0 | 6f 75 73 20 73 6f 6c 75 74 69 6f 6e 20 61 6e 64 20 71 75 69 74 20 6c 6f 6f 70 5c 6e 20 20 20 20 | ous.solution.and.quit.loop\n.... |
4700 | 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 27 57 61 72 6e 69 6e 67 3a 20 6e 75 6d 65 72 69 63 61 | ........print('Warning:.numerica |
4720 | 6c 20 65 72 72 6f 72 73 20 61 74 20 69 74 65 72 61 74 69 6f 6e 27 2c 20 63 70 74 29 5c 6e 20 20 | l.errors.at.iteration',.cpt)\n.. |
4740 | 20 20 20 20 20 20 20 20 20 20 75 20 3d 20 75 70 72 65 76 5c 6e 20 20 20 20 20 20 20 20 20 20 20 | ..........u.=.uprev\n........... |
4760 | 20 76 20 3d 20 76 70 72 65 76 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 5c 6e 20 | .v.=.vprev\n............break\n. |
4780 | 20 20 20 20 20 20 20 69 66 20 63 70 74 25 31 30 3d 3d 30 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 | .......if.cpt%10==0:\n.......... |
47a0 | 20 20 23 20 77 65 20 63 61 6e 20 73 70 65 65 64 20 75 70 20 74 68 65 20 70 72 6f 63 65 73 73 20 | ..#.we.can.speed.up.the.process. |
47c0 | 62 79 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 74 68 65 20 65 72 72 6f 72 20 6f 6e 6c 79 20 61 | by.checking.for.the.error.only.a |
47e0 | 6c 6c 20 74 68 65 20 31 30 74 68 20 69 74 65 72 61 74 69 6f 6e 73 5c 6e 5c 6e 20 20 20 20 20 20 | ll.the.10th.iterations\n\n...... |
4800 | 20 20 20 20 20 20 65 72 72 20 3d 20 6e 70 2e 73 75 6d 28 28 75 2d 75 70 72 65 76 29 2a 2a 32 29 | ......err.=.np.sum((u-uprev)**2) |
4820 | 2f 6e 70 2e 73 75 6d 28 28 75 29 2a 2a 32 29 2b 6e 70 2e 73 75 6d 28 28 76 2d 76 70 72 65 76 29 | /np.sum((u)**2)+np.sum((v-vprev) |
4840 | 2a 2a 32 29 2f 6e 70 2e 73 75 6d 28 28 76 29 2a 2a 32 29 5c 6e 5c 6e 20 20 20 20 20 20 20 20 20 | **2)/np.sum((v)**2)\n\n......... |
4860 | 20 20 20 69 66 20 6c 6f 67 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 5b | ...if.log:\n................log[ |
4880 | 27 65 72 72 27 5d 2e 61 70 70 65 6e 64 28 65 72 72 29 5c 6e 5c 6e 20 20 20 20 20 20 20 20 20 20 | 'err'].append(err)\n\n.......... |
48a0 | 20 20 69 66 20 76 65 72 62 6f 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 | ..if.verbose:\n................i |
48c0 | 66 20 63 70 74 25 32 30 30 20 3d 3d 30 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | f.cpt%200.==0:\n................ |
48e0 | 20 20 20 20 70 72 69 6e 74 28 27 7b 3a 35 73 7d 7c 7b 3a 31 32 73 7d 27 2e 66 6f 72 6d 61 74 28 | ....print('{:5s}|{:12s}'.format( |
4900 | 27 49 74 2e 27 2c 27 45 72 72 27 29 2b 27 5c 5c 6e 27 2b 27 2d 27 2a 31 39 29 5c 6e 20 20 20 20 | 'It.','Err')+'\\n'+'-'*19)\n.... |
4920 | 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 27 7b 3a 35 64 7d 7c 7b 3a 38 65 7d 7c 27 | ............print('{:5d}|{:8e}|' |
4940 | 2e 66 6f 72 6d 61 74 28 63 70 74 2c 65 72 72 29 29 5c 6e 20 20 20 20 20 20 20 20 63 70 74 20 3d | .format(cpt,err))\n........cpt.= |
4960 | 20 63 70 74 20 2b 31 5c 6e 20 20 20 20 69 66 20 6c 6f 67 3a 5c 6e 20 20 20 20 20 20 20 20 6c 6f | .cpt.+1\n....if.log:\n........lo |
4980 | 67 5b 27 75 27 5d 3d 75 5c 6e 20 20 20 20 20 20 20 20 6c 6f 67 5b 27 76 27 5d 3d 76 5c 6e 20 20 | g['u']=u\n........log['v']=v\n.. |
49a0 | 20 20 20 20 20 20 5c 6e 20 20 20 20 69 66 20 6e 62 62 3a 20 23 72 65 74 75 72 6e 20 6f 6e 6c 79 | ......\n....if.nbb:.#return.only |
49c0 | 20 6c 6f 73 73 20 5c 6e 20 20 20 20 20 20 20 20 72 65 73 3d 6e 70 2e 7a 65 72 6f 73 28 28 6e 62 | .loss.\n........res=np.zeros((nb |
49e0 | 62 29 29 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 62 29 | b))\n........for.i.in.range(nbb) |
4a00 | 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 5b 69 5d 3d 6e 70 2e 73 75 6d 28 75 5b 3a | :\n............res[i]=np.sum(u[: |
4a20 | 2c 69 5d 2e 72 65 73 68 61 70 65 28 28 2d 31 2c 31 29 29 2a 4b 2a 76 5b 3a 2c 69 5d 2e 72 65 73 | ,i].reshape((-1,1))*K*v[:,i].res |
4a40 | 68 61 70 65 28 28 31 2c 2d 31 29 29 2a 4d 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6c 6f 67 3a | hape((1,-1))*M)\n........if.log: |
4a60 | 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 2c 6c 6f 67 5c 6e 20 20 | \n............return.res,log\n.. |
4a80 | 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 72 65 74 75 72 6e 20 | ......else:\n............return. |
4aa0 | 72 65 73 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 65 6c 73 65 3a | res........\n........\n....else: |
4ac0 | 20 23 20 72 65 74 75 72 6e 20 4f 54 20 6d 61 74 72 69 78 5c 6e 20 20 20 20 20 20 20 20 72 65 73 | .#.return.OT.matrix\n........res |
4ae0 | 3d 72 65 67 2a 61 30 2a 6e 70 2e 73 75 6d 28 61 2a 6d 79 6c 6f 67 28 75 2b 28 75 3d 3d 30 29 29 | =reg*a0*np.sum(a*mylog(u+(u==0)) |
4b00 | 2b 62 2a 6d 79 6c 6f 67 28 76 2b 28 76 3d 3d 30 29 29 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 | +b*mylog(v+(v==0)))\n........if. |
4b20 | 6c 6f 67 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 | log:\n............\n............ |
4b40 | 72 65 74 75 72 6e 20 72 65 73 2c 6c 6f 67 5c 6e 20 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e 20 | return.res,log\n........else:\n. |
4b60 | 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 5c 6e 5c 6e 72 65 67 3d 31 65 30 | ...........return.res\n\nreg=1e0 |
4b80 | 5c 6e 72 2c 6c 6f 67 3d 73 69 6e 6b 68 6f 72 6e 5f 63 6f 6e 76 28 49 30 2c 49 31 2c 72 65 67 2c | \nr,log=sinkhorn_conv(I0,I1,reg, |
4ba0 | 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 6c 6f 67 3d 54 72 75 65 29 5c 6e 61 3d 49 30 5c 6e 62 3d | verbose=True,log=True)\na=I0\nb= |
4bc0 | 49 31 5c 6e 75 3d 6c 6f 67 5b 27 75 27 5d 5c 6e 76 3d 6c 6f 67 5b 27 76 27 5d 5c 6e 23 25 25 20 | I1\nu=log['u']\nv=log['v']\n#%%. |
4be0 | 62 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 22 0a 20 20 20 20 20 20 | barycenter.interpolation"....... |
4c00 | 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 20 | ],........"outputs":.[],........ |
4c20 | 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 |
4c40 | 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 2c 20 0a 20 20 22 | ":.false.......}.....}...],...." |
4c60 | 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":.{ |
4c80 | 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 32 | ......."display_name":."Python.2 |
4ca0 | 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 22 2c 20 0a 20 20 | ",........"name":."python2",.... |
4cc0 | 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 20 20 20 7d 2c 20 | ...."language":."python".....},. |
4ce0 | 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 6d | ....."language_info":.{......."m |
4d00 | 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 20 0a 20 20 20 20 | imetype":."text/x-python",...... |
4d20 | 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 6f 6e 22 | .."nbconvert_exporter":."python" |
4d40 | 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 20 0a 20 20 20 20 | ,........"name":."python",...... |
4d60 | 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 20 0a 20 20 20 20 | .."file_extension":.".py",...... |
4d80 | 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 20 20 20 20 22 70 | .."version":."2.7.12",........"p |
4da0 | 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 2c 20 0a 20 20 20 | ygments_lexer":."ipython2",..... |
4dc0 | 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":.{......... |
4de0 | 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 6d 65 22 3a 20 22 | "version":.2,.........."name":." |
4e00 | 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 0a 7d 50 4b 03 04 | ipython".......}.....}...}.}PK.. |
4e20 | 14 00 00 00 00 00 ac 7a 82 49 51 3c 40 3f 86 0e 00 00 86 0e 00 00 26 00 00 00 61 75 74 6f 5f 65 | .......z.IQ<@?........&...auto_e |
4e40 | 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 69 70 79 6e 62 | xamples/plot_barycenter_1D.ipynb |
4e60 | 7b 0a 20 20 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 | {..."nbformat_minor":.0,...."nbf |
4e80 | 6f 72 6d 61 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 | ormat":.4,...."cells":.[.....{.. |
4ea0 | 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 20 0a 20 | ....."execution_count":.null,... |
4ec0 | 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 20 20 20 | ....."cell_type":."code",....... |
4ee0 | 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 |
4f00 | 62 20 69 6e 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 | b.inline".......],........"outpu |
4f20 | 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 0a 20 20 | ts":.[],........"metadata":.{... |
4f40 | 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.......} |
4f60 | 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 3a 20 5b | .....},......{......."source":.[ |
4f80 | 0a 20 20 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 | ........."\n#.1D.Wasserstein.bar |
4fa0 | 79 63 65 6e 74 65 72 20 64 65 6d 6f 5c 6e 5c 6e 5c 6e 5c 6e 40 61 75 74 68 6f 72 3a 20 72 66 6c | ycenter.demo\n\n\n\n@author:.rfl |
4fc0 | 61 6d 61 72 79 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 | amary\n\n".......],........"cell |
4fe0 | 5f 74 79 70 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 | _type":."markdown",........"meta |
5000 | 64 61 74 61 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 | data":.{}.....},......{......."e |
5020 | 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 20 22 63 | xecution_count":.null,........"c |
5040 | 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 75 72 63 | ell_type":."code",........"sourc |
5060 | 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 20 61 73 20 6e | e":.[........."import.numpy.as.n |
5080 | 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 70 6c | p\nimport.matplotlib.pylab.as.pl |
50a0 | 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d | \nimport.ot\nfrom.mpl_toolkits.m |
50c0 | 70 6c 6f 74 33 64 20 69 6d 70 6f 72 74 20 41 78 65 73 33 44 20 23 6e 65 63 65 73 73 61 72 79 20 | plot3d.import.Axes3D.#necessary. |
50e0 | 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 |
5100 | 6f 6d 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 | om.matplotlib.collections.import |
5120 | 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 | .PolyCollection\n\n\n#%%.paramet |
5140 | 65 72 73 5c 6e 5c 6e 6e 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 | ers\n\nn=100.#.nb.bins\n\n#.bin. |
5160 | 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e | positions\nx=np.arange(n,dtype=n |
5180 | 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 69 62 | p.float64)\n\n#.Gaussian.distrib |
51a0 | 75 74 69 6f 6e 73 5c 6e 61 31 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 31 44 5f 67 61 | utions\na1=ot.datasets.get_1D_ga |
51c0 | 75 73 73 28 6e 2c 6d 3d 32 30 2c 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 | uss(n,m=20,s=5).#.m=.mean,.s=.st |
51e0 | 64 5c 6e 61 32 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 31 44 5f 67 61 75 73 73 28 6e | d\na2=ot.datasets.get_1D_gauss(n |
5200 | 2c 6d 3d 36 30 2c 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 | ,m=60,s=8)\n\n#.creating.matrix. |
5220 | 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 6f 6e 73 5c 6e | A.containing.all.distributions\n |
5240 | 41 3d 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 61 32 29 29 2e 54 5c 6e 6e 62 64 3d 41 2e 73 68 | A=np.vstack((a1,a2)).T\nnbd=A.sh |
5260 | 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 6d 61 6c | ape[1]\n\n#.loss.matrix.+.normal |
5280 | 69 7a 61 74 69 6f 6e 5c 6e 4d 3d 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 2f | ization\nM=ot.utils.dist0(n)\nM/ |
52a0 | 3d 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 62 | =M.max()\n\n#%%.plot.the.distrib |
52c0 | 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 66 6f 72 20 69 20 69 6e | utions\n\npl.figure(1)\nfor.i.in |
52e0 | 20 72 61 6e 67 65 28 6e 62 64 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 41 5b 3a 2c | .range(nbd):\n....pl.plot(x,A[:, |
5300 | 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 6e | i])\npl.title('Distributions')\n |
5320 | 5c 6e 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 | \n#%%.barycenter.computation\n\n |
5340 | 61 6c 70 68 61 3d 30 2e 32 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 73 | alpha=0.2.#.0<=alpha<=1\nweights |
5360 | 3d 6e 70 2e 61 72 72 61 79 28 5b 31 2d 61 6c 70 68 61 2c 61 6c 70 68 61 5d 29 5c 6e 5c 6e 23 20 | =np.array([1-alpha,alpha])\n\n#. |
5380 | 6c 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 3d 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 6e | l2bary\nbary_l2=A.dot(weights)\n |
53a0 | 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 3d 31 65 2d 33 5c 6e 62 61 72 79 5f | \n#.wasserstein\nreg=1e-3\nbary_ |
53c0 | 77 61 73 73 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 4d 2c 72 | wass=ot.bregman.barycenter(A,M,r |
53e0 | 65 67 2c 77 65 69 67 68 74 73 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e | eg,weights)\n\npl.figure(2)\npl. |
5400 | 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 31 2c 31 29 5c 6e 66 6f 72 20 69 20 | clf()\npl.subplot(2,1,1)\nfor.i. |
5420 | 69 6e 20 72 61 6e 67 65 28 6e 62 64 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 41 5b | in.range(nbd):\n....pl.plot(x,A[ |
5440 | 3a 2c 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 | :,i])\npl.title('Distributions') |
5460 | 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 31 2c 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 | \n\npl.subplot(2,1,2)\npl.plot(x |
5480 | 2c 62 61 72 79 5f 6c 32 2c 27 72 27 2c 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f | ,bary_l2,'r',label='l2')\npl.plo |
54a0 | 74 28 78 2c 62 61 72 79 5f 77 61 73 73 2c 27 67 27 2c 6c 61 62 65 6c 3d 27 57 61 73 73 65 72 73 | t(x,bary_wass,'g',label='Wassers |
54c0 | 74 65 69 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 | tein')\npl.legend()\npl.title('B |
54e0 | 61 72 79 63 65 6e 74 65 72 73 27 29 5c 6e 5c 6e 5c 6e 23 25 25 20 62 61 72 79 63 65 6e 74 65 72 | arycenters')\n\n\n#%%.barycenter |
5500 | 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 5c 6e 6e 62 61 6c 70 68 61 3d 31 31 5c 6e 61 6c | .interpolation\n\nnbalpha=11\nal |
5520 | 70 68 61 6c 69 73 74 3d 6e 70 2e 6c 69 6e 73 70 61 63 65 28 30 2c 31 2c 6e 62 61 6c 70 68 61 29 | phalist=np.linspace(0,1,nbalpha) |
5540 | 5c 6e 5c 6e 5c 6e 42 5f 6c 32 3d 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 6e 62 61 6c 70 68 61 29 29 | \n\n\nB_l2=np.zeros((n,nbalpha)) |
5560 | 5c 6e 5c 6e 42 5f 77 61 73 73 3d 6e 70 2e 63 6f 70 79 28 42 5f 6c 32 29 5c 6e 5c 6e 66 6f 72 20 | \n\nB_wass=np.copy(B_l2)\n\nfor. |
5580 | 69 20 69 6e 20 72 61 6e 67 65 28 30 2c 6e 62 61 6c 70 68 61 29 3a 5c 6e 20 20 20 20 61 6c 70 68 | i.in.range(0,nbalpha):\n....alph |
55a0 | 61 3d 61 6c 70 68 61 6c 69 73 74 5b 69 5d 5c 6e 20 20 20 20 77 65 69 67 68 74 73 3d 6e 70 2e 61 | a=alphalist[i]\n....weights=np.a |
55c0 | 72 72 61 79 28 5b 31 2d 61 6c 70 68 61 2c 61 6c 70 68 61 5d 29 5c 6e 20 20 20 20 42 5f 6c 32 5b | rray([1-alpha,alpha])\n....B_l2[ |
55e0 | 3a 2c 69 5d 3d 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 6e 20 20 20 20 42 5f 77 61 73 73 5b | :,i]=A.dot(weights)\n....B_wass[ |
5600 | 3a 2c 69 5d 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 4d 2c 72 | :,i]=ot.bregman.barycenter(A,M,r |
5620 | 65 67 2c 77 65 69 67 68 74 73 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 69 6e 74 65 72 70 6f 6c | eg,weights)\n\n#%%.plot.interpol |
5640 | 61 74 69 6f 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 28 31 30 2c 35 29 29 5c 6e 5c 6e | ation\n\npl.figure(3,(10,5))\n\n |
5660 | 23 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 63 6d 61 70 3d 70 6c 2e 63 6d 2e 67 | #pl.subplot(1,2,1)\ncmap=pl.cm.g |
5680 | 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 5d 5c 6e | et_cmap('viridis')\nverts.=.[]\n |
56a0 | 7a 73 20 3d 20 61 6c 70 68 61 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 7a 20 69 6e 20 65 6e 75 6d 65 | zs.=.alphalist\nfor.i,z.in.enume |
56c0 | 72 61 74 65 28 7a 73 29 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 6c 32 5b 3a 2c 69 5d 5c 6e 20 | rate(zs):\n....ys.=.B_l2[:,i]\n. |
56e0 | 20 20 20 76 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 | ...verts.append(list(zip(x,.ys)) |
5700 | 29 5c 6e 5c 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 | )\n\nax.=.pl.gcf().gca(projectio |
5720 | 6e 3d 27 33 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 | n='3d')\n\npoly.=.PolyCollection |
5740 | 28 76 65 72 74 73 2c 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 | (verts,facecolors=[cmap(a).for.a |
5760 | 20 69 6e 20 61 6c 70 68 61 6c 69 73 74 5d 29 5c 6e 70 6f 6c 79 2e 73 65 74 5f 61 6c 70 68 61 28 | .in.alphalist])\npoly.set_alpha( |
5780 | 30 2e 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 | 0.7)\nax.add_collection3d(poly,. |
57a0 | 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 5c 6e 61 78 2e 73 65 74 5f 78 6c 61 62 65 | zs=zs,.zdir='y')\n\nax.set_xlabe |
57c0 | 6c 28 27 78 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 | l('x')\nax.set_xlim3d(0,.n)\nax. |
57e0 | 73 65 74 5f 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 | set_ylabel('$\\\\alpha$')\nax.se |
5800 | 74 5f 79 6c 69 6d 33 64 28 30 2c 31 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 | t_ylim3d(0,1)\nax.set_zlabel('') |
5820 | 5c 6e 61 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 2a 31 2e | \nax.set_zlim3d(0,.B_l2.max()*1. |
5840 | 30 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 | 01)\npl.title('Barycenter.interp |
5860 | 6f 6c 61 74 69 6f 6e 20 77 69 74 68 20 6c 32 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 5c 6e | olation.with.l2')\n\npl.show()\n |
5880 | 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 28 31 30 2c 35 29 29 5c 6e 5c 6e 23 70 6c 2e 73 75 62 | \npl.figure(4,(10,5))\n\n#pl.sub |
58a0 | 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 63 6d 61 70 3d 70 6c 2e 63 6d 2e 67 65 74 5f 63 6d 61 70 | plot(1,2,1)\ncmap=pl.cm.get_cmap |
58c0 | 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 |
58e0 | 70 68 61 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 7a 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 7a 73 | phalist\nfor.i,z.in.enumerate(zs |
5900 | 29 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 77 61 73 73 5b 3a 2c 69 5d 5c 6e 20 20 20 20 76 65 | ):\n....ys.=.B_wass[:,i]\n....ve |
5920 | 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 6e | rts.append(list(zip(x,.ys)))\n\n |
5940 | 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 64 | ax.=.pl.gcf().gca(projection='3d |
5960 | 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 74 | ')\n\npoly.=.PolyCollection(vert |
5980 | 73 2c 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 20 61 | s,facecolors=[cmap(a).for.a.in.a |
59a0 | 6c 70 68 61 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 37 29 5c | lphalist])\npoly.set_alpha(0.7)\ |
59c0 | 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 3d 7a 73 | nax.add_collection3d(poly,.zs=zs |
59e0 | 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 5c 6e 61 78 2e 73 65 74 5f 78 6c 61 62 65 6c 28 27 78 27 | ,.zdir='y')\n\nax.set_xlabel('x' |
5a00 | 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 79 | )\nax.set_xlim3d(0,.n)\nax.set_y |
5a20 | 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 69 | label('$\\\\alpha$')\nax.set_yli |
5a40 | 6d 33 64 28 30 2c 31 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 5c 6e 61 78 2e | m3d(0,1)\nax.set_zlabel('')\nax. |
5a60 | 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 2e 6d 61 78 28 29 2a 31 2e 30 31 29 5c 6e | set_zlim3d(0,.B_l2.max()*1.01)\n |
5a80 | 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 6c 61 74 69 | pl.title('Barycenter.interpolati |
5aa0 | 6f 6e 20 77 69 74 68 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 | on.with.Wasserstein')\n\npl.show |
5ac0 | 28 29 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 5b | ()".......],........"outputs":.[ |
5ae0 | 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 20 | ],........"metadata":.{......... |
5b00 | 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 7d | "collapsed":.false.......}.....} |
5b20 | 0a 20 20 5d 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 | ...],...."metadata":.{....."kern |
5b40 | 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 22 3a | elspec":.{......."display_name": |
5b60 | 20 22 50 79 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 | ."Python.2",........"name":."pyt |
5b80 | 68 6f 6e 32 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 | hon2",........"language":."pytho |
5ba0 | 6e 22 0a 20 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 | n".....},......"language_info":. |
5bc0 | 7b 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 74 68 | {......."mimetype":."text/x-pyth |
5be0 | 6f 6e 22 2c 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 | on",........"nbconvert_exporter" |
5c00 | 3a 20 22 70 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 | :."python",........"name":."pyth |
5c20 | 6f 6e 22 2c 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 | on",........"file_extension":.". |
5c40 | 70 79 22 2c 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 | py",........"version":."2.7.12", |
5c60 | 20 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 | ........"pygments_lexer":."ipyth |
5c80 | 6f 6e 32 22 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 | on2",........"codemirror_mode":. |
5ca0 | 7b 0a 20 20 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 | {........."version":.2,......... |
5cc0 | 20 22 6e 61 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 | ."name":."ipython".......}.....} |
5ce0 | 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 6a 7b 82 49 bb fd 13 71 39 0a 00 00 39 0a 00 00 | ...}.}PK........j{.I...q9...9... |
5d00 | 2b 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 64 65 6d 6f 5f 4f 54 5f 32 44 5f 73 61 6d | +...auto_examples/demo_OT_2D_sam |
5d20 | 70 6c 65 73 6c 61 72 67 65 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e | pleslarge.ipynb{..."nbformat_min |
5d40 | 6f 72 22 3a 20 30 2c 20 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 | or":.0,...."nbformat":.4,...."ce |
5d60 | 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 6e 5f 63 | lls":.[.....{......."execution_c |
5d80 | 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 22 3a | ount":.null,........"cell_type": |
5da0 | 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 20 20 | ."code",........"source":.[..... |
5dc0 | 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 5d | ...."%matplotlib.inline".......] |
5de0 | 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 20 22 | ,........"outputs":.[],........" |
5e00 | 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" |
5e20 | 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 20 20 | :.false.......}.....},......{... |
5e40 | 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 44 65 6d 6f 20 | ...."source":.[........."\nDemo. |
5e60 | 66 6f 72 20 32 44 20 4f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 62 65 74 77 65 65 6e | for.2D.Optimal.transport.between |
5e80 | 20 65 6d 70 69 72 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 40 61 75 74 | .empirical.distributions\n\n@aut |
5ea0 | 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 | hor:.rflamary\n\n".......],..... |
5ec0 | 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 20 20 | ..."cell_type":."markdown",..... |
5ee0 | 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 7b 0a | ..."metadata":.{}.....},......{. |
5f00 | 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 20 0a | ......"execution_count":.null,.. |
5f20 | 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 20 20 | ......"cell_type":."code",...... |
5f40 | 20 20 22 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 | .."source":.[........."import.nu |
5f60 | 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 2e 70 79 6c | mpy.as.np\nimport.matplotlib.pyl |
5f80 | 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d | ab.as.pl\nimport.ot\n\n#%%.param |
5fa0 | 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 5c 6e 5c 6e 6e 3d 35 | eters.and.data.generation\n\nn=5 |
5fc0 | 30 30 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 6d 75 5f 73 3d 6e 70 2e 61 72 72 61 | 000.#.nb.samples\n\nmu_s=np.arra |
5fe0 | 79 28 5b 30 2c 30 5d 29 5c 6e 63 6f 76 5f 73 3d 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 30 5d 2c | y([0,0])\ncov_s=np.array([[1,0], |
6000 | 5b 30 2c 31 5d 5d 29 5c 6e 5c 6e 6d 75 5f 74 3d 6e 70 2e 61 72 72 61 79 28 5b 34 2c 34 5d 29 5c | [0,1]])\n\nmu_t=np.array([4,4])\ |
6020 | 6e 63 6f 76 5f 74 3d 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 2d 2e 38 5d 2c 5b 2d 2e 38 2c 31 5d | ncov_t=np.array([[1,-.8],[-.8,1] |
6040 | 5d 29 5c 6e 5c 6e 78 73 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 32 44 5f 73 61 6d 70 | ])\n\nxs=ot.datasets.get_2D_samp |
6060 | 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d 75 5f 73 2c 63 6f 76 5f 73 29 5c 6e 78 74 3d 6f 74 2e 64 | les_gauss(n,mu_s,cov_s)\nxt=ot.d |
6080 | 61 74 61 73 65 74 73 2e 67 65 74 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d | atasets.get_2D_samples_gauss(n,m |
60a0 | 75 5f 74 2c 63 6f 76 5f 74 29 5c 6e 5c 6e 61 2c 62 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 29 2c 6f | u_t,cov_t)\n\na,b.=.ot.unif(n),o |
60c0 | 74 2e 75 6e 69 66 28 6e 29 20 23 20 75 6e 69 66 6f 72 6d 20 64 69 73 74 72 69 62 75 74 69 6f 6e | t.unif(n).#.uniform.distribution |
60e0 | 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 78 5c 6e 4d 3d | .on.samples\n\n#.loss.matrix\nM= |
6100 | 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 29 5c 6e 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 23 25 | ot.dist(xs,xt)\nM/=M.max()\n\n#% |
6120 | 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 31 29 5c | %.plot.samples\n\n#pl.figure(1)\ |
6140 | 6e 23 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c | n#pl.plot(xs[:,0],xs[:,1],'+b',l |
6160 | 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 23 70 6c 2e 70 6c 6f 74 | abel='Source.samples')\n#pl.plot |
6180 | 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 | (xt[:,0],xt[:,1],'xr',label='Tar |
61a0 | 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 23 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 | get.samples')\n#pl.legend(loc=0) |
61c0 | 5c 6e 23 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 72 61 67 65 74 20 64 | \n#pl.title('Source.and.traget.d |
61e0 | 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 23 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 32 29 | istributions')\n#\n#pl.figure(2) |
6200 | 5c 6e 23 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 | \n#pl.imshow(M,interpolation='ne |
6220 | 61 72 65 73 74 27 29 5c 6e 23 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 | arest')\n#pl.title('Cost.matrix. |
6240 | 4d 27 29 5c 6e 23 5c 6e 5c 6e 23 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 3d 6f 74 2e 65 6d 64 28 61 | M')\n#\n\n#%%.EMD\n\nG0=ot.emd(a |
6260 | 2c 62 2c 4d 29 5c 6e 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 33 29 5c 6e 23 70 6c 2e 69 6d 73 68 | ,b,M)\n\n#pl.figure(3)\n#pl.imsh |
6280 | 6f 77 28 47 30 2c 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 | ow(G0,interpolation='nearest')\n |
62a0 | 23 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 23 5c 6e 23 70 | #pl.title('OT.matrix.G0')\n#\n#p |
62c0 | 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 23 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d | l.figure(4)\n#ot.plot.plot2D_sam |
62e0 | 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 30 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e | ples_mat(xs,xt,G0,c=[.5,.5,1])\n |
6300 | 23 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 | #pl.plot(xs[:,0],xs[:,1],'+b',la |
6320 | 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 23 70 6c 2e 70 6c 6f 74 28 | bel='Source.samples')\n#pl.plot( |
6340 | 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 | xt[:,0],xt[:,1],'xr',label='Targ |
6360 | 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 23 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c | et.samples')\n#pl.legend(loc=0)\ |
6380 | 6e 23 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 77 69 74 68 20 73 61 6d 70 6c | n#pl.title('OT.matrix.with.sampl |
63a0 | 65 73 27 29 5c 6e 5c 6e 5c 6e 23 25 25 20 73 69 6e 6b 68 6f 72 6e 5c 6e 5c 6e 23 20 72 65 67 20 | es')\n\n\n#%%.sinkhorn\n\n#.reg. |
63c0 | 74 65 72 6d 5c 6e 6c 61 6d 62 64 3d 35 65 2d 33 5c 6e 5c 6e 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f | term\nlambd=5e-3\n\nGs=ot.sinkho |
63e0 | 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 5c 6e 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 35 29 | rn(a,b,M,lambd)\n\n#pl.figure(5) |
6400 | 5c 6e 23 70 6c 2e 69 6d 73 68 6f 77 28 47 73 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e | \n#pl.imshow(Gs,interpolation='n |
6420 | 65 61 72 65 73 74 27 29 5c 6e 23 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 73 | earest')\n#pl.title('OT.matrix.s |
6440 | 69 6e 6b 68 6f 72 6e 27 29 5c 6e 23 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 36 29 5c 6e 23 6f 74 | inkhorn')\n#\n#pl.figure(6)\n#ot |
6460 | 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 78 74 2c 47 | .plot.plot2D_samples_mat(xs,xt,G |
6480 | 73 2c 63 6f 6c 6f 72 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 23 70 6c 2e 70 6c 6f 74 28 78 73 5b | s,color=[.5,.5,1])\n#pl.plot(xs[ |
64a0 | 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 | :,0],xs[:,1],'+b',label='Source. |
64c0 | 73 61 6d 70 6c 65 73 27 29 5c 6e 23 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a | samples')\n#pl.plot(xt[:,0],xt[: |
64e0 | 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 | ,1],'xr',label='Target.samples') |
6500 | 5c 6e 23 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 23 70 6c 2e 74 69 74 6c 65 28 27 | \n#pl.legend(loc=0)\n#pl.title(' |
6520 | 4f 54 20 6d 61 74 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 | OT.matrix.Sinkhorn.with.samples' |
6540 | 29 5c 6e 23 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 | )\n#".......],........"outputs": |
6560 | 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":.{....... |
6580 | 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.......}.... |
65a0 | 20 7d 0a 20 20 5d 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 | .}...],...."metadata":.{....."ke |
65c0 | 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 |
65e0 | 22 3a 20 22 50 79 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 | ":."Python.2",........"name":."p |
6600 | 79 74 68 6f 6e 32 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 | ython2",........"language":."pyt |
6620 | 68 6f 6e 22 0a 20 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 | hon".....},......"language_info" |
6640 | 3a 20 7b 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 | :.{......."mimetype":."text/x-py |
6660 | 74 68 6f 6e 22 2c 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 | thon",........"nbconvert_exporte |
6680 | 72 22 3a 20 22 70 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 | r":."python",........"name":."py |
66a0 | 74 68 6f 6e 22 2c 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 | thon",........"file_extension":. |
66c0 | 22 2e 70 79 22 2c 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 | ".py",........"version":."2.7.12 |
66e0 | 22 2c 20 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 | ",........"pygments_lexer":."ipy |
6700 | 74 68 6f 6e 32 22 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 | thon2",........"codemirror_mode" |
6720 | 3a 20 7b 0a 20 20 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 | :.{........."version":.2,....... |
6740 | 20 20 20 22 6e 61 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 | ..."name":."ipython".......}.... |
6760 | 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 b7 82 e3 4a 83 55 07 9d a7 0e 00 00 a7 0e | .}...}.}PK...........J.U........ |
6780 | 00 00 24 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 4c 31 5f 76 | ..$...auto_examples/plot_OT_L1_v |
67a0 | 73 5f 4c 32 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 | s_L2.ipynb{..."nbformat_minor":. |
67c0 | 30 2c 20 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 22 3a | 0,...."nbformat":.4,...."cells": |
67e0 | 20 5b 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" |
6800 | 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 |
6820 | 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":.[........." |
6840 | 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 2c 20 0a 20 20 | %matplotlib.inline".......],.... |
6860 | 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 20 22 6d 65 74 61 64 | ...."outputs":.[],........"metad |
6880 | 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 |
68a0 | 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 20 20 20 20 20 20 22 | se.......}.....},......{......." |
68c0 | 73 6f 75 72 63 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 | source":.[........."\n#.2D.Optim |
68e0 | 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 6d 65 74 72 69 | al.transport.for.different.metri |
6900 | 63 73 5c 6e 5c 6e 5c 6e 53 74 6f 6c 65 20 74 68 65 20 66 69 67 75 72 65 20 69 64 65 61 20 66 72 | cs\n\n\nStole.the.figure.idea.fr |
6920 | 6f 6d 20 46 69 67 2e 20 31 20 61 6e 64 20 32 20 69 6e 20 5c 6e 68 74 74 70 73 3a 2f 2f 61 72 78 | om.Fig..1.and.2.in.\nhttps://arx |
6940 | 69 76 2e 6f 72 67 2f 70 64 66 2f 31 37 30 36 2e 30 37 36 35 30 2e 70 64 66 5c 6e 5c 6e 5c 6e 40 | iv.org/pdf/1706.07650.pdf\n\n\n@ |
6960 | 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a | author:.rflamary\n\n".......],.. |
6980 | 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 20 0a | ......"cell_type":."markdown",.. |
69a0 | 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 20 20 20 | ......"metadata":.{}.....},..... |
69c0 | 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 75 6c 6c | .{......."execution_count":.null |
69e0 | 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 20 0a 20 | ,........"cell_type":."code",... |
6a00 | 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 69 6d 70 6f 72 74 | ....."source":.[........."import |
6a20 | 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 2e | .numpy.as.np\nimport.matplotlib. |
6a40 | 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 23 25 25 20 70 61 | pylab.as.pl\nimport.ot\n\n#%%.pa |
6a60 | 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 5c 6e 5c 6e | rameters.and.data.generation\n\n |
6a80 | 66 6f 72 20 64 61 74 61 20 69 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e 5c 6e 20 20 20 20 69 66 20 | for.data.in.range(2):\n\n....if. |
6aa0 | 64 61 74 61 3a 5c 6e 20 20 20 20 20 20 20 20 6e 3d 32 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 | data:\n........n=20.#.nb.samples |
6ac0 | 5c 6e 20 20 20 20 20 20 20 20 78 73 3d 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 32 29 29 5c 6e 20 20 | \n........xs=np.zeros((n,2))\n.. |
6ae0 | 20 20 20 20 20 20 78 73 5b 3a 2c 30 5d 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 29 2b 31 5c 6e 20 20 | ......xs[:,0]=np.arange(n)+1\n.. |
6b00 | 20 20 20 20 20 20 78 73 5b 3a 2c 31 5d 3d 28 6e 70 2e 61 72 61 6e 67 65 28 6e 29 2b 31 29 2a 2d | ......xs[:,1]=(np.arange(n)+1)*- |
6b20 | 30 2e 30 30 31 20 23 20 74 6f 20 6d 61 6b 65 20 69 74 20 73 74 72 69 63 74 6c 79 20 63 6f 6e 76 | 0.001.#.to.make.it.strictly.conv |
6b40 | 65 78 2e 2e 2e 5c 6e 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 20 20 20 20 78 74 3d 6e 70 2e 7a | ex...\n........\n........xt=np.z |
6b60 | 65 72 6f 73 28 28 6e 2c 32 29 29 5c 6e 20 20 20 20 20 20 20 20 78 74 5b 3a 2c 31 5d 3d 6e 70 2e | eros((n,2))\n........xt[:,1]=np. |
6b80 | 61 72 61 6e 67 65 28 6e 29 2b 31 5c 6e 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 | arange(n)+1\n....else:\n........ |
6ba0 | 5c 6e 20 20 20 20 20 20 20 20 6e 3d 35 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 20 20 20 | \n........n=50.#.nb.samples\n... |
6bc0 | 20 20 20 20 20 78 74 6f 74 3d 6e 70 2e 7a 65 72 6f 73 28 28 6e 2b 31 2c 32 29 29 5c 6e 20 20 20 | .....xtot=np.zeros((n+1,2))\n... |
6be0 | 20 20 20 20 20 78 74 6f 74 5b 3a 2c 30 5d 3d 6e 70 2e 63 6f 73 28 28 6e 70 2e 61 72 61 6e 67 65 | .....xtot[:,0]=np.cos((np.arange |
6c00 | 28 6e 2b 31 29 2b 31 2e 30 29 2a 30 2e 39 2f 28 6e 2b 32 29 2a 32 2a 6e 70 2e 70 69 29 5c 6e 20 | (n+1)+1.0)*0.9/(n+2)*2*np.pi)\n. |
6c20 | 20 20 20 20 20 20 20 78 74 6f 74 5b 3a 2c 31 5d 3d 6e 70 2e 73 69 6e 28 28 6e 70 2e 61 72 61 6e | .......xtot[:,1]=np.sin((np.aran |
6c40 | 67 65 28 6e 2b 31 29 2b 31 2e 30 29 2a 30 2e 39 2f 28 6e 2b 32 29 2a 32 2a 6e 70 2e 70 69 29 5c | ge(n+1)+1.0)*0.9/(n+2)*2*np.pi)\ |
6c60 | 6e 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 20 20 20 20 78 73 3d 78 74 6f 74 5b 3a 6e 2c 3a 5d | n........\n........xs=xtot[:n,:] |
6c80 | 5c 6e 20 20 20 20 20 20 20 20 78 74 3d 78 74 6f 74 5b 31 3a 2c 3a 5d 5c 6e 20 20 20 20 20 20 20 | \n........xt=xtot[1:,:]\n....... |
6ca0 | 20 5c 6e 20 20 20 20 20 20 20 20 5c 6e 20 20 20 20 5c 6e 20 20 20 20 61 2c 62 20 3d 20 6f 74 2e | .\n........\n....\n....a,b.=.ot. |
6cc0 | 75 6e 69 66 28 6e 29 2c 6f 74 2e 75 6e 69 66 28 6e 29 20 23 20 75 6e 69 66 6f 72 6d 20 64 69 73 | unif(n),ot.unif(n).#.uniform.dis |
6ce0 | 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 5c 6e 20 20 20 20 5c 6e 20 20 20 20 | tribution.on.samples\n....\n.... |
6d00 | 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 20 20 20 20 4d 31 3d 6f 74 2e 64 69 73 74 28 78 73 | #.loss.matrix\n....M1=ot.dist(xs |
6d20 | 2c 78 74 2c 6d 65 74 72 69 63 3d 27 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 20 20 20 20 4d 31 2f | ,xt,metric='euclidean')\n....M1/ |
6d40 | 3d 4d 31 2e 6d 61 78 28 29 5c 6e 20 20 20 20 5c 6e 20 20 20 20 23 20 6c 6f 73 73 20 6d 61 74 72 | =M1.max()\n....\n....#.loss.matr |
6d60 | 69 78 5c 6e 20 20 20 20 4d 32 3d 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 2c 6d 65 74 72 69 63 3d | ix\n....M2=ot.dist(xs,xt,metric= |
6d80 | 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 20 20 20 20 4d 32 2f 3d 4d 32 2e 6d 61 78 28 29 | 'sqeuclidean')\n....M2/=M2.max() |
6da0 | 5c 6e 20 20 20 20 5c 6e 20 20 20 20 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 20 20 20 20 4d | \n....\n....#.loss.matrix\n....M |
6dc0 | 70 3d 6e 70 2e 73 71 72 74 28 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 2c 6d 65 74 72 69 63 3d 27 | p=np.sqrt(ot.dist(xs,xt,metric=' |
6de0 | 65 75 63 6c 69 64 65 61 6e 27 29 29 5c 6e 20 20 20 20 4d 70 2f 3d 4d 70 2e 6d 61 78 28 29 5c 6e | euclidean'))\n....Mp/=Mp.max()\n |
6e00 | 20 20 20 20 5c 6e 20 20 20 20 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 20 20 20 20 | ....\n....#%%.plot.samples\n.... |
6e20 | 5c 6e 20 20 20 20 70 6c 2e 66 69 67 75 72 65 28 31 2b 33 2a 64 61 74 61 29 5c 6e 20 20 20 20 70 | \n....pl.figure(1+3*data)\n....p |
6e40 | 6c 2e 63 6c 66 28 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b | l.clf()\n....pl.plot(xs[:,0],xs[ |
6e60 | 3a 2c 31 5d 2c 27 2b 62 27 2c 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' |
6e80 | 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 27 | )\n....pl.plot(xt[:,0],xt[:,1],' |
6ea0 | 78 72 27 2c 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 20 20 20 | xr',label='Target.samples')\n... |
6ec0 | 20 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 20 20 20 20 70 6c 2e 74 69 74 6c 65 28 | .pl.axis('equal')\n....pl.title( |
6ee0 | 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 6f 6e 73 | 'Source.and.traget.distributions |
6f00 | 27 29 5c 6e 20 20 20 20 5c 6e 20 20 20 20 70 6c 2e 66 69 67 75 72 65 28 32 2b 33 2a 64 61 74 61 | ')\n....\n....pl.figure(2+3*data |
6f20 | 2c 28 31 35 2c 35 29 29 5c 6e 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 33 2c 31 29 5c | ,(15,5))\n....pl.subplot(1,3,1)\ |
6f40 | 6e 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 4d 31 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d | n....pl.imshow(M1,interpolation= |
6f60 | 27 6e 65 61 72 65 73 74 27 29 5c 6e 20 20 20 20 70 6c 2e 74 69 74 6c 65 28 27 45 75 63 69 64 65 | 'nearest')\n....pl.title('Eucide |
6f80 | 61 6e 20 63 6f 73 74 27 29 5c 6e 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 33 2c 32 29 | an.cost')\n....pl.subplot(1,3,2) |
6fa0 | 5c 6e 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 4d 32 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e | \n....pl.imshow(M2,interpolation |
6fc0 | 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 20 20 20 20 70 6c 2e 74 69 74 6c 65 28 27 53 71 75 61 72 | ='nearest')\n....pl.title('Squar |
6fe0 | 65 64 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 20 20 20 20 5c 6e 20 20 20 20 70 | ed.Euclidean.cost')\n....\n....p |
7000 | 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 33 2c 33 29 5c 6e 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 | l.subplot(1,3,3)\n....pl.imshow( |
7020 | 4d 70 2c 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 20 20 20 | Mp,interpolation='nearest')\n... |
7040 | 20 70 6c 2e 74 69 74 6c 65 28 27 53 71 72 74 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 | .pl.title('Sqrt.Euclidean.cost') |
7060 | 5c 6e 20 20 20 20 23 25 25 20 45 4d 44 5c 6e 20 20 20 20 5c 6e 20 20 20 20 47 31 3d 6f 74 2e 65 | \n....#%%.EMD\n....\n....G1=ot.e |
7080 | 6d 64 28 61 2c 62 2c 4d 31 29 5c 6e 20 20 20 20 47 32 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 32 | md(a,b,M1)\n....G2=ot.emd(a,b,M2 |
70a0 | 29 5c 6e 20 20 20 20 47 70 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 70 29 5c 6e 20 20 20 20 5c 6e | )\n....Gp=ot.emd(a,b,Mp)\n....\n |
70c0 | 20 20 20 20 70 6c 2e 66 69 67 75 72 65 28 33 2b 33 2a 64 61 74 61 2c 28 31 35 2c 35 29 29 5c 6e | ....pl.figure(3+3*data,(15,5))\n |
70e0 | 20 20 20 20 5c 6e 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 33 2c 31 29 5c 6e 20 20 20 | ....\n....pl.subplot(1,3,1)\n... |
7100 | 20 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 78 | .ot.plot.plot2D_samples_mat(xs,x |
7120 | 74 2c 47 31 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 | t,G1,c=[.5,.5,1])\n....pl.plot(x |
7140 | 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 | s[:,0],xs[:,1],'+b',label='Sourc |
7160 | 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d | e.samples')\n....pl.plot(xt[:,0] |
7180 | 2c 78 74 5b 3a 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 | ,xt[:,1],'xr',label='Target.samp |
71a0 | 6c 65 73 27 29 5c 6e 20 20 20 20 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 20 20 20 | les')\n....pl.axis('equal')\n... |
71c0 | 20 23 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 20 20 20 20 70 6c 2e 74 69 74 6c 65 | .#pl.legend(loc=0)\n....pl.title |
71e0 | 28 27 4f 54 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 20 20 20 20 5c 6e 20 20 20 20 70 6c 2e 73 | ('OT.Euclidean')\n....\n....pl.s |
7200 | 75 62 70 6c 6f 74 28 31 2c 33 2c 32 29 5c 6e 20 20 20 20 5c 6e 20 20 20 20 6f 74 2e 70 6c 6f 74 | ubplot(1,3,2)\n....\n....ot.plot |
7220 | 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 32 2c 63 3d 5b | .plot2D_samples_mat(xs,xt,G2,c=[ |
7240 | 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 | .5,.5,1])\n....pl.plot(xs[:,0],x |
7260 | 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 | s[:,1],'+b',label='Source.sample |
7280 | 73 27 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d | s')\n....pl.plot(xt[:,0],xt[:,1] |
72a0 | 2c 27 78 72 27 2c 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 20 | ,'xr',label='Target.samples')\n. |
72c0 | 20 20 20 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 20 20 20 20 23 70 6c 2e 6c 65 67 | ...pl.axis('equal')\n....#pl.leg |
72e0 | 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 20 20 20 20 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 73 71 75 | end(loc=0)\n....pl.title('OT.squ |
7300 | 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 20 20 20 20 5c 6e 20 20 20 20 70 6c 2e 73 | ared.Euclidean')\n....\n....pl.s |
7320 | 75 62 70 6c 6f 74 28 31 2c 33 2c 33 29 5c 6e 20 20 20 20 5c 6e 20 20 20 20 6f 74 2e 70 6c 6f 74 | ubplot(1,3,3)\n....\n....ot.plot |
7340 | 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 70 2c 63 3d 5b | .plot2D_samples_mat(xs,xt,Gp,c=[ |
7360 | 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 | .5,.5,1])\n....pl.plot(xs[:,0],x |
7380 | 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 | s[:,1],'+b',label='Source.sample |
73a0 | 73 27 29 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d | s')\n....pl.plot(xt[:,0],xt[:,1] |
73c0 | 2c 27 78 72 27 2c 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 20 | ,'xr',label='Target.samples')\n. |
73e0 | 20 20 20 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 20 20 20 20 23 70 6c 2e 6c 65 67 | ...pl.axis('equal')\n....#pl.leg |
7400 | 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 20 20 20 20 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 73 71 72 | end(loc=0)\n....pl.title('OT.sqr |
7420 | 74 20 45 75 63 6c 69 64 65 61 6e 27 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 | t.Euclidean')".......],........" |
7440 | 6f 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 | outputs":.[],........"metadata": |
7460 | 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... |
7480 | 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 5d 2c 20 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 | ....}.....}...],...."metadata":. |
74a0 | 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 |
74c0 | 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 32 22 2c 20 0a 20 20 20 20 20 20 22 | play_name":."Python.2",........" |
74e0 | 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 | name":."python2",........"langua |
7500 | 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 22 6c 61 6e 67 75 | ge":."python".....},......"langu |
7520 | 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 | age_info":.{......."mimetype":." |
7540 | 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 | text/x-python",........"nbconver |
7560 | 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e | t_exporter":."python",........"n |
7580 | 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 | ame":."python",........"file_ext |
75a0 | 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 20 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 | ension":.".py",........"version" |
75c0 | 3a 20 22 32 2e 37 2e 31 32 22 2c 20 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 | :."2.7.12",........"pygments_lex |
75e0 | 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 | er":."ipython2",........"codemir |
7600 | 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 | ror_mode":.{........."version":. |
7620 | 32 2c 20 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 0a 20 20 | 2,.........."name":."ipython"... |
7640 | 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 b6 82 e3 4a 6d | ....}.....}...}.}PK...........Jm |
7660 | f1 b9 13 11 0a 00 00 11 0a 00 00 26 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f | ...........&...auto_examples/plo |
7680 | 74 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d | t_OT_2D_samples.ipynb{..."nbform |
76a0 | 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 74 22 3a 20 34 2c 20 | at_minor":.0,...."nbformat":.4,. |
76c0 | 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 65 78 65 63 75 | ..."cells":.[.....{......."execu |
76e0 | 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_ |
7700 | 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":. |
7720 | 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 20 | [........."%matplotlib.inline".. |
7740 | 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":.[],... |
7760 | 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 |
7780 | 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.......}.....},.... |
77a0 | 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 5c | ..{......."source":.[........."\ |
77c0 | 6e 23 20 32 44 20 4f 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 | n#.2D.Optimal.transport.between. |
77e0 | 65 6d 70 69 72 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 40 61 75 | empirical.distributions\n\n\n@au |
7800 | 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 | thor:.rflamary\n\n".......],.... |
7820 | 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 20 | ...."cell_type":."markdown",.... |
7840 | 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 7b | ...."metadata":.{}.....},......{ |
7860 | 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 20 | ......."execution_count":.null,. |
7880 | 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 20 | ......."cell_type":."code",..... |
78a0 | 20 20 20 22 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 | ..."source":.[........."import.n |
78c0 | 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 2e 70 79 | umpy.as.np\nimport.matplotlib.py |
78e0 | 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 23 25 25 20 70 61 72 61 | lab.as.pl\nimport.ot\n\n#%%.para |
7900 | 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 5c 6e 5c 6e 6e 3d | meters.and.data.generation\n\nn= |
7920 | 35 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 6d 75 5f 73 3d 6e 70 2e 61 72 72 61 79 | 50.#.nb.samples\n\nmu_s=np.array |
7940 | 28 5b 30 2c 30 5d 29 5c 6e 63 6f 76 5f 73 3d 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 30 5d 2c 5b | ([0,0])\ncov_s=np.array([[1,0],[ |
7960 | 30 2c 31 5d 5d 29 5c 6e 5c 6e 6d 75 5f 74 3d 6e 70 2e 61 72 72 61 79 28 5b 34 2c 34 5d 29 5c 6e | 0,1]])\n\nmu_t=np.array([4,4])\n |
7980 | 63 6f 76 5f 74 3d 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 2d 2e 38 5d 2c 5b 2d 2e 38 2c 31 5d 5d | cov_t=np.array([[1,-.8],[-.8,1]] |
79a0 | 29 5c 6e 5c 6e 78 73 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 32 44 5f 73 61 6d 70 6c | )\n\nxs=ot.datasets.get_2D_sampl |
79c0 | 65 73 5f 67 61 75 73 73 28 6e 2c 6d 75 5f 73 2c 63 6f 76 5f 73 29 5c 6e 78 74 3d 6f 74 2e 64 61 | es_gauss(n,mu_s,cov_s)\nxt=ot.da |
79e0 | 74 61 73 65 74 73 2e 67 65 74 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d 75 | tasets.get_2D_samples_gauss(n,mu |
7a00 | 5f 74 2c 63 6f 76 5f 74 29 5c 6e 5c 6e 61 2c 62 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 29 2c 6f 74 | _t,cov_t)\n\na,b.=.ot.unif(n),ot |
7a20 | 2e 75 6e 69 66 28 6e 29 20 23 20 75 6e 69 66 6f 72 6d 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 | .unif(n).#.uniform.distribution. |
7a40 | 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 78 5c 6e 4d 3d 6f | on.samples\n\n#.loss.matrix\nM=o |
7a60 | 74 2e 64 69 73 74 28 78 73 2c 78 74 29 5c 6e 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 23 25 25 | t.dist(xs,xt)\nM/=M.max()\n\n#%% |
7a80 | 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 | .plot.samples\n\npl.figure(1)\np |
7aa0 | 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 | l.plot(xs[:,0],xs[:,1],'+b',labe |
7ac0 | 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 6f 74 28 78 74 5b | l='Source.samples')\npl.plot(xt[ |
7ae0 | 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 | :,0],xt[:,1],'xr',label='Target. |
7b00 | 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 30 29 5c 6e 70 6c 2e | samples')\npl.legend(loc=0)\npl. |
7b20 | 74 69 74 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 | title('Source.and.traget.distrib |
7b40 | 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 69 6d 73 | utions')\n\npl.figure(2)\npl.ims |
7b60 | 68 6f 77 28 4d 2c 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 | how(M,interpolation='nearest')\n |
7b80 | 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 5c 6e 5c 6e 5c 6e 23 | pl.title('Cost.matrix.M')\n\n\n# |
7ba0 | 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 29 5c 6e 5c 6e 70 6c | %%.EMD\n\nG0=ot.emd(a,b,M)\n\npl |
7bc0 | 2e 66 69 67 75 72 65 28 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 30 2c 69 6e 74 65 72 70 6f | .figure(3)\npl.imshow(G0,interpo |
7be0 | 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 4f 54 20 | lation='nearest')\npl.title('OT. |
7c00 | 6d 61 74 72 69 78 20 47 30 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 6f 74 2e | matrix.G0')\n\npl.figure(4)\not. |
7c20 | 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 78 74 2c 47 30 | plot.plot2D_samples_mat(xs,xt,G0 |
7c40 | 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 | ,c=[.5,.5,1])\npl.plot(xs[:,0],x |
7c60 | 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 | s[:,1],'+b',label='Source.sample |
7c80 | 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 27 78 72 | s')\npl.plot(xt[:,0],xt[:,1],'xr |
7ca0 | 27 2c 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 | ',label='Target.samples')\npl.le |
7cc0 | 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 69 78 | gend(loc=0)\npl.title('OT.matrix |
7ce0 | 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 5c 6e 23 25 25 20 73 69 6e 6b 68 6f 72 | .with.samples')\n\n\n#%%.sinkhor |
7d00 | 6e 5c 6e 5c 6e 23 20 72 65 67 20 74 65 72 6d 5c 6e 6c 61 6d 62 64 3d 35 65 2d 34 5c 6e 5c 6e 47 | n\n\n#.reg.term\nlambd=5e-4\n\nG |
7d20 | 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 5c 6e 5c 6e 70 6c | s=ot.sinkhorn(a,b,M,lambd)\n\npl |
7d40 | 2e 66 69 67 75 72 65 28 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 73 2c 69 6e 74 65 72 70 6f | .figure(5)\npl.imshow(Gs,interpo |
7d60 | 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 4f 54 20 | lation='nearest')\npl.title('OT. |
7d80 | 6d 61 74 72 69 78 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 36 | matrix.sinkhorn')\n\npl.figure(6 |
7da0 | 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 73 | )\not.plot.plot2D_samples_mat(xs |
7dc0 | 2c 78 74 2c 47 73 2c 63 6f 6c 6f 72 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 | ,xt,Gs,color=[.5,.5,1])\npl.plot |
7de0 | 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 | (xs[:,0],xs[:,1],'+b',label='Sou |
7e00 | 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 30 5d 2c 78 | rce.samples')\npl.plot(xt[:,0],x |
7e20 | 74 5b 3a 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 | t[:,1],'xr',label='Target.sample |
7e40 | 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 28 | s')\npl.legend(loc=0)\npl.title( |
7e60 | 27 4f 54 20 6d 61 74 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 | 'OT.matrix.Sinkhorn.with.samples |
7e80 | 27 29 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 5b | ')".......],........"outputs":.[ |
7ea0 | 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 20 | ],........"metadata":.{......... |
7ec0 | 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 7d | "collapsed":.false.......}.....} |
7ee0 | 0a 20 20 5d 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 | ...],...."metadata":.{....."kern |
7f00 | 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 22 3a | elspec":.{......."display_name": |
7f20 | 20 22 50 79 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 | ."Python.2",........"name":."pyt |
7f40 | 68 6f 6e 32 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 | hon2",........"language":."pytho |
7f60 | 6e 22 0a 20 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 | n".....},......"language_info":. |
7f80 | 7b 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 74 68 | {......."mimetype":."text/x-pyth |
7fa0 | 6f 6e 22 2c 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 | on",........"nbconvert_exporter" |
7fc0 | 3a 20 22 70 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 | :."python",........"name":."pyth |
7fe0 | 6f 6e 22 2c 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 | on",........"file_extension":.". |
8000 | 70 79 22 2c 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 | py",........"version":."2.7.12", |
8020 | 20 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 | ........"pygments_lexer":."ipyth |
8040 | 6f 6e 32 22 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 | on2",........"codemirror_mode":. |
8060 | 7b 0a 20 20 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 | {........."version":.2,......... |
8080 | 20 22 6e 61 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 | ."name":."ipython".......}.....} |
80a0 | 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 75 7b 82 49 55 d4 67 d2 3c 0e 00 00 3c 0e 00 00 | ...}.}PK........u{.IU.g.<...<... |
80c0 | 20 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 32 44 2e 69 | ....auto_examples/plot_OTDA_2D.i |
80e0 | 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 2c 20 0a 20 20 | pynb{..."nbformat_minor":.0,.... |
8100 | 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 | "nbformat":.4,...."cells":.[.... |
8120 | 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 75 6c 6c | .{......."execution_count":.null |
8140 | 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 20 0a 20 | ,........"cell_type":."code",... |
8160 | 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 |
8180 | 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f | otlib.inline".......],........"o |
81a0 | 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":. |
81c0 | 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.... |
81e0 | 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 |
8200 | 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 65 6d 70 69 72 69 63 | ":.[........."\n#.OT.for.empiric |
8220 | 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 | al.distributions\n\n\n\n"....... |
8240 | 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 77 6e | ],........"cell_type":."markdown |
8260 | 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 2c 20 | ",........"metadata":.{}.....},. |
8280 | 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 3a 20 | .....{......."execution_count":. |
82a0 | 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 65 22 | null,........"cell_type":."code" |
82c0 | 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 69 6d | ,........"source":.[........."im |
82e0 | 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 74 | port.numpy.as.np\nimport.matplot |
8300 | 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 5c 6e | lib.pylab.as.pl\nimport.ot\n\n\n |
8320 | 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 3d 31 35 30 20 23 20 6e 62 20 62 | \n#%%.parameters\n\nn=150.#.nb.b |
8340 | 69 6e 73 5c 6e 5c 6e 78 73 2c 79 73 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 64 61 74 | ins\n\nxs,ys=ot.datasets.get_dat |
8360 | 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 6e 29 5c 6e 78 74 2c 79 74 3d 6f 74 2e | a_classif('3gauss',n)\nxt,yt=ot. |
8380 | 64 61 74 61 73 65 74 73 2e 67 65 74 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 | datasets.get_data_classif('3gaus |
83a0 | 73 32 27 2c 6e 29 5c 6e 5c 6e 61 2c 62 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 29 2c 6f 74 2e 75 6e | s2',n)\n\na,b.=.ot.unif(n),ot.un |
83c0 | 69 66 28 6e 29 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 3d 6f 74 2e 64 69 73 74 28 | if(n)\n#.loss.matrix\nM=ot.dist( |
83e0 | 78 73 2c 78 74 29 5c 6e 23 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 | xs,xt)\n#M/=M.max()\n\n#%%.plot. |
8400 | 73 61 6d 70 6c 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 5c 6e 70 6c 2e 73 75 | samples\n\npl.figure(1)\n\npl.su |
8420 | 62 70 6c 6f 74 28 32 2c 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d | bplot(2,2,1)\npl.scatter(xs[:,0] |
8440 | 2c 78 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 | ,xs[:,1],c=ys,marker='+',label=' |
8460 | 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= |
8480 | 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 64 69 73 74 72 69 62 75 74 69 | 0)\npl.title('Source..distributi |
84a0 | 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 32 29 5c 6e 70 6c 2e 73 | ons')\n\npl.subplot(2,2,2)\npl.s |
84c0 | 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b | catter(xt[:,0],xt[:,1],c=yt,mark |
84e0 | 65 72 3d 27 6f 27 2c 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 | er='o',label='Target.samples')\n |
8500 | 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 74 61 72 67 | pl.legend(loc=0)\npl.title('targ |
8520 | 65 74 20 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 | et..distributions')\n\npl.figure |
8540 | 28 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 | (2)\npl.imshow(M,interpolation=' |
8560 | 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 | nearest')\npl.title('Cost.matrix |
8580 | 20 4d 27 29 5c 6e 5c 6e 5c 6e 23 25 25 20 4f 54 20 65 73 74 69 6d 61 74 69 6f 6e 5c 6e 5c 6e 23 | .M')\n\n\n#%%.OT.estimation\n\n# |
85a0 | 20 45 4d 44 5c 6e 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 29 5c 6e 5c 6e 23 20 73 69 6e 6b | .EMD\nG0=ot.emd(a,b,M)\n\n#.sink |
85c0 | 68 6f 72 6e 5c 6e 6c 61 6d 62 64 3d 31 65 2d 31 5c 6e 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e | horn\nlambd=1e-1\nGs=ot.sinkhorn |
85e0 | 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 5c 6e 5c 6e 5c 6e 23 20 47 72 6f 75 70 20 6c 61 73 73 6f | (a,b,M,lambd)\n\n\n#.Group.lasso |
8600 | 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 72 65 67 3d 31 65 2d 31 5c 6e 65 74 61 3d 31 | .regularization\nreg=1e-1\neta=1 |
8620 | 65 30 5c 6e 47 67 3d 6f 74 2e 64 61 2e 73 69 6e 6b 68 6f 72 6e 5f 6c 70 6c 31 5f 6d 6d 28 61 2c | e0\nGg=ot.da.sinkhorn_lpl1_mm(a, |
8640 | 79 73 2e 61 73 74 79 70 65 28 6e 70 2e 69 6e 74 29 2c 62 2c 4d 2c 72 65 67 2c 65 74 61 29 5c 6e | ys.astype(np.int),b,M,reg,eta)\n |
8660 | 5c 6e 5c 6e 23 25 25 20 76 69 73 75 20 6d 61 74 72 69 63 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 | \n\n#%%.visu.matrices\n\npl.figu |
8680 | 72 65 28 33 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 31 29 5c 6e 70 6c 2e 69 | re(3)\n\npl.subplot(2,3,1)\npl.i |
86a0 | 6d 73 68 6f 77 28 47 30 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 | mshow(G0,interpolation='nearest' |
86c0 | 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 27 29 5c 6e 5c 6e 70 6c 2e | )\npl.title('OT.matrix.')\n\npl. |
86e0 | 73 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 73 2c 69 6e 74 | subplot(2,3,2)\npl.imshow(Gs,int |
8700 | 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( |
8720 | 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 6c 2e 73 75 62 70 | 'OT.matrix.Sinkhorn')\n\npl.subp |
8740 | 6c 6f 74 28 32 2c 33 2c 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 67 2c 69 6e 74 65 72 70 6f | lot(2,3,3)\npl.imshow(Gg,interpo |
8760 | 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 4f 54 20 | lation='nearest')\npl.title('OT. |
8780 | 6d 61 74 72 69 78 20 47 72 6f 75 70 20 6c 61 73 73 6f 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c | matrix.Group.lasso')\n\npl.subpl |
87a0 | 6f 74 28 32 2c 33 2c 34 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 | ot(2,3,4)\not.plot.plot2D_sample |
87c0 | 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 30 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 70 6c 2e | s_mat(xs,xt,G0,c=[.5,.5,1])\npl. |
87e0 | 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 | scatter(xs[:,0],xs[:,1],c=ys,mar |
8800 | 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c | ker='+',label='Source.samples')\ |
8820 | 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 | npl.scatter(xt[:,0],xt[:,1],c=yt |
8840 | 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 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 |
8860 | 73 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 35 29 5c 6e 6f 74 2e 70 | s')\n\n\npl.subplot(2,3,5)\not.p |
8880 | 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 78 74 2c 47 73 2c | lot.plot2D_samples_mat(xs,xt,Gs, |
88a0 | 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d | c=[.5,.5,1])\npl.scatter(xs[:,0] |
88c0 | 2c 78 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 | ,xs[:,1],c=ys,marker='+',label=' |
88e0 | 53 6f 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 78 74 5b | Source.samples')\npl.scatter(xt[ |
8900 | 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 | :,0],xt[:,1],c=yt,marker='o',lab |
8920 | 65 6c 3d 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 | el='Target.samples')\n\npl.subpl |
8940 | 6f 74 28 32 2c 33 2c 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 | ot(2,3,6)\not.plot.plot2D_sample |
8960 | 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 67 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 70 6c 2e | s_mat(xs,xt,Gg,c=[.5,.5,1])\npl. |
8980 | 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 | scatter(xs[:,0],xs[:,1],c=ys,mar |
89a0 | 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c | ker='+',label='Source.samples')\ |
89c0 | 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 | npl.scatter(xt[:,0],xt[:,1],c=yt |
89e0 | 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 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 |
8a00 | 73 27 29 5c 6e 5c 6e 23 25 25 20 73 61 6d 70 6c 65 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c | s')\n\n#%%.sample.interpolation\ |
8a20 | 6e 5c 6e 78 73 74 30 3d 6e 2a 47 30 2e 64 6f 74 28 78 74 29 5c 6e 78 73 74 73 3d 6e 2a 47 73 2e | n\nxst0=n*G0.dot(xt)\nxsts=n*Gs. |
8a40 | 64 6f 74 28 78 74 29 5c 6e 78 73 74 67 3d 6e 2a 47 67 2e 64 6f 74 28 78 74 29 5c 6e 5c 6e 70 6c | dot(xt)\nxstg=n*Gg.dot(xt)\n\npl |
8a60 | 2e 66 69 67 75 72 65 28 34 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 31 29 5c 6e 5c | .figure(4)\npl.subplot(2,3,1)\n\ |
8a80 | 6e 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d | n\npl.scatter(xt[:,0],xt[:,1],c= |
8aa0 | 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 | yt,marker='o',label='Target.samp |
8ac0 | 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 30 | les',alpha=0.5)\npl.scatter(xst0 |
8ae0 | 5b 3a 2c 30 5d 2c 78 73 74 30 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c | [:,0],xst0[:,1],c=ys,marker='+', |
8b00 | 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 5c 6e 70 6c | label='Transp.samples',s=30)\npl |
8b20 | 2e 74 69 74 6c 65 28 27 49 6e 74 65 72 70 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 | .title('Interp.samples')\npl.leg |
8b40 | 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 5c | end(loc=0)\n\npl.subplot(2,3,2)\ |
8b60 | 6e 5c 6e 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c | n\n\npl.scatter(xt[:,0],xt[:,1], |
8b80 | 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 | c=yt,marker='o',label='Target.sa |
8ba0 | 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 | mples',alpha=0.5)\npl.scatter(xs |
8bc0 | 74 73 5b 3a 2c 30 5d 2c 78 73 74 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b | ts[:,0],xsts[:,1],c=ys,marker='+ |
8be0 | 27 2c 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 5c 6e | ',label='Transp.samples',s=30)\n |
8c00 | 70 6c 2e 74 69 74 6c 65 28 27 49 6e 74 65 72 70 20 73 61 6d 70 6c 65 73 20 53 69 6e 6b 68 6f 72 | pl.title('Interp.samples.Sinkhor |
8c20 | 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 33 29 5c 6e 5c 6e 70 6c 2e 73 | n')\n\npl.subplot(2,3,3)\n\npl.s |
8c40 | 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b | catter(xt[:,0],xt[:,1],c=yt,mark |
8c60 | 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c | er='o',label='Target.samples',al |
8c80 | 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 67 5b 3a 2c 30 5d 2c 78 | pha=0.5)\npl.scatter(xstg[:,0],x |
8ca0 | 73 74 67 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 | stg[:,1],c=ys,marker='+',label=' |
8cc0 | 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 | Transp.samples',s=30)\npl.title( |
8ce0 | 27 49 6e 74 65 72 70 20 73 61 6d 70 6c 65 73 20 47 72 6f 75 70 6c 61 73 73 6f 27 29 22 0a 20 20 | 'Interp.samples.Grouplasso')"... |
8d00 | 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 20 | ....],........"outputs":.[],.... |
8d20 | 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 |
8d40 | 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 2c 20 | psed":.false.......}.....}...],. |
8d60 | 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 65 63 | ..."metadata":.{....."kernelspec |
8d80 | 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 74 68 | ":.{......."display_name":."Pyth |
8da0 | 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 22 2c | on.2",........"name":."python2", |
8dc0 | 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 20 20 | ........"language":."python".... |
8de0 | 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 20 20 | .},......"language_info":.{..... |
8e00 | 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 20 0a | .."mimetype":."text/x-python",.. |
8e20 | 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 |
8e40 | 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 20 0a | hon",........"name":."python",.. |
8e60 | 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 20 0a | ......"file_extension":.".py",.. |
8e80 | 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 20 20 | ......"version":."2.7.12",...... |
8ea0 | 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 2c 20 | .."pygments_lexer":."ipython2",. |
8ec0 | 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":.{..... |
8ee0 | 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 6d 65 | ...."version":.2,.........."name |
8f00 | 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 0a 7d | ":."ipython".......}.....}...}.} |
8f20 | 50 4b 03 04 14 00 00 00 00 00 b7 82 e3 4a 5d 2a 4c 62 15 0a 00 00 15 0a 00 00 24 00 00 00 61 75 | PK...........J]*Lb........$...au |
8f40 | 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 63 6f 6d 70 75 74 65 5f 65 6d 64 2e 69 70 79 | to_examples/plot_compute_emd.ipy |
8f60 | 6e 62 7b 0a 20 20 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 | nb{..."nbformat_minor":.0,...."n |
8f80 | 62 66 6f 72 6d 61 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 | bformat":.4,...."cells":.[.....{ |
8fa0 | 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 20 | ......."execution_count":.null,. |
8fc0 | 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 20 | ......."cell_type":."code",..... |
8fe0 | 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 |
9000 | 6c 69 62 20 69 6e 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 | lib.inline".......],........"out |
9020 | 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 0a | puts":.[],........"metadata":.{. |
9040 | 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...... |
9060 | 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 3a | .}.....},......{......."source": |
9080 | 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 |
90a0 | 70 6f 72 74 5c 6e 5c 6e 5c 6e 40 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 5c 6e 5c 6e 22 | port\n\n\n@author:.rflamary\n\n" |
90c0 | 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 22 6d | .......],........"cell_type":."m |
90e0 | 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 7d 0a | arkdown",........"metadata":.{}. |
9100 | 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 5f 63 | ....},......{......."execution_c |
9120 | 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 22 3a | ount":.null,........"cell_type": |
9140 | 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 20 20 | ."code",........"source":.[..... |
9160 | 20 20 20 20 22 69 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 | ...."import.numpy.as.np\nimport. |
9180 | 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 6d 70 6f 72 74 20 6f | matplotlib.pylab.as.pl\nimport.o |
91a0 | 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 67 65 74 5f 31 | t\nfrom.ot.datasets.import.get_1 |
91c0 | 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 5c 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 | D_gauss.as.gauss\n\n\n#%%.parame |
91e0 | 74 65 72 73 5c 6e 5c 6e 6e 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 5c 6e 6e 5f 74 61 72 67 65 | ters\n\nn=100.#.nb.bins\nn_targe |
9200 | 74 3d 35 30 20 23 20 6e 62 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e | t=50.#.nb.target.distributions\n |
9220 | 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 3d 6e 70 2e 61 72 61 6e 67 65 | \n\n#.bin.positions\nx=np.arange |
9240 | 28 6e 2c 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 6c 73 74 5f 6d 3d 6e 70 | (n,dtype=np.float64)\n\nlst_m=np |
9260 | 2e 6c 69 6e 73 70 61 63 65 28 32 30 2c 39 30 2c 6e 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 23 20 47 | .linspace(20,90,n_target)\n\n#.G |
9280 | 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 3d 67 61 75 73 73 28 6e | aussian.distributions\na=gauss(n |
92a0 | 2c 6d 3d 32 30 2c 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 5c 6e | ,m=20,s=5).#.m=.mean,.s=.std\n\n |
92c0 | 42 3d 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 6e 5f 74 61 72 67 65 74 29 29 5c 6e 5c 6e 66 6f 72 20 | B=np.zeros((n,n_target))\n\nfor. |
92e0 | 69 2c 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 5b | i,m.in.enumerate(lst_m):\n....B[ |
9300 | 3a 2c 69 5d 3d 67 61 75 73 73 28 6e 2c 6d 3d 6d 2c 73 3d 35 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 | :,i]=gauss(n,m=m,s=5)\n\n#.loss. |
9320 | 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 4d 3d 6f 74 2e 64 | matrix.and.normalization\nM=ot.d |
9340 | 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 2c 78 2e 72 65 73 68 61 70 65 28 28 | ist(x.reshape((n,1)),x.reshape(( |
9360 | 6e 2c 31 29 29 2c 27 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e | n,1)),'euclidean')\nM/=M.max()\n |
9380 | 4d 32 3d 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 2c 78 2e 72 65 | M2=ot.dist(x.reshape((n,1)),x.re |
93a0 | 73 68 61 70 65 28 28 6e 2c 31 29 29 2c 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 32 2f | shape((n,1)),'sqeuclidean')\nM2/ |
93c0 | 3d 4d 32 2e 6d 61 78 28 29 5c 6e 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 62 75 | =M2.max()\n#%%.plot.the.distribu |
93e0 | 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f | tions\n\npl.figure(1)\npl.subplo |
9400 | 74 28 32 2c 31 2c 31 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 61 2c 27 62 27 2c 6c 61 62 65 6c 3d | t(2,1,1)\npl.plot(x,a,'b',label= |
9420 | 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 74 69 74 6c 65 | 'Source.distribution')\npl.title |
9440 | 28 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 73 75 62 70 | ('Source.distribution')\npl.subp |
9460 | 6c 6f 74 28 32 2c 31 2c 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 42 2c 6c 61 62 65 6c 3d 27 54 | lot(2,1,2)\npl.plot(x,B,label='T |
9480 | 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 | arget.distributions')\npl.title( |
94a0 | 27 54 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 23 25 25 20 43 | 'Target.distributions')\n\n#%%.C |
94c0 | 6f 6d 70 75 74 65 20 61 6e 64 20 70 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e | ompute.and.plot.distributions.an |
94e0 | 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 5c 6e 64 5f 65 6d 64 3d 6f 74 2e 65 6d 64 32 28 61 | d.loss.matrix\n\nd_emd=ot.emd2(a |
9500 | 2c 42 2c 4d 29 20 23 20 64 69 72 65 63 74 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 45 4d | ,B,M).#.direct.computation.of.EM |
9520 | 44 5c 6e 64 5f 65 6d 64 32 3d 6f 74 2e 65 6d 64 32 28 61 2c 42 2c 4d 32 29 20 20 23 20 64 69 72 | D\nd_emd2=ot.emd2(a,B,M2)..#.dir |
9540 | 65 63 74 20 63 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 | ect.computation.of.EMD.with.loss |
9560 | 20 4d 33 5c 6e 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 | .M3\n\n\npl.figure(2)\npl.plot(d |
9580 | 5f 65 6d 64 2c 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 | _emd,label='Euclidean.EMD')\npl. |
95a0 | 70 6c 6f 74 28 64 5f 65 6d 64 32 2c 6c 61 62 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 | plot(d_emd2,label='Squared.Eucli |
95c0 | 64 65 61 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 | dean.EMD')\npl.title('EMD.distan |
95e0 | 63 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e 23 25 25 5c 6e 72 65 67 3d 31 | ces')\npl.legend()\n\n#%%\nreg=1 |
9600 | 65 2d 32 5c 6e 64 5f 73 69 6e 6b 68 6f 72 6e 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 42 2c | e-2\nd_sinkhorn=ot.sinkhorn(a,B, |
9620 | 4d 2c 72 65 67 29 5c 6e 64 5f 73 69 6e 6b 68 6f 72 6e 32 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 | M,reg)\nd_sinkhorn2=ot.sinkhorn( |
9640 | 61 2c 42 2c 4d 32 2c 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 | a,B,M2,reg)\n\npl.figure(2)\npl. |
9660 | 63 6c 66 28 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 65 6d 64 2c 6c 61 62 65 6c 3d 27 45 75 63 6c | clf()\npl.plot(d_emd,label='Eucl |
9680 | 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 6c 61 62 65 | idean.EMD')\npl.plot(d_emd2,labe |
96a0 | 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 70 | l='Squared.Euclidean.EMD')\npl.p |
96c0 | 6c 6f 74 28 64 5f 73 69 6e 6b 68 6f 72 6e 2c 27 2b 27 2c 6c 61 62 65 6c 3d 27 45 75 63 6c 69 64 | lot(d_sinkhorn,'+',label='Euclid |
96e0 | 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 6b 68 6f | ean.Sinkhorn')\npl.plot(d_sinkho |
9700 | 72 6e 32 2c 27 2b 27 2c 6c 61 62 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e | rn2,'+',label='Squared.Euclidean |
9720 | 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 64 69 73 74 61 | .Sinkhorn')\npl.title('EMD.dista |
9740 | 6e 63 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 | nces')\npl.legend()".......],... |
9760 | 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 20 22 6d 65 74 61 | ....."outputs":.[],........"meta |
9780 | 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 |
97a0 | 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 5d 2c 20 0a 20 20 22 6d 65 74 61 64 | lse.......}.....}...],...."metad |
97c0 | 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 20 | ata":.{....."kernelspec":.{..... |
97e0 | 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 32 22 2c 20 0a 20 | .."display_name":."Python.2",... |
9800 | 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 | ....."name":."python2",........" |
9820 | 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 | language":."python".....},...... |
9840 | 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 6d 69 6d 65 74 79 | "language_info":.{......."mimety |
9860 | 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 62 | pe":."text/x-python",........"nb |
9880 | 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 20 0a 20 20 | convert_exporter":."python",.... |
98a0 | 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 66 69 | ...."name":."python",........"fi |
98c0 | 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 20 0a 20 20 20 20 20 20 22 76 65 | le_extension":.".py",........"ve |
98e0 | 72 73 69 6f 6e 22 3a 20 22 32 2e 37 2e 31 32 22 2c 20 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e | rsion":."2.7.12",........"pygmen |
9900 | 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 63 | ts_lexer":."ipython2",........"c |
9920 | 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 76 65 72 73 | odemirror_mode":.{........."vers |
9940 | 69 6f 6e 22 3a 20 32 2c 20 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 | ion":.2,.........."name":."ipyth |
9960 | 6f 6e 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 | on".......}.....}...}.}PK....... |
9980 | 00 6a 7b 82 49 cd 14 1c 01 46 09 00 00 46 09 00 00 23 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c | .j{.I....F...F...#...auto_exampl |
99a0 | 65 73 2f 64 65 6d 6f 5f 4f 54 5f 31 44 5f 74 65 73 74 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 | es/demo_OT_1D_test.ipynb{..."nbf |
99c0 | 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 74 22 3a 20 | ormat_minor":.0,...."nbformat":. |
99e0 | 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 20 22 65 78 | 4,...."cells":.[.....{......."ex |
9a00 | 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 20 22 63 65 | ecution_count":.null,........"ce |
9a20 | 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 75 72 63 65 | ll_type":."code",........"source |
9a40 | 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 |
9a60 | 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 5b 5d 2c | ".......],........"outputs":.[], |
9a80 | 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 20 22 63 | ........"metadata":.{........."c |
9aa0 | 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 7d 2c 20 | ollapsed":.false.......}.....},. |
9ac0 | 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 20 20 20 | .....{......."source":.[........ |
9ae0 | 20 22 5c 6e 44 65 6d 6f 20 66 6f 72 20 31 44 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 | ."\nDemo.for.1D.optimal.transpor |
9b00 | 74 5c 6e 5c 6e 40 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 5c 6e 5c 6e 22 0a 20 20 20 20 | t\n\n@author:.rflamary\n\n"..... |
9b20 | 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 |
9b40 | 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":.{}.....} |
9b60 | 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" |
9b80 | 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 |
9ba0 | 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":.[........." |
9bc0 | 69 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 | import.numpy.as.np\nimport.matpl |
9be0 | 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 66 72 | otlib.pylab.as.pl\nimport.ot\nfr |
9c00 | 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 67 65 74 5f 31 44 5f 67 61 75 | om.ot.datasets.import.get_1D_gau |
9c20 | 73 73 20 61 73 20 67 61 75 73 73 5c 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c | ss.as.gauss\n\n\n#%%.parameters\ |
9c40 | 6e 5c 6e 6e 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 | n\nn=100.#.nb.bins\n\n#.bin.posi |
9c60 | 74 69 6f 6e 73 5c 6e 78 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e 70 2e 66 6c | tions\nx=np.arange(n,dtype=np.fl |
9c80 | 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 69 62 75 74 69 6f | oat64)\n\n#.Gaussian.distributio |
9ca0 | 6e 73 5c 6e 61 3d 67 61 75 73 73 28 6e 2c 6d 3d 6e 2a 2e 32 2c 73 3d 35 29 20 23 20 6d 3d 20 6d | ns\na=gauss(n,m=n*.2,s=5).#.m=.m |
9cc0 | 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 62 3d 67 61 75 73 73 28 6e 2c 6d 3d 6e 2a 2e 36 2c 73 3d | ean,.s=.std\nb=gauss(n,m=n*.6,s= |
9ce0 | 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 3d 6f 74 2e 64 69 73 74 28 | 10)\n\n#.loss.matrix\nM=ot.dist( |
9d00 | 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 2c 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 | x.reshape((n,1)),x.reshape((n,1) |
9d20 | 29 29 5c 6e 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 | ))\nM/=M.max()\n\n#%%.plot.the.d |
9d40 | 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 29 5c 6e 70 6c | istributions\n\npl.figure(1)\npl |
9d60 | 2e 70 6c 6f 74 28 78 2c 61 2c 27 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 64 69 73 74 | .plot(x,a,'b',label='Source.dist |
9d80 | 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 62 2c 27 72 27 2c 6c 61 62 65 | ribution')\npl.plot(x,b,'r',labe |
9da0 | 6c 3d 27 54 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 | l='Target.distribution')\npl.leg |
9dc0 | 65 6e 64 28 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 | end()\n\n#%%.plot.distributions. |
9de0 | 61 6e 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c | and.loss.matrix\n\npl.figure(2)\ |
9e00 | 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 4d 2c 27 43 6f 73 74 20 | not.plot.plot1D_mat(a,b,M,'Cost. |
9e20 | 6d 61 74 72 69 78 20 4d 27 29 5c 6e 5c 6e 23 25 25 20 45 4d 44 5c 6e 5c 6e 47 30 3d 6f 74 2e 65 | matrix.M')\n\n#%%.EMD\n\nG0=ot.e |
9e40 | 6d 64 28 61 2c 62 2c 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 29 5c 6e 6f 74 2e 70 6c | md(a,b,M)\n\npl.figure(3)\not.pl |
9e60 | 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 30 2c 27 4f 54 20 6d 61 74 72 69 78 20 | ot.plot1D_mat(a,b,G0,'OT.matrix. |
9e80 | 47 30 27 29 5c 6e 5c 6e 23 25 25 20 53 69 6e 6b 68 6f 72 6e 5c 6e 5c 6e 6c 61 6d 62 64 3d 31 65 | G0')\n\n#%%.Sinkhorn\n\nlambd=1e |
9ea0 | 2d 33 5c 6e 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 2c 76 | -3\nGs=ot.sinkhorn(a,b,M,lambd,v |
9ec0 | 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 6f 74 | erbose=True)\n\npl.figure(4)\not |
9ee0 | 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 73 2c 27 4f 54 20 6d 61 74 72 | .plot.plot1D_mat(a,b,Gs,'OT.matr |
9f00 | 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 23 25 25 20 53 69 6e 6b 68 6f 72 6e 5c 6e 5c | ix.Sinkhorn')\n\n#%%.Sinkhorn\n\ |
9f20 | 6e 6c 61 6d 62 64 3d 31 65 2d 34 5c 6e 47 73 73 2c 6c 6f 67 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e | nlambd=1e-4\nGss,log=ot.bregman. |
9f40 | 73 69 6e 6b 68 6f 72 6e 5f 73 74 61 62 69 6c 69 7a 65 64 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 2c | sinkhorn_stabilized(a,b,M,lambd, |
9f60 | 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 6c 6f 67 3d 54 72 75 65 29 5c 6e 47 73 73 32 2c 6c 6f 67 | verbose=True,log=True)\nGss2,log |
9f80 | 32 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 6f 72 6e 5f 73 74 61 62 69 6c 69 7a 65 64 | 2=ot.bregman.sinkhorn_stabilized |
9fa0 | 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 6c 6f 67 3d 54 72 | (a,b,M,lambd,verbose=True,log=Tr |
9fc0 | 75 65 2c 77 61 72 6d 73 74 61 72 74 3d 6c 6f 67 5b 27 77 61 72 6d 73 74 61 72 74 27 5d 29 5c 6e | ue,warmstart=log['warmstart'])\n |
9fe0 | 5c 6e 70 6c 2e 66 69 67 75 72 65 28 35 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d | \npl.figure(5)\not.plot.plot1D_m |
a000 | 61 74 28 61 2c 62 2c 47 73 73 2c 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 20 73 | at(a,b,Gss,'OT.matrix.Sinkhorn.s |
a020 | 74 61 62 69 6c 69 7a 65 64 27 29 5c 6e 5c 6e 23 25 25 20 53 69 6e 6b 68 6f 72 6e 5c 6e 5c 6e 6c | tabilized')\n\n#%%.Sinkhorn\n\nl |
a040 | 61 6d 62 64 3d 31 65 2d 31 31 5c 6e 47 73 73 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 | ambd=1e-11\nGss=ot.bregman.sinkh |
a060 | 6f 72 6e 5f 65 70 73 69 6c 6f 6e 5f 73 63 61 6c 69 6e 67 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 2c | orn_epsilon_scaling(a,b,M,lambd, |
a080 | 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 35 29 5c 6e 6f | verbose=True)\n\npl.figure(5)\no |
a0a0 | 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 73 73 2c 27 4f 54 20 6d 61 | t.plot.plot1D_mat(a,b,Gss,'OT.ma |
a0c0 | 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 20 73 74 61 62 69 6c 69 7a 65 64 27 29 22 0a 20 20 20 20 | trix.Sinkhorn.stabilized')"..... |
a0e0 | 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 20 20 20 | ..],........"outputs":.[],...... |
a100 | 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 |
a120 | 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 2c 20 0a 20 | ed":.false.......}.....}...],... |
a140 | 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 3a | ."metadata":.{....."kernelspec": |
a160 | 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 6e | .{......."display_name":."Python |
a180 | 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 22 2c 20 0a | .2",........"name":."python2",.. |
a1a0 | 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 20 20 20 7d | ......"language":."python".....} |
a1c0 | 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 20 20 20 20 | ,......"language_info":.{....... |
a1e0 | 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 20 0a 20 20 | "mimetype":."text/x-python",.... |
a200 | 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 6f | ...."nbconvert_exporter":."pytho |
a220 | 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 20 0a 20 20 | n",........"name":."python",.... |
a240 | 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 20 0a 20 20 | ...."file_extension":.".py",.... |
a260 | 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 20 20 20 20 | ...."version":."2.7.12",........ |
a280 | 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 2c 20 0a 20 | "pygments_lexer":."ipython2",... |
a2a0 | 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 20 20 | ....."codemirror_mode":.{....... |
a2c0 | 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 6d 65 22 3a | .."version":.2,.........."name": |
a2e0 | 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 0a 7d 50 4b | ."ipython".......}.....}...}.}PK |
a300 | 03 04 14 00 00 00 00 00 86 7b 82 49 4f 22 f2 c8 74 0e 00 00 74 0e 00 00 2a 00 00 00 61 75 74 6f | .........{.IO"..t...t...*...auto |
a320 | 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 | _examples/plot_OTDA_color_images |
a340 | 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 2c 20 0a | .ipynb{..."nbformat_minor":.0,.. |
a360 | 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 | .."nbformat":.4,...."cells":.[.. |
a380 | 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 75 | ...{......."execution_count":.nu |
a3a0 | 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 20 | ll,........"cell_type":."code",. |
a3c0 | 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 |
a3e0 | 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 | plotlib.inline".......],........ |
a400 | 22 6f 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 | "outputs":.[],........"metadata" |
a420 | 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.. |
a440 | 20 20 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 | .....}.....},......{......."sour |
a460 | 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ce":.[........."\n============== |
a480 | 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 | ================================ |
a4a0 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 | ==========\nOT.for.domain.adapta |
a4c0 | 74 69 6f 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 | tion.with.image.color.adaptation |
a4e0 | 20 5b 36 5d 5c 6e 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 | .[6]\n========================== |
a500 | 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 5c 6e | ==============================\n |
a520 | 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 20 | \n[6].Ferradans,.S.,.Papadakis,. |
a540 | 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 32 | N.,.Peyre,.G.,.&.Aujol,.J..F..(2 |
a560 | 30 31 34 29 2e 20 52 65 67 75 6c 61 72 69 7a 65 64 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d | 014)..Regularized.discrete.optim |
a580 | 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 6f 6e 20 49 6d | al.transport..SIAM.Journal.on.Im |
a5a0 | 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 38 32 2e | aging.Sciences,.7(3),.1853-1882. |
a5c0 | 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 65 | \n\n".......],........"cell_type |
a5e0 | 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 22 | ":."markdown",........"metadata" |
a600 | 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 74 | :.{}.....},......{......."execut |
a620 | 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 74 | ion_count":.null,........"cell_t |
a640 | 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 5b | ype":."code",........"source":.[ |
a660 | 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d | ........."import.numpy.as.np\nim |
a680 | 70 6f 72 74 20 73 63 69 70 79 2e 6e 64 69 6d 61 67 65 20 61 73 20 73 70 69 5c 6e 69 6d 70 6f 72 | port.scipy.ndimage.as.spi\nimpor |
a6a0 | 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 6d 70 6f 72 74 | t.matplotlib.pylab.as.pl\nimport |
a6c0 | 20 6f 74 5c 6e 5c 6e 5c 6e 23 25 25 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 5c 6e 49 | .ot\n\n\n#%%.Loading.images\n\nI |
a6e0 | 31 3d 73 70 69 2e 69 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 | 1=spi.imread('../data/ocean_day. |
a700 | 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 5c 6e 49 32 | jpg').astype(np.float64)/256\nI2 |
a720 | 3d 73 70 69 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 65 | =spi.imread('../data/ocean_sunse |
a740 | 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 2f 32 35 36 5c 6e | t.jpg').astype(np.float64)/256\n |
a760 | 5c 6e 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 | \n#%%.Plot.images\n\npl.figure(1 |
a780 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f | )\n\npl.subplot(1,2,1)\npl.imsho |
a7a0 | 77 28 49 31 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 | w(I1)\npl.title('Image.1')\n\npl |
a7c0 | 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e | .subplot(1,2,2)\npl.imshow(I2)\n |
a7e0 | 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 | pl.title('Image.2')\n\npl.show() |
a800 | 5c 6e 5c 6e 23 25 25 20 49 6d 61 67 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 61 6e 64 20 64 61 74 | \n\n#%%.Image.conversion.and.dat |
a820 | 61 73 65 74 20 67 65 6e 65 72 61 74 69 6f 6e 5c 6e 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 49 29 | aset.generation\n\ndef.im2mat(I) |
a840 | 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 65 20 | :\n....\"\"\"Converts.and.image. |
a860 | 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 5c 22 | to.matrix.(one.pixel.per.line)\" |
a880 | 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 73 68 | \"\"\n....return.I.reshape((I.sh |
a8a0 | 61 70 65 5b 30 5d 2a 49 2e 73 68 61 70 65 5b 31 5d 2c 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e | ape[0]*I.shape[1],I.shape[2]))\n |
a8c0 | 5c 6e 64 65 66 20 6d 61 74 32 69 6d 28 58 2c 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 | \ndef.mat2im(X,shape):\n....\"\" |
a8e0 | 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 20 69 | \"Converts.back.a.matrix.to.an.i |
a900 | 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 70 65 | mage\"\"\"\n....return.X.reshape |
a920 | 28 73 68 61 70 65 29 5c 6e 5c 6e 58 31 3d 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 3d 69 6d 32 | (shape)\n\nX1=im2mat(I1)\nX2=im2 |
a940 | 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 |
a960 | 62 3d 31 30 30 30 5c 6e 69 64 78 31 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 58 | b=1000\nidx1=np.random.randint(X |
a980 | 31 2e 73 68 61 70 65 5b 30 5d 2c 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 69 64 78 32 3d 6e 70 2e | 1.shape[0],size=(nb,))\nidx2=np. |
a9a0 | 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 73 69 7a 65 3d | random.randint(X2.shape[0],size= |
a9c0 | 28 6e 62 2c 29 29 5c 6e 5c 6e 78 73 3d 58 31 5b 69 64 78 31 2c 3a 5d 5c 6e 78 74 3d 58 32 5b 69 | (nb,))\n\nxs=X1[idx1,:]\nxt=X2[i |
a9e0 | 64 78 32 2c 3a 5d 5c 6e 5c 6e 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 65 20 64 69 73 74 72 69 62 | dx2,:]\n\n#%%.Plot.image.distrib |
aa00 | 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 35 29 29 5c | utions\n\n\npl.figure(2,(10,5))\ |
aa20 | 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 | n\npl.subplot(1,2,1)\npl.scatter |
aa40 | 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 32 5d 2c 63 3d 78 73 29 5c 6e 70 6c 2e 61 78 69 73 28 | (xs[:,0],xs[:,2],c=xs)\npl.axis( |
aa60 | 5b 30 2c 31 2c 30 2c 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 | [0,1,0,1])\npl.xlabel('Red')\npl |
aa80 | 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 67 65 | .ylabel('Blue')\npl.title('Image |
aaa0 | 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 5c 6e 23 70 6c 2e 69 | .1')\n\npl.subplot(1,2,2)\n#pl.i |
aac0 | 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 | mshow(I2)\npl.scatter(xt[:,0],xt |
aae0 | 5b 3a 2c 32 5d 2c 63 3d 78 74 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 5c | [:,2],c=xt)\npl.axis([0,1,0,1])\ |
ab00 | 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 28 27 42 6c | npl.xlabel('Red')\npl.ylabel('Bl |
ab20 | 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 5c 6e 70 6c 2e | ue')\npl.title('Image.2')\n\npl. |
ab40 | 73 68 6f 77 28 29 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 | show()\n\n\n\n#%%.domain.adaptat |
ab60 | 69 6f 6e 20 62 65 74 77 65 65 6e 20 69 6d 61 67 65 73 5c 6e 5c 6e 23 20 4c 50 20 70 72 6f 62 6c | ion.between.images\n\n#.LP.probl |
ab80 | 65 6d 5c 6e 64 61 5f 65 6d 64 3d 6f 74 2e 64 61 2e 4f 54 44 41 28 29 20 20 20 20 20 23 20 69 6e | em\nda_emd=ot.da.OTDA().....#.in |
aba0 | 69 74 20 63 6c 61 73 73 5c 6e 64 61 5f 65 6d 64 2e 66 69 74 28 78 73 2c 78 74 29 20 20 20 20 20 | it.class\nda_emd.fit(xs,xt)..... |
abc0 | 20 20 23 20 66 69 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 23 20 73 69 6e | ..#.fit.distributions\n\n\n#.sin |
abe0 | 6b 68 6f 72 6e 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 6c 61 6d 62 64 3d 31 65 2d 31 | khorn.regularization\nlambd=1e-1 |
ac00 | 5c 6e 64 61 5f 65 6e 74 72 6f 70 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 73 69 6e 6b 68 6f 72 6e 28 | \nda_entrop=ot.da.OTDA_sinkhorn( |
ac20 | 29 5c 6e 64 61 5f 65 6e 74 72 6f 70 2e 66 69 74 28 78 73 2c 78 74 2c 72 65 67 3d 6c 61 6d 62 64 | )\nda_entrop.fit(xs,xt,reg=lambd |
ac40 | 29 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 70 72 65 64 69 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 | )\n\n\n\n#%%.prediction.between. |
ac60 | 69 6d 61 67 65 73 20 28 75 73 69 6e 67 20 6f 75 74 20 6f 66 20 73 61 6d 70 6c 65 20 70 72 65 64 | images.(using.out.of.sample.pred |
ac80 | 69 63 74 69 6f 6e 20 61 73 20 69 6e 20 5b 36 5d 29 5c 6e 5c 6e 58 31 74 3d 64 61 5f 65 6d 64 2e | iction.as.in.[6])\n\nX1t=da_emd. |
aca0 | 70 72 65 64 69 63 74 28 58 31 29 5c 6e 58 32 74 3d 64 61 5f 65 6d 64 2e 70 72 65 64 69 63 74 28 | predict(X1)\nX2t=da_emd.predict( |
acc0 | 58 32 2c 2d 31 29 5c 6e 5c 6e 5c 6e 58 31 74 65 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 | X2,-1)\n\n\nX1te=da_entrop.predi |
ace0 | 63 74 28 58 31 29 5c 6e 58 32 74 65 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 28 58 | ct(X1)\nX2te=da_entrop.predict(X |
ad00 | 32 2c 2d 31 29 5c 6e 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 | 2,-1)\n\n\ndef.minmax(I):\n....r |
ad20 | 65 74 75 72 6e 20 6e 70 2e 6d 69 6e 69 6d 75 6d 28 6e 70 2e 6d 61 78 69 6d 75 6d 28 49 2c 30 29 | eturn.np.minimum(np.maximum(I,0) |
ad40 | 2c 31 29 5c 6e 5c 6e 49 31 74 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 2c 49 31 2e | ,1)\n\nI1t=minmax(mat2im(X1t,I1. |
ad60 | 73 68 61 70 65 29 29 5c 6e 49 32 74 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 32 74 2c 49 | shape))\nI2t=minmax(mat2im(X2t,I |
ad80 | 32 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 49 31 74 65 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 | 2.shape))\n\nI1te=minmax(mat2im( |
ada0 | 58 31 74 65 2c 49 31 2e 73 68 61 70 65 29 29 5c 6e 49 32 74 65 3d 6d 69 6e 6d 61 78 28 6d 61 74 | X1te,I1.shape))\nI2te=minmax(mat |
adc0 | 32 69 6d 28 58 32 74 65 2c 49 32 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 | 2im(X2te,I2.shape))\n\n#%%.plot. |
ade0 | 61 6c 6c 20 69 6d 61 67 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 38 29 | all.images\n\npl.figure(2,(10,8) |
ae00 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 31 29 5c 6e 5c 6e 70 6c 2e 69 6d 73 | )\n\npl.subplot(2,3,1)\n\npl.ims |
ae20 | 68 6f 77 28 49 31 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 | how(I1)\npl.title('Image.1')\n\n |
ae40 | 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 | pl.subplot(2,3,2)\npl.imshow(I1t |
ae60 | 29 5c 6e 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 | )\npl.title('Image.1.Adapt')\n\n |
ae80 | 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 | \npl.subplot(2,3,3)\npl.imshow(I |
aea0 | 31 74 65 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 20 41 64 61 70 74 20 28 72 | 1te)\npl.title('Image.1.Adapt.(r |
aec0 | 65 67 29 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 5c 6e 5c 6e 70 6c | eg)')\n\npl.subplot(2,3,4)\n\npl |
aee0 | 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 | .imshow(I2)\npl.title('Image.2') |
af00 | 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 | \n\npl.subplot(2,3,5)\npl.imshow |
af20 | 28 49 32 74 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 27 29 | (I2t)\npl.title('Image.2.Adapt') |
af40 | 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 36 29 5c 6e 70 6c 2e 69 6d 73 68 | \n\n\npl.subplot(2,3,6)\npl.imsh |
af60 | 6f 77 28 49 32 74 65 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 | ow(I2te)\npl.title('Image.2.Adap |
af80 | 74 20 28 72 65 67 29 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 2c | t.(reg)')\n\npl.show()".......], |
afa0 | 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 20 22 6d | ........"outputs":.[],........"m |
afc0 | 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": |
afe0 | 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 5d 2c 20 0a 20 20 22 6d 65 | .false.......}.....}...],...."me |
b000 | 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":.{.. |
b020 | 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 32 22 2c | ....."display_name":."Python.2", |
b040 | 20 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 | ........"name":."python2",...... |
b060 | 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 2c 20 0a 20 | .."language":."python".....},... |
b080 | 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 6d 69 6d | ..."language_info":.{......."mim |
b0a0 | 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 | etype":."text/x-python",........ |
b0c0 | 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 20 | "nbconvert_exporter":."python",. |
b0e0 | 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 | ......."name":."python",........ |
b100 | 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 20 0a 20 20 20 20 20 20 | "file_extension":.".py",........ |
b120 | 22 76 65 72 73 69 6f 6e 22 3a 20 22 32 2e 37 2e 31 32 22 2c 20 0a 20 20 20 20 20 20 22 70 79 67 | "version":."2.7.12",........"pyg |
b140 | 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 | ments_lexer":."ipython2",....... |
b160 | 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 22 76 | ."codemirror_mode":.{........."v |
b180 | 65 72 73 69 6f 6e 22 3a 20 32 2c 20 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 | ersion":.2,.........."name":."ip |
b1a0 | 79 74 68 6f 6e 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 | ython".......}.....}...}.}PK.... |
b1c0 | 00 00 00 00 d7 7b 82 49 c4 9e 28 9b ea 11 00 00 ea 11 00 00 32 00 00 00 61 75 74 6f 5f 65 78 61 | .....{.I..(.........2...auto_exa |
b1e0 | 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f 63 6f 6c 6f 72 5f 69 6d | mples/plot_OTDA_mapping_color_im |
b200 | 61 67 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 | ages.ipynb{..."nbformat_minor":. |
b220 | 30 2c 20 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 22 3a | 0,...."nbformat":.4,...."cells": |
b240 | 20 5b 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" |
b260 | 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 |
b280 | 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":.[........." |
b2a0 | 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 2c 20 0a 20 20 | %matplotlib.inline".......],.... |
b2c0 | 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 20 22 6d 65 74 61 64 | ...."outputs":.[],........"metad |
b2e0 | 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 |
b300 | 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 20 20 20 20 20 20 22 | se.......}.....},......{......." |
b320 | 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 3d 3d 3d 3d | source":.[........."\n========== |
b340 | 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 | ================================ |
b360 | 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 | ================================ |
b380 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 | ==========\nOT.for.domain.adapta |
b3a0 | 74 69 6f 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 | tion.with.image.color.adaptation |
b3c0 | 20 5b 36 5d 20 77 69 74 68 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 5b 38 5d | .[6].with.mapping.estimation.[8] |
b3e0 | 5c 6e 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 | \n============================== |
b400 | 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 | ================================ |
b420 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 5c 6e 5b 36 5d 20 46 65 | ======================\n\n[6].Fe |
b440 | 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 2e 2c 20 50 65 79 72 | rradans,.S.,.Papadakis,.N.,.Peyr |
b460 | 65 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 2e 20 28 32 30 31 34 29 2e 20 52 65 | e,.G.,.&.Aujol,.J..F..(2014)..Re |
b480 | 67 75 6c 61 72 69 7a 65 64 5c 6e 20 20 20 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 | gularized\n....discrete.optimal. |
b4a0 | 74 72 61 6e 73 70 6f 72 74 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 | transport..SIAM.Journal.on.Imagi |
b4c0 | 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 38 32 2e 5c 6e 5b | ng.Sciences,.7(3),.1853-1882.\n[ |
b4e0 | 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 52 2e 20 46 6c 61 6d | 8].M..Perrot,.N..Courty,.R..Flam |
b500 | 61 72 79 2c 20 41 2e 20 48 61 62 72 61 72 64 2c 20 5c 22 4d 61 70 70 69 6e 67 20 65 73 74 69 6d | ary,.A..Habrard,.\"Mapping.estim |
b520 | 61 74 69 6f 6e 20 66 6f 72 5c 6e 20 20 20 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 | ation.for\n....discrete.optimal. |
b540 | 74 72 61 6e 73 70 6f 72 74 5c 22 2c 20 4e 65 75 72 61 6c 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 | transport\",.Neural.Information. |
b560 | 50 72 6f 63 65 73 73 69 6e 67 20 53 79 73 74 65 6d 73 20 28 4e 49 50 53 29 2c 20 32 30 31 36 2e | Processing.Systems.(NIPS),.2016. |
b580 | 5c 6e 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 | \n\n\n".......],........"cell_ty |
b5a0 | 70 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 | pe":."markdown",........"metadat |
b5c0 | 61 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 | a":.{}.....},......{......."exec |
b5e0 | 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 20 22 63 65 6c 6c | ution_count":.null,........"cell |
b600 | 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 75 72 63 65 22 3a | _type":."code",........"source": |
b620 | 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e | .[........."import.numpy.as.np\n |
b640 | 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 69 5c 6e 69 6d 70 | import.scipy.ndimage.as.spi\nimp |
b660 | 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 6d 70 6f | ort.matplotlib.pylab.as.pl\nimpo |
b680 | 72 74 20 6f 74 5c 6e 5c 6e 5c 6e 23 25 25 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 5c | rt.ot\n\n\n#%%.Loading.images\n\ |
b6a0 | 6e 49 31 3d 73 70 69 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 | nI1=spi.imread('../data/ocean_da |
b6c0 | 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 2f 32 35 36 5c 6e | y.jpg').astype(np.float64)/256\n |
b6e0 | 49 32 3d 73 70 69 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 | I2=spi.imread('../data/ocean_sun |
b700 | 73 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 2f 32 35 36 | set.jpg').astype(np.float64)/256 |
b720 | 5c 6e 5c 6e 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 65 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 | \n\n#%%.Plot.images\n\npl.figure |
b740 | 28 31 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 70 6c 2e 69 6d 73 | (1)\n\npl.subplot(1,2,1)\npl.ims |
b760 | 68 6f 77 28 49 31 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 | how(I1)\npl.title('Image.1')\n\n |
b780 | 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 | pl.subplot(1,2,2)\npl.imshow(I2) |
b7a0 | 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 | \npl.title('Image.2')\n\npl.show |
b7c0 | 28 29 5c 6e 5c 6e 23 25 25 20 49 6d 61 67 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 61 6e 64 20 64 | ()\n\n#%%.Image.conversion.and.d |
b7e0 | 61 74 61 73 65 74 20 67 65 6e 65 72 61 74 69 6f 6e 5c 6e 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 | ataset.generation\n\ndef.im2mat( |
b800 | 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 |
b820 | 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) |
b840 | 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. |
b860 | 73 68 61 70 65 5b 30 5d 2a 49 2e 73 68 61 70 65 5b 31 5d 2c 49 2e 73 68 61 70 65 5b 32 5d 29 29 | shape[0]*I.shape[1],I.shape[2])) |
b880 | 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 69 6d 28 58 2c 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c 22 | \n\ndef.mat2im(X,shape):\n....\" |
b8a0 | 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 |
b8c0 | 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 |
b8e0 | 70 65 28 73 68 61 70 65 29 5c 6e 5c 6e 58 31 3d 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 3d 69 | pe(shape)\n\nX1=im2mat(I1)\nX2=i |
b900 | 6d 32 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 | m2mat(I2)\n\n#.training.samples\ |
b920 | 6e 6e 62 3d 31 30 30 30 5c 6e 69 64 78 31 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 | nnb=1000\nidx1=np.random.randint |
b940 | 28 58 31 2e 73 68 61 70 65 5b 30 5d 2c 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 69 64 78 32 3d 6e | (X1.shape[0],size=(nb,))\nidx2=n |
b960 | 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 73 69 7a | p.random.randint(X2.shape[0],siz |
b980 | 65 3d 28 6e 62 2c 29 29 5c 6e 5c 6e 78 73 3d 58 31 5b 69 64 78 31 2c 3a 5d 5c 6e 78 74 3d 58 32 | e=(nb,))\n\nxs=X1[idx1,:]\nxt=X2 |
b9a0 | 5b 69 64 78 32 2c 3a 5d 5c 6e 5c 6e 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 65 20 64 69 73 74 72 | [idx2,:]\n\n#%%.Plot.image.distr |
b9c0 | 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 35 29 | ibutions\n\n\npl.figure(2,(10,5) |
b9e0 | 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 74 | )\n\npl.subplot(1,2,1)\npl.scatt |
ba00 | 65 72 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 32 5d 2c 63 3d 78 73 29 5c 6e 70 6c 2e 61 78 69 | er(xs[:,0],xs[:,2],c=xs)\npl.axi |
ba20 | 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 5c 6e | s([0,1,0,1])\npl.xlabel('Red')\n |
ba40 | 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 |
ba60 | 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 5c 6e 23 70 6c | ge.1')\n\npl.subplot(1,2,2)\n#pl |
ba80 | 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c | .imshow(I2)\npl.scatter(xt[:,0], |
baa0 | 78 74 5b 3a 2c 32 5d 2c 63 3d 78 74 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d | xt[:,2],c=xt)\npl.axis([0,1,0,1] |
bac0 | 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 28 27 | )\npl.xlabel('Red')\npl.ylabel(' |
bae0 | 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 5c 6e 70 | Blue')\npl.title('Image.2')\n\np |
bb00 | 6c 2e 73 68 6f 77 28 29 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 | l.show()\n\n\n\n#%%.domain.adapt |
bb20 | 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 69 6d 61 67 65 73 5c 6e 64 65 66 20 6d 69 6e 6d 61 78 | ation.between.images\ndef.minmax |
bb40 | 28 49 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 6d 69 6e 69 6d 75 6d 28 6e 70 2e 6d | (I):\n....return.np.minimum(np.m |
bb60 | 61 78 69 6d 75 6d 28 49 2c 30 29 2c 31 29 5c 6e 23 20 4c 50 20 70 72 6f 62 6c 65 6d 5c 6e 64 61 | aximum(I,0),1)\n#.LP.problem\nda |
bb80 | 5f 65 6d 64 3d 6f 74 2e 64 61 2e 4f 54 44 41 28 29 20 20 20 20 20 23 20 69 6e 69 74 20 63 6c 61 | _emd=ot.da.OTDA().....#.init.cla |
bba0 | 73 73 5c 6e 64 61 5f 65 6d 64 2e 66 69 74 28 78 73 2c 78 74 29 20 20 20 20 20 20 20 23 20 66 69 | ss\nda_emd.fit(xs,xt).......#.fi |
bbc0 | 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 58 31 74 3d 64 61 5f 65 6d 64 2e 70 72 | t.distributions\n\nX1t=da_emd.pr |
bbe0 | 65 64 69 63 74 28 58 31 29 20 20 23 20 6f 75 74 20 6f 66 20 73 61 6d 70 6c 65 5c 6e 49 31 74 3d | edict(X1)..#.out.of.sample\nI1t= |
bc00 | 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 2c 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e | minmax(mat2im(X1t,I1.shape))\n\n |
bc20 | 23 20 73 69 6e 6b 68 6f 72 6e 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 6c 61 6d 62 64 | #.sinkhorn.regularization\nlambd |
bc40 | 3d 31 65 2d 31 5c 6e 64 61 5f 65 6e 74 72 6f 70 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 73 69 6e 6b | =1e-1\nda_entrop=ot.da.OTDA_sink |
bc60 | 68 6f 72 6e 28 29 5c 6e 64 61 5f 65 6e 74 72 6f 70 2e 66 69 74 28 78 73 2c 78 74 2c 72 65 67 3d | horn()\nda_entrop.fit(xs,xt,reg= |
bc80 | 6c 61 6d 62 64 29 5c 6e 5c 6e 58 31 74 65 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 | lambd)\n\nX1te=da_entrop.predict |
bca0 | 28 58 31 29 5c 6e 49 31 74 65 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 65 2c 49 31 | (X1)\nI1te=minmax(mat2im(X1te,I1 |
bcc0 | 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 23 20 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 20 65 73 74 | .shape))\n\n#.linear.mapping.est |
bce0 | 69 6d 61 74 69 6f 6e 5c 6e 65 74 61 3d 31 65 2d 38 20 20 20 23 20 71 75 61 64 72 61 74 69 63 20 | imation\neta=1e-8...#.quadratic. |
bd00 | 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 66 6f 72 20 72 65 67 72 65 73 73 69 6f 6e 5c 6e 6d | regularization.for.regression\nm |
bd20 | 75 3d 31 65 30 20 20 20 20 20 23 20 77 65 69 67 68 74 20 6f 66 20 74 68 65 20 4f 54 20 6c 69 6e | u=1e0.....#.weight.of.the.OT.lin |
bd40 | 65 61 72 20 74 65 72 6d 5c 6e 62 69 61 73 3d 54 72 75 65 20 20 23 20 65 73 74 69 6d 61 74 65 20 | ear.term\nbias=True..#.estimate. |
bd60 | 61 20 62 69 61 73 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f | a.bias\n\not_mapping=ot.da.OTDA_ |
bd80 | 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 28 29 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 2e 66 69 74 | mapping_linear()\not_mapping.fit |
bda0 | 28 78 73 2c 78 74 2c 6d 75 3d 6d 75 2c 65 74 61 3d 65 74 61 2c 62 69 61 73 3d 62 69 61 73 2c 6e | (xs,xt,mu=mu,eta=eta,bias=bias,n |
bdc0 | 75 6d 49 74 65 72 6d 61 78 20 3d 20 32 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e | umItermax.=.20,verbose=True)\n\n |
bde0 | 58 31 74 6c 3d 6f 74 5f 6d 61 70 70 69 6e 67 2e 70 72 65 64 69 63 74 28 58 31 29 20 23 20 75 73 | X1tl=ot_mapping.predict(X1).#.us |
be00 | 65 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 6d 61 70 70 69 6e 67 5c 6e 49 31 74 6c 3d 6d 69 | e.the.estimated.mapping\nI1tl=mi |
be20 | 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 6c 2c 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 23 | nmax(mat2im(X1tl,I1.shape))\n\n# |
be40 | 20 6e 6f 6e 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 5c 6e 65 | .nonlinear.mapping.estimation\ne |
be60 | 74 61 3d 31 65 2d 32 20 20 20 23 20 71 75 61 64 72 61 74 69 63 20 72 65 67 75 6c 61 72 69 7a 61 | ta=1e-2...#.quadratic.regulariza |
be80 | 74 69 6f 6e 20 66 6f 72 20 72 65 67 72 65 73 73 69 6f 6e 5c 6e 6d 75 3d 31 65 30 20 20 20 20 20 | tion.for.regression\nmu=1e0..... |
bea0 | 23 20 77 65 69 67 68 74 20 6f 66 20 74 68 65 20 4f 54 20 6c 69 6e 65 61 72 20 74 65 72 6d 5c 6e | #.weight.of.the.OT.linear.term\n |
bec0 | 62 69 61 73 3d 46 61 6c 73 65 20 20 23 20 65 73 74 69 6d 61 74 65 20 61 20 62 69 61 73 5c 6e 73 | bias=False..#.estimate.a.bias\ns |
bee0 | 69 67 6d 61 3d 31 20 20 20 20 23 20 73 69 67 6d 61 20 62 61 6e 64 77 69 64 74 68 20 66 6f 74 20 | igma=1....#.sigma.bandwidth.fot. |
bf00 | 67 61 75 73 73 69 61 6e 20 6b 65 72 6e 65 6c 5c 6e 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f | gaussian.kernel\n\n\not_mapping_ |
bf20 | 6b 65 72 6e 65 6c 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c | kernel=ot.da.OTDA_mapping_kernel |
bf40 | 28 29 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 2e 66 69 74 28 78 73 2c 78 74 2c | ()\not_mapping_kernel.fit(xs,xt, |
bf60 | 6d 75 3d 6d 75 2c 65 74 61 3d 65 74 61 2c 73 69 67 6d 61 3d 73 69 67 6d 61 2c 62 69 61 73 3d 62 | mu=mu,eta=eta,sigma=sigma,bias=b |
bf80 | 69 61 73 2c 6e 75 6d 49 74 65 72 6d 61 78 20 3d 20 31 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 | ias,numItermax.=.10,verbose=True |
bfa0 | 29 5c 6e 5c 6e 58 31 74 6e 3d 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 2e 70 72 65 64 | )\n\nX1tn=ot_mapping_kernel.pred |
bfc0 | 69 63 74 28 58 31 29 20 23 20 75 73 65 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 6d 61 70 70 | ict(X1).#.use.the.estimated.mapp |
bfe0 | 69 6e 67 5c 6e 49 31 74 6e 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 6e 2c 49 31 2e | ing\nI1tn=minmax(mat2im(X1tn,I1. |
c000 | 73 68 61 70 65 29 29 5c 6e 23 25 25 20 70 6c 6f 74 20 69 6d 61 67 65 73 5c 6e 5c 6e 5c 6e 70 6c | shape))\n#%%.plot.images\n\n\npl |
c020 | 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 38 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 | .figure(2,(10,8))\n\npl.subplot( |
c040 | 32 2c 33 2c 31 29 5c 6e 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 74 69 74 6c | 2,3,1)\n\npl.imshow(I1)\npl.titl |
c060 | 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 32 2c 33 2c 32 29 5c | e('Im..1')\n\npl.subplot(2,3,2)\ |
c080 | 6e 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 | n\npl.imshow(I2)\npl.title('Im.. |
c0a0 | 32 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 33 29 5c 6e 70 6c 2e 69 | 2')\n\n\npl.subplot(2,3,3)\npl.i |
c0c0 | 6d 73 68 6f 77 28 49 31 74 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 49 6e 74 65 | mshow(I1t)\npl.title('Im..1.Inte |
c0e0 | 72 70 20 4c 50 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 5c 6e 70 6c | rp.LP')\n\npl.subplot(2,3,4)\npl |
c100 | 2e 69 6d 73 68 6f 77 28 49 31 74 65 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 49 | .imshow(I1te)\npl.title('Im..1.I |
c120 | 6e 74 65 72 70 20 45 6e 74 72 6f 70 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 | nterp.Entrop')\n\n\npl.subplot(2 |
c140 | 2c 33 2c 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 6c 29 5c 6e 70 6c 2e 74 69 74 6c 65 | ,3,5)\npl.imshow(I1tl)\npl.title |
c160 | 28 27 49 6d 2e 20 31 20 4c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 27 29 5c 6e 5c 6e 70 6c 2e 73 | ('Im..1.Linear.mapping')\n\npl.s |
c180 | 75 62 70 6c 6f 74 28 32 2c 33 2c 36 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 6e 29 5c 6e | ubplot(2,3,6)\npl.imshow(I1tn)\n |
c1a0 | 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 6e 6f 6e 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e | pl.title('Im..1.nonlinear.mappin |
c1c0 | 67 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 | g')\n\npl.show()".......],...... |
c1e0 | 20 20 22 6f 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 | .."outputs":.[],........"metadat |
c200 | 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 |
c220 | 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 5d 2c 20 0a 20 20 22 6d 65 74 61 64 61 74 61 | .......}.....}...],...."metadata |
c240 | 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":.{......." |
c260 | 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 32 22 2c 20 0a 20 20 20 20 | display_name":."Python.2",...... |
c280 | 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 6c 61 6e | .."name":."python2",........"lan |
c2a0 | 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 22 6c 61 | guage":."python".....},......"la |
c2c0 | 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 | nguage_info":.{......."mimetype" |
c2e0 | 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e | :."text/x-python",........"nbcon |
c300 | 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 20 0a 20 20 20 20 20 | vert_exporter":."python",....... |
c320 | 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 66 69 6c 65 5f | ."name":."python",........"file_ |
c340 | 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 20 0a 20 20 20 20 20 20 22 76 65 72 73 69 | extension":.".py",........"versi |
c360 | 6f 6e 22 3a 20 22 32 2e 37 2e 31 32 22 2c 20 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f | on":."2.7.12",........"pygments_ |
c380 | 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 63 6f 64 65 | lexer":."ipython2",........"code |
c3a0 | 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 76 65 72 73 69 6f 6e | mirror_mode":.{........."version |
c3c0 | 22 3a 20 32 2c 20 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 | ":.2,.........."name":."ipython" |
c3e0 | 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 01 02 14 03 14 00 00 00 00 00 | .......}.....}...}.}PK.......... |
c400 | 3b 82 e3 4a 7b d5 9c b1 6e 08 00 00 6e 08 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 b4 81 00 00 | ;..J{...n...n................... |
c420 | 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 57 44 41 2e 69 70 79 6e 62 50 4b | ..auto_examples/plot_WDA.ipynbPK |
c440 | 01 02 14 03 14 00 00 00 00 00 87 7b 82 49 fa 8c 13 06 e2 10 00 00 e2 10 00 00 25 00 00 00 00 00 | ...........{.I............%..... |
c460 | 00 00 00 00 00 00 b4 81 a8 08 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f | ............auto_examples/plot_O |
c480 | 54 44 41 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 ab 83 e3 | TDA_mapping.ipynbPK............. |
c4a0 | 4a d1 21 9f 53 e8 08 00 00 e8 08 00 00 24 00 00 00 00 00 00 00 00 00 00 00 b4 81 cd 19 00 00 61 | J.!.S........$.................a |
c4c0 | 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 6f 70 74 69 6d 5f 4f 54 72 65 67 2e 69 70 | uto_examples/plot_optim_OTreg.ip |
c4e0 | 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 76 7b 82 49 50 0d 0a 74 03 0e 00 00 03 0e 00 00 25 | ynbPK..........v{.IP..t........% |
c500 | 00 00 00 00 00 00 00 00 00 00 00 b4 81 f7 22 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 | .............."..auto_examples/p |
c520 | 6c 6f 74 5f 4f 54 44 41 5f 63 6c 61 73 73 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 | lot_OTDA_classes.ipynbPK........ |
c540 | 00 00 b5 82 e3 4a 21 2e ce 60 70 07 00 00 70 07 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 b4 81 | .....J!..`p...p................. |
c560 | 3d 31 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 31 44 2e 69 70 79 | =1..auto_examples/plot_OT_1D.ipy |
c580 | 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 32 82 e3 4a 48 a2 ab 22 f5 14 00 00 f5 14 00 00 20 00 | nbPK..........2..JH..".......... |
c5a0 | 00 00 00 00 00 00 00 00 00 00 b4 81 e9 38 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c | .............8..auto_examples/pl |
c5c0 | 6f 74 5f 4f 54 5f 63 6f 6e 76 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 ac 7a 82 49 | ot_OT_conv.ipynbPK...........z.I |
c5e0 | 51 3c 40 3f 86 0e 00 00 86 0e 00 00 26 00 00 00 00 00 00 00 00 00 00 00 b4 81 1c 4e 00 00 61 75 | Q<@?........&..............N..au |
c600 | 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 69 | to_examples/plot_barycenter_1D.i |
c620 | 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 6a 7b 82 49 bb fd 13 71 39 0a 00 00 39 0a 00 00 | pynbPK..........j{.I...q9...9... |
c640 | 2b 00 00 00 00 00 00 00 00 00 00 00 b4 81 e6 5c 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f | +..............\..auto_examples/ |
c660 | 64 65 6d 6f 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 6c 61 72 67 65 2e 69 70 79 6e 62 50 4b 01 | demo_OT_2D_sampleslarge.ipynbPK. |
c680 | 02 14 03 14 00 00 00 00 00 b7 82 e3 4a 83 55 07 9d a7 0e 00 00 a7 0e 00 00 24 00 00 00 00 00 00 | ............J.U..........$...... |
c6a0 | 00 00 00 00 00 b4 81 68 67 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 | .......hg..auto_examples/plot_OT |
c6c0 | 5f 4c 31 5f 76 73 5f 4c 32 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 b6 82 e3 4a 6d | _L1_vs_L2.ipynbPK.............Jm |
c6e0 | f1 b9 13 11 0a 00 00 11 0a 00 00 26 00 00 00 00 00 00 00 00 00 00 00 b4 81 51 76 00 00 61 75 74 | ...........&.............Qv..aut |
c700 | 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 2e 69 70 | o_examples/plot_OT_2D_samples.ip |
c720 | 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 75 7b 82 49 55 d4 67 d2 3c 0e 00 00 3c 0e 00 00 20 | ynbPK..........u{.IU.g.<...<.... |
c740 | 00 00 00 00 00 00 00 00 00 00 00 b4 81 a6 80 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 | .................auto_examples/p |
c760 | 6c 6f 74 5f 4f 54 44 41 5f 32 44 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 b7 82 e3 | lot_OTDA_2D.ipynbPK............. |
c780 | 4a 5d 2a 4c 62 15 0a 00 00 15 0a 00 00 24 00 00 00 00 00 00 00 00 00 00 00 b4 81 20 8f 00 00 61 | J]*Lb........$.................a |
c7a0 | 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 63 6f 6d 70 75 74 65 5f 65 6d 64 2e 69 70 | uto_examples/plot_compute_emd.ip |
c7c0 | 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 6a 7b 82 49 cd 14 1c 01 46 09 00 00 46 09 00 00 23 | ynbPK..........j{.I....F...F...# |
c7e0 | 00 00 00 00 00 00 00 00 00 00 00 b4 81 77 99 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 64 | .............w...auto_examples/d |
c800 | 65 6d 6f 5f 4f 54 5f 31 44 5f 74 65 73 74 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 | emo_OT_1D_test.ipynbPK.......... |
c820 | 86 7b 82 49 4f 22 f2 c8 74 0e 00 00 74 0e 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 b4 81 fe a2 | .{.IO"..t...t...*............... |
c840 | 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 63 6f 6c 6f 72 5f | ..auto_examples/plot_OTDA_color_ |
c860 | 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 d7 7b 82 49 c4 9e 28 9b | images.ipynbPK...........{.I..(. |
c880 | ea 11 00 00 ea 11 00 00 32 00 00 00 00 00 00 00 00 00 00 00 b4 81 ba b1 00 00 61 75 74 6f 5f 65 | ........2.................auto_e |
c8a0 | 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f 63 6f 6c 6f 72 5f | xamples/plot_OTDA_mapping_color_ |
c8c0 | 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 05 06 00 00 00 00 0f 00 0f 00 d8 04 00 00 f4 c3 00 00 | images.ipynbPK.................. |
c8e0 | 00 00 | .. |