summaryrefslogtreecommitdiff
path: root/docs/source/auto_examples/auto_examples_jupyter.zip
blob: 7c3de289afbafba3836e5b2a325af7867d42bf85 (plain)
ofshex dumpascii
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 ..