summaryrefslogtreecommitdiff
path: root/docs/source/auto_examples/auto_examples_jupyter.zip
blob: 2b892cf8e02f278bc06fdc0c74128d2c9af7ad85 (plain)
ofshex dumpascii
0000 50 4b 03 04 14 00 00 00 00 00 d8 6c c9 4a b9 5d 6a b1 6e 08 00 00 6e 08 00 00 1c 00 00 00 61 75 PK.........l.J.]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 41 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 d8 6d c9 4a ac e6 e3 5c dd }.....}...}.}PK.........m.J...\.
19e0 08 00 00 dd 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 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..reg')".......],........"outpu
20e0 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":.{...
2100 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.......}
2120 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 20 .....}...],...."metadata":.{....
2140 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f ."kernelspec":.{......."display_
2160 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 22 name":."Python.2",........"name"
2180 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 20 :."python2",........"language":.
21a0 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 69 "python".....},......"language_i
21c0 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 2f nfo":.{......."mimetype":."text/
21e0 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 70 x-python",........"nbconvert_exp
2200 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 3a orter":."python",........"name":
2220 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 6f ."python",........"file_extensio
2240 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 2e n":.".py",........"version":."2.
2260 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 20 7.12",........"pygments_lexer":.
2280 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 6d "ipython2",........"codemirror_m
22a0 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 20 ode":.{........."version":.2,...
22c0 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 7d ......."name":."ipython".......}
22e0 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 76 7b 82 49 50 0d 0a 74 03 0e .....}...}.}PK........v{.IP..t..
2300 00 00 03 0e 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 ......%...auto_examples/plot_OTD
2320 41 5f 63 6c 61 73 73 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 A_classes.ipynb{..."nbformat_min
2340 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
2360 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
2380 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":
23a0 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":.[.....
23c0 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".......]
23e0 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":.[],........"
2400 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"
2420 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.......}.....},......{...
2440 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 ...."source":.[........."\n#.OT.
2460 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 5c 6e 22 0a 20 for.domain.adaptation\n\n\n\n"..
2480 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 61 72 .....],........"cell_type":."mar
24a0 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 20 20 kdown",........"metadata":.{}...
24c0 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 6f 75 ..},......{......."execution_cou
24e0 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 20 22 nt":.null,........"cell_type":."
2500 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 20 20 code",........"source":.[.......
2520 20 20 22 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 .."import.matplotlib.pylab.as.pl
2540 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 \nimport.ot\n\n\n\n\n#%%.paramet
2560 65 72 73 5c 6e 5c 6e 6e 3d 31 35 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 20 69 6e 20 73 6f 75 ers\n\nn=150.#.nb.samples.in.sou
2580 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 5c 6e 78 73 2c 79 73 rce.and.target.datasets\n\nxs,ys
25a0 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 66 28 27 33 =ot.datasets.get_data_classif('3
25c0 67 61 75 73 73 27 2c 6e 29 5c 6e 78 74 2c 79 74 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 gauss',n)\nxt,yt=ot.datasets.get
25e0 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 32 27 2c 6e 29 5c 6e 5c 6e 5c 6e _data_classif('3gauss2',n)\n\n\n
2600 5c 6e 5c 6e 23 25 25 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 \n\n#%%.plot.samples\n\npl.figur
2620 65 28 31 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 5c 6e 70 6c 2e 73 63 e(1)\n\npl.subplot(2,2,1)\npl.sc
2640 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 6b 65 atter(xs[:,0],xs[:,1],c=ys,marke
2660 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 6e 70 r='+',label='Source.samples')\np
2680 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 l.legend(loc=0)\npl.title('Sourc
26a0 65 20 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 e..distributions')\n\npl.subplot
26c0 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 5d 2c 78 74 5b 3a (2,2,2)\npl.scatter(xt[:,0],xt[:
26e0 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 27 54 61 72 67 65 ,1],c=yt,marker='o',label='Targe
2700 74 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 5c 6e 70 t.samples')\npl.legend(loc=0)\np
2720 6c 2e 74 69 74 6c 65 28 27 74 61 72 67 65 74 20 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 l.title('target..distributions')
2740 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 20 4c 50 20 \n\n\n#%%.OT.estimation\n\n#.LP.
2760 70 72 6f 62 6c 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 problem\nda_emd=ot.da.OTDA()....
2780 20 23 20 69 6e 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 .#.init.class\nda_emd.fit(xs,xt)
27a0 20 20 20 20 20 20 20 23 20 66 69 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 78 73 74 30 .......#.fit.distributions\nxst0
27c0 3d 64 61 5f 65 6d 64 2e 69 6e 74 65 72 70 28 29 20 20 20 20 23 20 69 6e 74 65 72 70 6f 6c 61 74 =da_emd.interp()....#.interpolat
27e0 69 6f 6e 20 6f 66 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 5c 6e 23 20 73 69 6e ion.of.source.samples\n\n\n#.sin
2800 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
2820 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(
2840 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
2860 29 5c 6e 78 73 74 73 3d 64 61 5f 65 6e 74 72 6f 70 2e 69 6e 74 65 72 70 28 29 5c 6e 5c 6e 23 20 )\nxsts=da_entrop.interp()\n\n#.
2880 6e 6f 6e 2d 63 6f 6e 76 65 78 20 47 72 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a non-convex.Group.lasso.regulariz
28a0 61 74 69 6f 6e 5c 6e 72 65 67 3d 31 65 2d 31 5c 6e 65 74 61 3d 31 65 30 5c 6e 64 61 5f 6c 70 6c ation\nreg=1e-1\neta=1e0\nda_lpl
28c0 31 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6c 70 6c 31 28 29 5c 6e 64 61 5f 6c 70 6c 31 2e 66 69 74 1=ot.da.OTDA_lpl1()\nda_lpl1.fit
28e0 28 78 73 2c 79 73 2c 78 74 2c 72 65 67 3d 72 65 67 2c 65 74 61 3d 65 74 61 29 5c 6e 78 73 74 67 (xs,ys,xt,reg=reg,eta=eta)\nxstg
2900 3d 64 61 5f 6c 70 6c 31 2e 69 6e 74 65 72 70 28 29 5c 6e 5c 6e 5c 6e 23 20 54 72 75 65 20 47 72 =da_lpl1.interp()\n\n\n#.True.Gr
2920 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 72 65 67 3d 31 65 oup.lasso.regularization\nreg=1e
2940 2d 31 5c 6e 65 74 61 3d 32 65 30 5c 6e 64 61 5f 6c 31 6c 32 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f -1\neta=2e0\nda_l1l2=ot.da.OTDA_
2960 6c 31 6c 32 28 29 5c 6e 64 61 5f 6c 31 6c 32 2e 66 69 74 28 78 73 2c 79 73 2c 78 74 2c 72 65 67 l1l2()\nda_l1l2.fit(xs,ys,xt,reg
2980 3d 72 65 67 2c 65 74 61 3d 65 74 61 2c 6e 75 6d 49 74 65 72 6d 61 78 3d 32 30 2c 76 65 72 62 6f =reg,eta=eta,numItermax=20,verbo
29a0 73 65 3d 54 72 75 65 29 5c 6e 78 73 74 67 6c 3d 64 61 5f 6c 31 6c 32 2e 69 6e 74 65 72 70 28 29 se=True)\nxstgl=da_l1l2.interp()
29c0 5c 6e 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 73 6f 75 72 \n\n\n#%%.plot.interpolated.sour
29e0 63 65 20 73 61 6d 70 6c 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 28 31 35 2c 38 29 29 5c ce.samples\npl.figure(4,(15,8))\
2a00 6e 5c 6e 70 61 72 61 6d 5f 69 6d 67 3d 7b 27 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 27 3a 27 6e n\nparam_img={'interpolation':'n
2a20 65 61 72 65 73 74 27 2c 27 63 6d 61 70 27 3a 27 6a 65 74 27 7d 5c 6e 5c 6e 70 6c 2e 73 75 62 70 earest','cmap':'jet'}\n\npl.subp
2a40 6c 6f 74 28 32 2c 34 2c 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 65 6d 64 2e 47 2c 2a lot(2,4,1)\npl.imshow(da_emd.G,*
2a60 2a 70 61 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 *param_img)\npl.title('OT.matrix
2a80 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 32 29 5c 6e 70 6c 2e 69 6d ')\n\n\npl.subplot(2,4,2)\npl.im
2aa0 73 68 6f 77 28 64 61 5f 65 6e 74 72 6f 70 2e 47 2c 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 show(da_entrop.G,**param_img)\np
2ac0 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c l.title('OT.matrix.sinkhorn')\n\
2ae0 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 64 61 npl.subplot(2,4,3)\npl.imshow(da
2b00 5f 6c 70 6c 31 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 28 27 _lpl1.G,**param_img)\npl.title('
2b20 4f 54 20 6d 61 74 72 69 78 20 6e 6f 6e 2d 63 6f 6e 76 65 78 20 47 72 6f 75 70 20 4c 61 73 73 6f OT.matrix.non-convex.Group.Lasso
2b40 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 34 29 5c 6e 70 6c 2e 69 6d 73 68 ')\n\npl.subplot(2,4,4)\npl.imsh
2b60 6f 77 28 64 61 5f 6c 31 6c 32 2e 47 2c 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 74 69 ow(da_l1l2.G,**param_img)\npl.ti
2b80 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 72 6f 75 70 20 4c 61 73 73 6f 27 29 5c 6e 5c 6e tle('OT.matrix.Group.Lasso')\n\n
2ba0 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 \npl.subplot(2,4,5)\npl.scatter(
2bc0 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 2c xt[:,0],xt[:,1],c=yt,marker='o',
2be0 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 33 label='Target.samples',alpha=0.3
2c00 29 5c 6e 70 6c 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 )\npl.scatter(xst0[:,0],xst0[:,1
2c20 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 73 70 20 ],c=ys,marker='+',label='Transp.
2c40 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 65 72 70 samples',s=30)\npl.title('Interp
2c60 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 5c 6e 5c 6e .samples')\npl.legend(loc=0)\n\n
2c80 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 36 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 pl.subplot(2,4,6)\npl.scatter(xt
2ca0 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
2cc0 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)\
2ce0 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 73 5b 3a 2c 30 5d 2c 78 73 74 73 5b 3a 2c 31 5d 2c npl.scatter(xsts[:,0],xsts[:,1],
2d00 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
2d20 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
2d40 61 6d 70 6c 65 73 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 amples.Sinkhorn')\n\npl.subplot(
2d60 32 2c 34 2c 37 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 2,4,7)\npl.scatter(xt[:,0],xt[:,
2d80 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 27 54 61 72 67 65 74 1],c=yt,marker='o',label='Target
2da0 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 .samples',alpha=0.3)\npl.scatter
2dc0 28 78 73 74 67 5b 3a 2c 30 5d 2c 78 73 74 67 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 (xstg[:,0],xstg[:,1],c=ys,marker
2de0 3d 27 2b 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 ='+',label='Transp.samples',s=30
2e00 29 5c 6e 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 6e 6f 6e 2d )\npl.title('Interp.samples.non-
2e20 63 6f 6e 76 65 78 20 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 convex.Group.Lasso')\n\npl.subpl
2e40 6f 74 28 32 2c 34 2c 38 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 ot(2,4,8)\npl.scatter(xt[:,0],xt
2e60 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 27 54 61 72 [:,1],c=yt,marker='o',label='Tar
2e80 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 get.samples',alpha=0.3)\npl.scat
2ea0 74 65 72 28 78 73 74 67 6c 5b 3a 2c 30 5d 2c 78 73 74 67 6c 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d ter(xstgl[:,0],xstgl[:,1],c=ys,m
2ec0 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 6d 70 6c 65 73 27 arker='+',label='Transp.samples'
2ee0 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 61 6d 70 6c 65 73 ,s=30)\npl.title('Interp.samples
2f00 20 47 72 6f 75 70 20 4c 61 73 73 6f 27 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 .Group.Lasso')".......],........
2f20 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"
2f40 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..
2f60 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 22 3a .....}.....}...],...."metadata":
2f80 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 .{....."kernelspec":.{......."di
2fa0 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 20 20 splay_name":."Python.2",........
2fc0 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 67 75 "name":."python2",........"langu
2fe0 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 6e 67 age":."python".....},......"lang
3000 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 3a 20 uage_info":.{......."mimetype":.
3020 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 76 65 "text/x-python",........"nbconve
3040 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 20 22 rt_exporter":."python",........"
3060 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 65 78 name":."python",........"file_ex
3080 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 6f 6e tension":.".py",........"version
30a0 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 6c 65 ":."2.7.12",........"pygments_le
30c0 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 6d 69 xer":."ipython2",........"codemi
30e0 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 22 3a rror_mode":.{........."version":
3100 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 0a 20 .2,.........."name":."ipython"..
3120 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 00 d8 7b 82 49 .....}.....}...}.}PK.........{.I
3140 f9 12 57 24 63 07 00 00 63 07 00 00 1e 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c ..W$c...c.......auto_examples/pl
3160 6f 74 5f 4f 54 5f 31 44 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f ot_OT_1D.ipynb{..."nbformat_mino
3180 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 6c r":.0,...."nbformat":.4,...."cel
31a0 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 6f ls":.[.....{......."execution_co
31c0 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 20 unt":.null,........"cell_type":.
31e0 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 20 "code",........"source":.[......
3200 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 2c ..."%matplotlib.inline".......],
3220 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
3240 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":
3260 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 20 .false.......}.....},......{....
3280 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 31 44 20 6f ..."source":.[........."\n#.1D.o
32a0 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 5c 6e 5c 6e 40 61 75 74 68 6f 72 3a 20 72 ptimal.transport\n\n\n@author:.r
32c0 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 20 20 22 63 65 flamary\n\n".......],........"ce
32e0 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 20 20 22 6d 65 ll_type":."markdown",........"me
3300 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 20 20 20 20 20 tadata":.{}.....},......{.......
3320 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 "execution_count":.null,........
3340 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 "cell_type":."code",........"sou
3360 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 rce":.[........."import.numpy.as
3380 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 .np\nimport.matplotlib.pylab.as.
33a0 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 pl\nimport.ot\nfrom.ot.datasets.
33c0 69 6d 70 6f 72 74 20 67 65 74 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 5c 6e 5c 6e import.get_1D_gauss.as.gauss\n\n
33e0 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 3d 31 30 30 20 23 20 6e 62 20 62 \n#%%.parameters\n\nn=100.#.nb.b
3400 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 3d 6e 70 2e 61 72 61 ins\n\n#.bin.positions\nx=np.ara
3420 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 nge(n,dtype=np.float64)\n\n#.Gau
3440 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 2c 6d ssian.distributions\na=gauss(n,m
3460 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 62 3d 67 61 =20,s=5).#.m=.mean,.s=.std\nb=ga
3480 75 73 73 28 6e 2c 6d 3d 36 30 2c 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 uss(n,m=60,s=10)\n\n#.loss.matri
34a0 78 5c 6e 4d 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 x\nM=ot.dist(x.reshape((n,1)),x.
34c0 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 29 5c 6e 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e 5c 6e 23 reshape((n,1)))\nM/=M.max()\n\n#
34e0 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e %%.plot.the.distributions\n\npl.
3500 66 69 67 75 72 65 28 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 figure(1)\npl.plot(x,a,'b',label
3520 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 ='Source.distribution')\npl.plot
3540 28 78 2c 62 2c 27 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 (x,b,'r',label='Target.distribut
3560 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 64 ion')\npl.legend()\n\n#%%.plot.d
3580 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 6e 5c 6e istributions.and.loss.matrix\n\n
35a0 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 pl.figure(2)\not.plot.plot1D_mat
35c0 28 61 2c 62 2c 4d 2c 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 5c 6e 5c 6e 23 25 25 20 45 (a,b,M,'Cost.matrix.M')\n\n#%%.E
35e0 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 2e 66 69 67 MD\n\nG0=ot.emd(a,b,M)\n\npl.fig
3600 75 72 65 28 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 ure(3)\not.plot.plot1D_mat(a,b,G
3620 30 2c 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 5c 6e 5c 6e 23 25 25 20 53 69 6e 6b 68 6f 72 0,'OT.matrix.G0')\n\n#%%.Sinkhor
3640 6e 5c 6e 5c 6e 6c 61 6d 62 64 3d 31 65 2d 33 5c 6e 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 n\n\nlambd=1e-3\nGs=ot.sinkhorn(
3660 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 6f 74 a,b,M,lambd)\n\npl.figure(4)\not
3680 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
36a0 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 ix.Sinkhorn')".......],........"
36c0 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":
36e0 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...
3700 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":.
3720 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
3740 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",........"
3760 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
3780 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
37a0 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":."
37c0 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
37e0 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
3800 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
3820 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"
3840 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
3860 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
3880 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":.
38a0 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"...
38c0 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 ac 7a 82 49 51 ....}.....}...}.}PK.........z.IQ
38e0 3c 40 3f 86 0e 00 00 86 0e 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
3900 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d t_barycenter_1D.ipynb{..."nbform
3920 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,.
3940 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
3960 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_
3980 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":.
39a0 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"..
39c0 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":.[],...
39e0 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
3a00 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.......}.....},....
3a20 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":.[........."\
3a40 6e 23 20 31 44 20 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 20 64 65 6d n#.1D.Wasserstein.barycenter.dem
3a60 6f 5c 6e 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 0a o\n\n\n\n@author:.rflamary\n\n".
3a80 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 61 ......],........"cell_type":."ma
3aa0 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 20 rkdown",........"metadata":.{}..
3ac0 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 6f ...},......{......."execution_co
3ae0 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 20 unt":.null,........"cell_type":.
3b00 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 20 "code",........"source":.[......
3b20 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 6d ..."import.numpy.as.np\nimport.m
3b40 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 74 atplotlib.pylab.as.pl\nimport.ot
3b60 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d 70 6f \nfrom.mpl_toolkits.mplot3d.impo
3b80 72 74 20 41 78 65 73 33 44 20 23 6e 65 63 65 73 73 61 72 79 20 66 6f 72 20 33 64 20 70 6c 6f 74 rt.Axes3D.#necessary.for.3d.plot
3ba0 20 65 76 65 6e 20 69 66 20 6e 6f 74 20 75 73 65 64 5c 6e 66 72 6f 6d 20 6d 61 74 70 6c 6f 74 6c .even.if.not.used\nfrom.matplotl
3bc0 69 62 2e 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 50 6f 6c 79 43 6f 6c 6c 65 63 ib.collections.import.PolyCollec
3be0 74 69 6f 6e 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 3d 31 30 tion\n\n\n#%%.parameters\n\nn=10
3c00 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 73 5c 6e 0.#.nb.bins\n\n#.bin.positions\n
3c20 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 34 29 5c x=np.arange(n,dtype=np.float64)\
3c40 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 61 31 3d n\n#.Gaussian.distributions\na1=
3c60 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 32 30 2c ot.datasets.get_1D_gauss(n,m=20,
3c80 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 61 32 3d 6f 74 2e 64 61 s=5).#.m=.mean,.s=.std\na2=ot.da
3ca0 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 30 2c 73 3d 38 29 5c tasets.get_1D_gauss(n,m=60,s=8)\
3cc0 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 74 72 69 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e n\n#.creating.matrix.A.containin
3ce0 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 41 3d 6e 70 2e 76 73 74 61 63 6b g.all.distributions\nA=np.vstack
3d00 28 28 61 31 2c 61 32 29 29 2e 54 5c 6e 6e 62 64 3d 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e 23 ((a1,a2)).T\nnbd=A.shape[1]\n\n#
3d20 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 3d .loss.matrix.+.normalization\nM=
3d40 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e 5c ot.utils.dist0(n)\nM/=M.max()\n\
3d60 6e 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 n#%%.plot.the.distributions\n\np
3d80 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 64 29 l.figure(1)\nfor.i.in.range(nbd)
3da0 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 41 5b 3a 2c 69 5d 29 5c 6e 70 6c 2e 74 69 74 :\n....pl.plot(x,A[:,i])\npl.tit
3dc0 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 23 25 25 20 62 61 72 79 63 le('Distributions')\n\n#%%.baryc
3de0 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 5c 6e 61 6c 70 68 61 3d 30 2e 32 20 23 enter.computation\n\nalpha=0.2.#
3e00 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 73 3d 6e 70 2e 61 72 72 61 79 28 5b .0<=alpha<=1\nweights=np.array([
3e20 31 2d 61 6c 70 68 61 2c 61 6c 70 68 61 5d 29 5c 6e 5c 6e 23 20 6c 32 62 61 72 79 5c 6e 62 61 72 1-alpha,alpha])\n\n#.l2bary\nbar
3e40 79 5f 6c 32 3d 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 6e 5c 6e 23 20 77 61 73 73 65 72 73 y_l2=A.dot(weights)\n\n#.wassers
3e60 74 65 69 6e 5c 6e 72 65 67 3d 31 65 2d 33 5c 6e 62 61 72 79 5f 77 61 73 73 3d 6f 74 2e 62 72 65 tein\nreg=1e-3\nbary_wass=ot.bre
3e80 67 6d 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 4d 2c 72 65 67 2c 77 65 69 67 68 74 73 29 gman.barycenter(A,M,reg,weights)
3ea0 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 \n\npl.figure(2)\npl.clf()\npl.s
3ec0 75 62 70 6c 6f 74 28 32 2c 31 2c 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 ubplot(2,1,1)\nfor.i.in.range(nb
3ee0 64 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 41 5b 3a 2c 69 5d 29 5c 6e 70 6c 2e 74 d):\n....pl.plot(x,A[:,i])\npl.t
3f00 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 itle('Distributions')\n\npl.subp
3f20 6c 6f 74 28 32 2c 31 2c 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 62 61 72 79 5f 6c 32 2c 27 72 lot(2,1,2)\npl.plot(x,bary_l2,'r
3f40 27 2c 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 62 61 72 79 5f 77 61 ',label='l2')\npl.plot(x,bary_wa
3f60 73 73 2c 27 67 27 2c 6c 61 62 65 6c 3d 27 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e ss,'g',label='Wasserstein')\npl.
3f80 6c 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 73 27 legend()\npl.title('Barycenters'
3fa0 29 5c 6e 5c 6e 5c 6e 23 25 25 20 62 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 )\n\n\n#%%.barycenter.interpolat
3fc0 69 6f 6e 5c 6e 5c 6e 6e 62 61 6c 70 68 61 3d 31 31 5c 6e 61 6c 70 68 61 6c 69 73 74 3d 6e 70 2e ion\n\nnbalpha=11\nalphalist=np.
3fe0 6c 69 6e 73 70 61 63 65 28 30 2c 31 2c 6e 62 61 6c 70 68 61 29 5c 6e 5c 6e 5c 6e 42 5f 6c 32 3d linspace(0,1,nbalpha)\n\n\nB_l2=
4000 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 6e 62 61 6c 70 68 61 29 29 5c 6e 5c 6e 42 5f 77 61 73 73 3d np.zeros((n,nbalpha))\n\nB_wass=
4020 6e 70 2e 63 6f 70 79 28 42 5f 6c 32 29 5c 6e 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 np.copy(B_l2)\n\nfor.i.in.range(
4040 30 2c 6e 62 61 6c 70 68 61 29 3a 5c 6e 20 20 20 20 61 6c 70 68 61 3d 61 6c 70 68 61 6c 69 73 74 0,nbalpha):\n....alpha=alphalist
4060 5b 69 5d 5c 6e 20 20 20 20 77 65 69 67 68 74 73 3d 6e 70 2e 61 72 72 61 79 28 5b 31 2d 61 6c 70 [i]\n....weights=np.array([1-alp
4080 68 61 2c 61 6c 70 68 61 5d 29 5c 6e 20 20 20 20 42 5f 6c 32 5b 3a 2c 69 5d 3d 41 2e 64 6f 74 28 ha,alpha])\n....B_l2[:,i]=A.dot(
40a0 77 65 69 67 68 74 73 29 5c 6e 20 20 20 20 42 5f 77 61 73 73 5b 3a 2c 69 5d 3d 6f 74 2e 62 72 65 weights)\n....B_wass[:,i]=ot.bre
40c0 67 6d 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 4d 2c 72 65 67 2c 77 65 69 67 68 74 73 29 gman.barycenter(A,M,reg,weights)
40e0 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 5c 6e 70 6c \n\n#%%.plot.interpolation\n\npl
4100 2e 66 69 67 75 72 65 28 33 2c 28 31 30 2c 35 29 29 5c 6e 5c 6e 23 70 6c 2e 73 75 62 70 6c 6f 74 .figure(3,(10,5))\n\n#pl.subplot
4120 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 28 27 76 69 (1,2,1)\ncmap=pl.cm.get_cmap('vi
4140 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 70 68 61 6c ridis')\nverts.=.[]\nzs.=.alphal
4160 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 29 3a 5c 6e ist\nfor.i,z.in.enumerate(zs):\n
4180 20 20 20 20 79 73 20 3d 20 42 5f 6c 32 5b 3a 2c 69 5d 5c 6e 20 20 20 20 76 65 72 74 73 2e 61 70 ....ys.=.B_l2[:,i]\n....verts.ap
41a0 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 61 78 20 3d 20 70 pend(list(zip(x,.ys)))\n\nax.=.p
41c0 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 27 29 5c 6e 5c 6e l.gcf().gca(projection='3d')\n\n
41e0 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 73 2c 66 61 63 65 poly.=.PolyCollection(verts,face
4200 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 6c 70 68 61 6c 69 colors=[cmap(a).for.a.in.alphali
4220 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 6e 61 78 2e 61 64 st])\npoly.set_alpha(0.7)\nax.ad
4240 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 2c 20 7a 64 69 72 d_collection3d(poly,.zs=zs,.zdir
4260 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 29 5c 6e 61 78 2e ='y')\n\nax.set_xlabel('x')\nax.
4280 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 6c 61 62 65 6c 28 set_xlim3d(0,.n)\nax.set_ylabel(
42a0 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 6d 33 64 28 30 2c '$\\\\alpha$')\nax.set_ylim3d(0,
42c0 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 73 65 74 5f 7a 6c 1)\nax.set_zlabel('')\nax.set_zl
42e0 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 70 6c 2e 74 69 74 im3d(0,.B_l2.max()*1.01)\npl.tit
4300 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 6f 6e 20 77 69 74 le('Barycenter.interpolation.wit
4320 68 20 6c 32 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 h.l2')\n\npl.show()\n\npl.figure
4340 28 34 2c 28 31 30 2c 35 29 29 5c 6e 5c 6e 23 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 (4,(10,5))\n\n#pl.subplot(1,2,1)
4360 5c 6e 63 6d 61 70 3d 70 6c 2e 63 6d 2e 67 65 74 5f 63 6d 61 70 28 27 76 69 72 69 64 69 73 27 29 \ncmap=pl.cm.get_cmap('viridis')
4380 5c 6e 76 65 72 74 73 20 3d 20 5b 5d 5c 6e 7a 73 20 3d 20 61 6c 70 68 61 6c 69 73 74 5c 6e 66 6f \nverts.=.[]\nzs.=.alphalist\nfo
43a0 72 20 69 2c 7a 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 7a 73 29 3a 5c 6e 20 20 20 20 79 73 20 r.i,z.in.enumerate(zs):\n....ys.
43c0 3d 20 42 5f 77 61 73 73 5b 3a 2c 69 5d 5c 6e 20 20 20 20 76 65 72 74 73 2e 61 70 70 65 6e 64 28 =.B_wass[:,i]\n....verts.append(
43e0 6c 69 73 74 28 7a 69 70 28 78 2c 20 79 73 29 29 29 5c 6e 5c 6e 61 78 20 3d 20 70 6c 2e 67 63 66 list(zip(x,.ys)))\n\nax.=.pl.gcf
4400 28 29 2e 67 63 61 28 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 5c 6e 5c 6e 70 6f 6c 79 20 ().gca(projection='3d')\n\npoly.
4420 3d 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 28 76 65 72 74 73 2c 66 61 63 65 63 6f 6c 6f 72 =.PolyCollection(verts,facecolor
4440 73 3d 5b 63 6d 61 70 28 61 29 20 66 6f 72 20 61 20 69 6e 20 61 6c 70 68 61 6c 69 73 74 5d 29 5c s=[cmap(a).for.a.in.alphalist])\
4460 6e 70 6f 6c 79 2e 73 65 74 5f 61 6c 70 68 61 28 30 2e 37 29 5c 6e 61 78 2e 61 64 64 5f 63 6f 6c npoly.set_alpha(0.7)\nax.add_col
4480 6c 65 63 74 69 6f 6e 33 64 28 70 6f 6c 79 2c 20 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 lection3d(poly,.zs=zs,.zdir='y')
44a0 5c 6e 5c 6e 61 78 2e 73 65 74 5f 78 6c 61 62 65 6c 28 27 78 27 29 5c 6e 61 78 2e 73 65 74 5f 78 \n\nax.set_xlabel('x')\nax.set_x
44c0 6c 69 6d 33 64 28 30 2c 20 6e 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 61 62 65 6c 28 27 24 5c 5c 5c lim3d(0,.n)\nax.set_ylabel('$\\\
44e0 5c 61 6c 70 68 61 24 27 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 69 6d 33 64 28 30 2c 31 29 5c 6e 61 \alpha$')\nax.set_ylim3d(0,1)\na
4500 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 x.set_zlabel('')\nax.set_zlim3d(
4520 30 2c 20 42 5f 6c 32 2e 6d 61 78 28 29 2a 31 2e 30 31 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 0,.B_l2.max()*1.01)\npl.title('B
4540 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 77 69 74 68 20 57 61 73 arycenter.interpolation.with.Was
4560 73 65 72 73 74 65 69 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d serstein')\n\npl.show()".......]
4580 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":.[],........"
45a0 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"
45c0 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 6d :.false.......}.....}...],...."m
45e0 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a etadata":.{....."kernelspec":.{.
4600 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 22 ......"display_name":."Python.2"
4620 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 20 ,........"name":."python2",.....
4640 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 0a ..."language":."python".....},..
4660 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 69 ...."language_info":.{......."mi
4680 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 20 metype":."text/x-python",.......
46a0 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c ."nbconvert_exporter":."python",
46c0 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 20 ........"name":."python",.......
46e0 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 20 ."file_extension":.".py",.......
4700 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 79 ."version":."2.7.12",........"py
4720 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 20 gments_lexer":."ipython2",......
4740 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 22 .."codemirror_mode":.{........."
4760 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 69 version":.2,.........."name":."i
4780 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 14 python".......}.....}...}.}PK...
47a0 00 00 00 00 00 6a 7b 82 49 bb fd 13 71 39 0a 00 00 39 0a 00 00 2b 00 00 00 61 75 74 6f 5f 65 78 .....j{.I...q9...9...+...auto_ex
47c0 61 6d 70 6c 65 73 2f 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 amples/demo_OT_2D_sampleslarge.i
47e0 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,....
4800 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":.[....
4820 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
4840 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",...
4860 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
4880 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
48a0 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":.
48c0 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....
48e0 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
4900 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 44 65 6d 6f 20 66 6f 72 20 32 44 20 4f 70 74 69 ":.[........."\nDemo.for.2D.Opti
4920 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 62 65 74 77 65 65 6e 20 65 6d 70 69 72 69 63 61 6c 20 mal.transport.between.empirical.
4940 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 40 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 distributions\n\n@author:.rflama
4960 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 5f 74 79 ry\n\n".......],........"cell_ty
4980 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
49a0 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
49c0 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
49e0 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":
4a00 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
4a20 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 import.matplotlib.pylab.as.pl\ni
4a40 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 64 mport.ot\n\n#%%.parameters.and.d
4a60 61 74 61 20 67 65 6e 65 72 61 74 69 6f 6e 5c 6e 5c 6e 6e 3d 35 30 30 30 20 23 20 6e 62 20 73 61 ata.generation\n\nn=5000.#.nb.sa
4a80 6d 70 6c 65 73 5c 6e 5c 6e 6d 75 5f 73 3d 6e 70 2e 61 72 72 61 79 28 5b 30 2c 30 5d 29 5c 6e 63 mples\n\nmu_s=np.array([0,0])\nc
4aa0 6f 76 5f 73 3d 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 30 5d 2c 5b 30 2c 31 5d 5d 29 5c 6e 5c 6e ov_s=np.array([[1,0],[0,1]])\n\n
4ac0 6d 75 5f 74 3d 6e 70 2e 61 72 72 61 79 28 5b 34 2c 34 5d 29 5c 6e 63 6f 76 5f 74 3d 6e 70 2e 61 mu_t=np.array([4,4])\ncov_t=np.a
4ae0 72 72 61 79 28 5b 5b 31 2c 2d 2e 38 5d 2c 5b 2d 2e 38 2c 31 5d 5d 29 5c 6e 5c 6e 78 73 3d 6f 74 rray([[1,-.8],[-.8,1]])\n\nxs=ot
4b00 2e 64 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 .datasets.get_2D_samples_gauss(n
4b20 2c 6d 75 5f 73 2c 63 6f 76 5f 73 29 5c 6e 78 74 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 ,mu_s,cov_s)\nxt=ot.datasets.get
4b40 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d 75 5f 74 2c 63 6f 76 5f 74 29 5c _2D_samples_gauss(n,mu_t,cov_t)\
4b60 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 69 66 28 6e 29 20 23 n\na,b.=.ot.unif(n),ot.unif(n).#
4b80 20 75 6e 69 66 6f 72 6d 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 .uniform.distribution.on.samples
4ba0 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 78 73 2c \n\n#.loss.matrix\nM=ot.dist(xs,
4bc0 78 74 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 73 61 6d 70 xt)\nM/=M.max()\n\n#%%.plot.samp
4be0 6c 65 73 5c 6e 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 23 70 6c 2e 70 6c 6f 74 28 78 les\n\n#pl.figure(1)\n#pl.plot(x
4c00 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
4c20 65 20 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 e.samples')\n#pl.plot(xt[:,0],xt
4c40 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 73 [:,1],'xr',label='Target.samples
4c60 27 29 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 ')\n#pl.legend(loc=0)\n#pl.title
4c80 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 72 61 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e ('Source.and.traget.distribution
4ca0 73 27 29 5c 6e 23 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 23 70 6c 2e 69 6d 73 68 6f s')\n#\n#pl.figure(2)\n#pl.imsho
4cc0 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 23 70 w(M,interpolation='nearest')\n#p
4ce0 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 23 5c 6e 5c 6e 23 l.title('Cost.matrix.M')\n#\n\n#
4d00 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 23 70 %%.EMD\n\nG0=ot.emd(a,b,M)\n\n#p
4d20 6c 2e 66 69 67 75 72 65 28 33 29 5c 6e 23 70 6c 2e 69 6d 73 68 6f 77 28 47 30 2c 69 6e 74 65 72 l.figure(3)\n#pl.imshow(G0,inter
4d40 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 23 70 6c 2e 74 69 74 6c 65 28 27 polation='nearest')\n#pl.title('
4d60 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 5c 6e 23 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 34 29 OT.matrix.G0')\n#\n#pl.figure(4)
4d80 5c 6e 23 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 \n#ot.plot.plot2D_samples_mat(xs
4da0 2c 78 74 2c 47 30 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 23 70 6c 2e 70 6c 6f 74 28 78 73 ,xt,G0,c=[.5,.5,1])\n#pl.plot(xs
4dc0 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 65 [:,0],xs[:,1],'+b',label='Source
4de0 20 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 .samples')\n#pl.plot(xt[:,0],xt[
4e00 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 73 27 :,1],'xr',label='Target.samples'
4e20 29 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 )\n#pl.legend(loc=0)\n#pl.title(
4e40 27 4f 54 20 6d 61 74 72 69 78 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 5c 6e 23 'OT.matrix.with.samples')\n\n\n#
4e60 25 25 20 73 69 6e 6b 68 6f 72 6e 5c 6e 5c 6e 23 20 72 65 67 20 74 65 72 6d 5c 6e 6c 61 6d 62 64 %%.sinkhorn\n\n#.reg.term\nlambd
4e80 3d 35 65 2d 33 5c 6e 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 =5e-3\n\nGs=ot.sinkhorn(a,b,M,la
4ea0 6d 62 64 29 5c 6e 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 35 29 5c 6e 23 70 6c 2e 69 6d 73 68 6f mbd)\n\n#pl.figure(5)\n#pl.imsho
4ec0 77 28 47 73 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 23 w(Gs,interpolation='nearest')\n#
4ee0 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 5c 6e pl.title('OT.matrix.sinkhorn')\n
4f00 23 5c 6e 23 70 6c 2e 66 69 67 75 72 65 28 36 29 5c 6e 23 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 #\n#pl.figure(6)\n#ot.plot.plot2
4f20 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 73 2c 63 6f 6c 6f 72 3d 5b 2e 35 D_samples_mat(xs,xt,Gs,color=[.5
4f40 2c 2e 35 2c 31 5d 29 5c 6e 23 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 ,.5,1])\n#pl.plot(xs[:,0],xs[:,1
4f60 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 29 5c 6e ],'+b',label='Source.samples')\n
4f80 23 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 27 2c 6c 61 #pl.plot(xt[:,0],xt[:,1],'xr',la
4fa0 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 23 70 6c 2e 6c 65 67 65 6e bel='Target.samples')\n#pl.legen
4fc0 64 28 6c 6f 63 3d 30 29 5c 6e 23 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 53 d(loc=0)\n#pl.title('OT.matrix.S
4fe0 69 6e 6b 68 6f 72 6e 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 5c 6e 23 22 0a 20 20 20 20 20 inkhorn.with.samples')\n#"......
5000 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":.[],.......
5020 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
5040 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.......}.....}...],....
5060 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":.
5080 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.
50a0 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",...
50c0 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".....},
50e0 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":.{......."
5100 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",.....
5120 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
5140 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",.....
5160 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",.....
5180 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",........"
51a0 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",....
51c0 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":.{........
51e0 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":.
5200 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.
5220 04 14 00 00 00 00 00 d7 6d c9 4a 40 dc a1 29 10 0a 00 00 10 0a 00 00 26 00 00 00 61 75 74 6f 5f ........m.J@..)........&...auto_
5240 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 79 6e examples/plot_OT_2D_samples.ipyn
5260 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 62 b{..."nbformat_minor":.0,...."nb
5280 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 0a format":.4,...."cells":.[.....{.
52a0 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,..
52c0 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",......
52e0 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 6c .."source":.[........."%matplotl
5300 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 70 ib.inline".......],........"outp
5320 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":.{..
5340 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.......
5360 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 20 }.....},......{......."source":.
5380 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 32 44 20 4f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 [........."\n#.2D.Optimal.transp
53a0 6f 72 74 20 62 65 74 77 65 65 6e 20 65 6d 70 69 72 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 ort.between.empirical.distributi
53c0 6f 6e 73 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 0a ons\n\n\n@author:.rflamary\n\n".
53e0 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 61 ......],........"cell_type":."ma
5400 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 20 rkdown",........"metadata":.{}..
5420 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 6f ...},......{......."execution_co
5440 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 20 unt":.null,........"cell_type":.
5460 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 20 "code",........"source":.[......
5480 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 6d ..."import.numpy.as.np\nimport.m
54a0 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 74 atplotlib.pylab.as.pl\nimport.ot
54c0 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 64 61 74 61 20 67 65 6e 65 \n\n#%%.parameters.and.data.gene
54e0 72 61 74 69 6f 6e 5c 6e 5c 6e 6e 3d 32 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 6d 75 ration\n\nn=2.#.nb.samples\n\nmu
5500 5f 73 3d 6e 70 2e 61 72 72 61 79 28 5b 30 2c 30 5d 29 5c 6e 63 6f 76 5f 73 3d 6e 70 2e 61 72 72 _s=np.array([0,0])\ncov_s=np.arr
5520 61 79 28 5b 5b 31 2c 30 5d 2c 5b 30 2c 31 5d 5d 29 5c 6e 5c 6e 6d 75 5f 74 3d 6e 70 2e 61 72 72 ay([[1,0],[0,1]])\n\nmu_t=np.arr
5540 61 79 28 5b 34 2c 34 5d 29 5c 6e 63 6f 76 5f 74 3d 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 2d 2e ay([4,4])\ncov_t=np.array([[1,-.
5560 38 5d 2c 5b 2d 2e 38 2c 31 5d 5d 29 5c 6e 5c 6e 78 73 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 8],[-.8,1]])\n\nxs=ot.datasets.g
5580 65 74 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d 75 5f 73 2c 63 6f 76 5f 73 et_2D_samples_gauss(n,mu_s,cov_s
55a0 29 5c 6e 78 74 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 65 73 )\nxt=ot.datasets.get_2D_samples
55c0 5f 67 61 75 73 73 28 6e 2c 6d 75 5f 74 2c 63 6f 76 5f 74 29 5c 6e 5c 6e 61 2c 62 20 3d 20 6f 74 _gauss(n,mu_t,cov_t)\n\na,b.=.ot
55e0 2e 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 .unif(n),ot.unif(n).#.uniform.di
5600 73 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 23 20 6c 6f 73 73 20 stribution.on.samples\n\n#.loss.
5620 6d 61 74 72 69 78 5c 6e 4d 3d 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 29 5c 6e 4d 2f 3d 4d 2e 6d matrix\nM=ot.dist(xs,xt)\nM/=M.m
5640 61 78 28 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 70 6c 2e 66 ax()\n\n#%%.plot.samples\n\npl.f
5660 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 igure(1)\npl.plot(xs[:,0],xs[:,1
5680 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 29 5c 6e ],'+b',label='Source.samples')\n
56a0 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 27 2c 6c 61 62 pl.plot(xt[:,0],xt[:,1],'xr',lab
56c0 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 el='Target.samples')\npl.legend(
56e0 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 72 61 loc=0)\npl.title('Source.and.tra
5700 67 65 74 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 get.distributions')\n\npl.figure
5720 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='
5740 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
5760 20 4d 27 29 5c 6e 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
5780 2c 62 2c 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 ,b,M)\n\npl.figure(3)\npl.imshow
57a0 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 70 6c (G0,interpolation='nearest')\npl
57c0 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 .title('OT.matrix.G0')\n\npl.fig
57e0 75 72 65 28 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 73 5f 6d ure(4)\not.plot.plot2D_samples_m
5800 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 70 6c 6f at(xs,xt,G0,c=[.5,.5,1])\npl.plo
5820 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 6c 3d 27 53 6f t(xs[:,0],xs[:,1],'+b',label='So
5840 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c urce.samples')\npl.plot(xt[:,0],
5860 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 6c xt[:,1],'xr',label='Target.sampl
5880 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 es')\npl.legend(loc=0)\npl.title
58a0 28 27 4f 54 20 6d 61 74 72 69 78 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 5c 6e ('OT.matrix.with.samples')\n\n\n
58c0 23 25 25 20 73 69 6e 6b 68 6f 72 6e 5c 6e 5c 6e 23 20 72 65 67 20 74 65 72 6d 5c 6e 6c 61 6d 62 #%%.sinkhorn\n\n#.reg.term\nlamb
58e0 64 3d 35 65 2d 33 5c 6e 5c 6e 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c d=5e-3\n\nGs=ot.sinkhorn(a,b,M,l
5900 61 6d 62 64 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 ambd)\n\npl.figure(5)\npl.imshow
5920 28 47 73 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 70 6c (Gs,interpolation='nearest')\npl
5940 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e .title('OT.matrix.sinkhorn')\n\n
5960 70 6c 2e 66 69 67 75 72 65 28 36 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d pl.figure(6)\not.plot.plot2D_sam
5980 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 73 2c 63 6f 6c 6f 72 3d 5b 2e 35 2c 2e 35 2c 31 ples_mat(xs,xt,Gs,color=[.5,.5,1
59a0 5d 29 5c 6e 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 ])\npl.plot(xs[:,0],xs[:,1],'+b'
59c0 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 2e 70 6c 6f ,label='Source.samples')\npl.plo
59e0 74 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 t(xt[:,0],xt[:,1],'xr',label='Ta
5a00 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 rget.samples')\npl.legend(loc=0)
5a20 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 20 77 \npl.title('OT.matrix.Sinkhorn.w
5a40 69 74 68 20 73 61 6d 70 6c 65 73 27 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 ith.samples')".......],........"
5a60 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":
5a80 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...
5aa0 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":.
5ac0 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
5ae0 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",........"
5b00 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
5b20 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
5b40 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":."
5b60 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
5b80 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
5ba0 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
5bc0 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"
5be0 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
5c00 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
5c20 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":.
5c40 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"...
5c60 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 75 7b 82 49 55 ....}.....}...}.}PK........u{.IU
5c80 d4 67 d2 3c 0e 00 00 3c 0e 00 00 20 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f .g.<...<.......auto_examples/plo
5ca0 74 5f 4f 54 44 41 5f 32 44 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e t_OTDA_2D.ipynb{..."nbformat_min
5cc0 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
5ce0 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
5d00 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":
5d20 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":.[.....
5d40 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".......]
5d60 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":.[],........"
5d80 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"
5da0 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.......}.....},......{...
5dc0 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 ...."source":.[........."\n#.OT.
5de0 66 6f 72 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 5c for.empirical.distributions\n\n\
5e00 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 22 n\n".......],........"cell_type"
5e20 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 3a :."markdown",........"metadata":
5e40 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 69 .{}.....},......{......."executi
5e60 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 79 on_count":.null,........"cell_ty
5e80 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 0a pe":."code",........"source":.[.
5ea0 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 70 ........"import.numpy.as.np\nimp
5ec0 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
5ee0 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 73 5c 6e 5c 6e 6e rt.ot\n\n\n\n#%%.parameters\n\nn
5f00 3d 31 35 30 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 78 73 2c 79 73 3d 6f 74 2e 64 61 74 61 73 =150.#.nb.bins\n\nxs,ys=ot.datas
5f20 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 29 ets.get_data_classif('3gauss',n)
5f40 5c 6e 78 74 2c 79 74 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 \nxt,yt=ot.datasets.get_data_cla
5f60 73 73 69 66 28 27 33 67 61 75 73 73 32 27 2c 6e 29 5c 6e 5c 6e 61 2c 62 20 3d 20 6f 74 2e 75 6e ssif('3gauss2',n)\n\na,b.=.ot.un
5f80 69 66 28 6e 29 2c 6f 74 2e 75 6e 69 66 28 6e 29 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c if(n),ot.unif(n)\n#.loss.matrix\
5fa0 6e 4d 3d 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 29 5c 6e 23 4d 2f 3d 4d 2e 6d 61 78 28 29 5c 6e nM=ot.dist(xs,xt)\n#M/=M.max()\n
5fc0 5c 6e 23 25 25 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 \n#%%.plot.samples\n\npl.figure(
5fe0 31 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 5c 6e 70 6c 2e 73 63 61 74 1)\n\npl.subplot(2,2,1)\npl.scat
6000 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 6b 65 72 3d ter(xs[:,0],xs[:,1],c=ys,marker=
6020 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 2e '+',label='Source.samples')\npl.
6040 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 legend(loc=0)\npl.title('Source.
6060 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 .distributions')\n\npl.subplot(2
6080 2c 32 2c 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 5b 3a 2c 31 ,2,2)\npl.scatter(xt[:,0],xt[:,1
60a0 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.
60c0 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.
60e0 74 69 74 6c 65 28 27 74 61 72 67 65 74 20 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e title('target..distributions')\n
6100 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 69 6e 74 65 \npl.figure(2)\npl.imshow(M,inte
6120 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 27 rpolation='nearest')\npl.title('
6140 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 5c 6e 5c 6e 5c 6e 23 25 25 20 4f 54 20 65 73 74 69 Cost.matrix.M')\n\n\n#%%.OT.esti
6160 6d 61 74 69 6f 6e 5c 6e 5c 6e 23 20 45 4d 44 5c 6e 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d mation\n\n#.EMD\nG0=ot.emd(a,b,M
6180 29 5c 6e 5c 6e 23 20 73 69 6e 6b 68 6f 72 6e 5c 6e 6c 61 6d 62 64 3d 31 65 2d 31 5c 6e 47 73 3d )\n\n#.sinkhorn\nlambd=1e-1\nGs=
61a0 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 5c 6e 23 20 ot.sinkhorn(a,b,M,lambd)\n\n\n#.
61c0 47 72 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 72 65 67 3d Group.lasso.regularization\nreg=
61e0 31 65 2d 31 5c 6e 65 74 61 3d 31 65 30 5c 6e 47 67 3d 6f 74 2e 64 61 2e 73 69 6e 6b 68 6f 72 6e 1e-1\neta=1e0\nGg=ot.da.sinkhorn
6200 5f 6c 70 6c 31 5f 6d 6d 28 61 2c 79 73 2e 61 73 74 79 70 65 28 6e 70 2e 69 6e 74 29 2c 62 2c 4d _lpl1_mm(a,ys.astype(np.int),b,M
6220 2c 72 65 67 2c 65 74 61 29 5c 6e 5c 6e 5c 6e 23 25 25 20 76 69 73 75 20 6d 61 74 72 69 63 65 73 ,reg,eta)\n\n\n#%%.visu.matrices
6240 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 \n\npl.figure(3)\n\npl.subplot(2
6260 2c 33 2c 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 30 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f ,3,1)\npl.imshow(G0,interpolatio
6280 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 6d 61 74 72 69 n='nearest')\npl.title('OT.matri
62a0 78 20 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 5c 6e 70 6c 2e 69 6d x.')\n\npl.subplot(2,3,2)\npl.im
62c0 73 68 6f 77 28 47 73 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 show(Gs,interpolation='nearest')
62e0 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 \npl.title('OT.matrix.Sinkhorn')
6300 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 6d 73 68 6f 77 \n\npl.subplot(2,3,3)\npl.imshow
6320 28 47 67 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 70 6c (Gg,interpolation='nearest')\npl
6340 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 72 6f 75 70 20 6c 61 73 73 6f 27 29 5c .title('OT.matrix.Group.lasso')\
6360 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c n\npl.subplot(2,3,4)\not.plot.pl
6380 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 2c 63 3d 5b 2e 35 2c ot2D_samples_mat(xs,xt,G0,c=[.5,
63a0 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 2c 78 73 5b 3a 2c .5,1])\npl.scatter(xs[:,0],xs[:,
63c0 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 53 6f 75 72 63 65 1],c=ys,marker='+',label='Source
63e0 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 3a 2c 30 5d 2c 78 .samples')\npl.scatter(xt[:,0],x
6400 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 27 54 61 t[:,1],c=yt,marker='o',label='Ta
6420 72 67 65 74 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 32 rget.samples')\n\n\npl.subplot(2
6440 2c 33 2c 35 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 ,3,5)\not.plot.plot2D_samples_ma
6460 74 28 78 73 2c 78 74 2c 47 73 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 5c 6e 70 6c 2e 73 63 61 74 t(xs,xt,Gs,c=[.5,.5,1])\npl.scat
6480 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 6b 65 72 3d ter(xs[:,0],xs[:,1],c=ys,marker=
64a0 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 2e '+',label='Source.samples')\npl.
64c0 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 72 scatter(xt[:,0],xt[:,1],c=yt,mar
64e0 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 29 5c ker='o',label='Target.samples')\
6500 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 36 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c n\npl.subplot(2,3,6)\not.plot.pl
6520 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 67 2c 63 3d 5b 2e 35 2c ot2D_samples_mat(xs,xt,Gg,c=[.5,
6540 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 2c 78 73 5b 3a 2c .5,1])\npl.scatter(xs[:,0],xs[:,
6560 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 53 6f 75 72 63 65 1],c=ys,marker='+',label='Source
6580 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 3a 2c 30 5d 2c 78 .samples')\npl.scatter(xt[:,0],x
65a0 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 27 54 61 t[:,1],c=yt,marker='o',label='Ta
65c0 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 23 25 25 20 73 61 6d 70 6c 65 20 69 6e 74 rget.samples')\n\n#%%.sample.int
65e0 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 5c 6e 78 73 74 30 3d 6e 2a 47 30 2e 64 6f 74 28 78 74 29 5c erpolation\n\nxst0=n*G0.dot(xt)\
6600 6e 78 73 74 73 3d 6e 2a 47 73 2e 64 6f 74 28 78 74 29 5c 6e 78 73 74 67 3d 6e 2a 47 67 2e 64 6f nxsts=n*Gs.dot(xt)\nxstg=n*Gg.do
6620 74 28 78 74 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f t(xt)\n\npl.figure(4)\npl.subplo
6640 74 28 32 2c 33 2c 31 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d t(2,3,1)\n\n\npl.scatter(xt[:,0]
6660 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 27 ,xt[:,1],c=yt,marker='o',label='
6680 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 Target.samples',alpha=0.5)\npl.s
66a0 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 73 2c catter(xst0[:,0],xst0[:,1],c=ys,
66c0 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 6d 70 6c 65 73 marker='+',label='Transp.samples
66e0 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 61 6d 70 6c 65 ',s=30)\npl.title('Interp.sample
6700 73 27 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 75 62 70 s')\npl.legend(loc=0)\n\npl.subp
6720 6c 6f 74 28 32 2c 33 2c 32 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c lot(2,3,2)\n\n\npl.scatter(xt[:,
6740 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 6c 0],xt[:,1],c=yt,marker='o',label
6760 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 35 29 5c 6e 70 6c ='Target.samples',alpha=0.5)\npl
6780 2e 73 63 61 74 74 65 72 28 78 73 74 73 5b 3a 2c 30 5d 2c 78 73 74 73 5b 3a 2c 31 5d 2c 63 3d 79 .scatter(xsts[:,0],xsts[:,1],c=y
67a0 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 6d 70 6c s,marker='+',label='Transp.sampl
67c0 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 61 6d 70 es',s=30)\npl.title('Interp.samp
67e0 6c 65 73 20 53 69 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 33 les.Sinkhorn')\n\npl.subplot(2,3
6800 2c 33 29 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 ,3)\n\npl.scatter(xt[:,0],xt[:,1
6820 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.
6840 73 61 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 samples',alpha=0.5)\npl.scatter(
6860 78 73 74 67 5b 3a 2c 30 5d 2c 78 73 74 67 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d xstg[:,0],xstg[:,1],c=ys,marker=
6880 27 2b 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 '+',label='Transp.samples',s=30)
68a0 5c 6e 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 47 72 6f 75 70 \npl.title('Interp.samples.Group
68c0 6c 61 73 73 6f 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 lasso')".......],........"output
68e0 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 20 s":.[],........"metadata":.{....
6900 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 0a ....."collapsed":.false.......}.
6920 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 20 20 ....}...],...."metadata":.{.....
6940 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e "kernelspec":.{......."display_n
6960 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 22 3a ame":."Python.2",........"name":
6980 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 20 22 ."python2",........"language":."
69a0 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 69 6e python".....},......"language_in
69c0 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 2f 78 fo":.{......."mimetype":."text/x
69e0 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 70 6f -python",........"nbconvert_expo
6a00 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 3a 20 rter":."python",........"name":.
6a20 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 6f 6e "python",........"file_extension
6a40 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 2e 37 ":.".py",........"version":."2.7
6a60 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 20 22 .12",........"pygments_lexer":."
6a80 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 6d 6f ipython2",........"codemirror_mo
6aa0 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 20 20 de":.{........."version":.2,....
6ac0 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 7d 0a ......"name":."ipython".......}.
6ae0 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 6a 7b 82 49 cd 14 1c 01 46 09 00 ....}...}.}PK........j{.I....F..
6b00 00 46 09 00 00 23 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 31 .F...#...auto_examples/demo_OT_1
6b20 44 5f 74 65 73 74 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 D_test.ipynb{..."nbformat_minor"
6b40 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 6c 6c 73 :.0,...."nbformat":.4,...."cells
6b60 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 6f 75 6e ":.[.....{......."execution_coun
6b80 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 20 22 63 t":.null,........"cell_type":."c
6ba0 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 20 20 20 ode",........"source":.[........
6bc0 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 2c 20 0a ."%matplotlib.inline".......],..
6be0 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 65 74 ......"outputs":.[],........"met
6c00 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
6c20 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 20 20 20 alse.......}.....},......{......
6c40 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 66 6f 72 ."source":.[........."\nDemo.for
6c60 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 40 61 75 74 68 6f 72 .1D.optimal.transport\n\n@author
6c80 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 20 20 :.rflamary\n\n".......],........
6ca0 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 20 20 "cell_type":."markdown",........
6cc0 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 20 20 "metadata":.{}.....},......{....
6ce0 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 20 20 ..."execution_count":.null,.....
6d00 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 20 22 ..."cell_type":."code",........"
6d20 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 source":.[........."import.numpy
6d40 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 .as.np\nimport.matplotlib.pylab.
6d60 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 as.pl\nimport.ot\nfrom.ot.datase
6d80 74 73 20 69 6d 70 6f 72 74 20 67 65 74 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 5c ts.import.get_1D_gauss.as.gauss\
6da0 6e 5c 6e 5c 6e 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 3d 31 30 30 20 23 20 6e n\n\n#%%.parameters\n\nn=100.#.n
6dc0 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 3d 6e 70 2e b.bins\n\n#.bin.positions\nx=np.
6de0 61 72 61 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 arange(n,dtype=np.float64)\n\n#.
6e00 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 3d 67 61 75 73 73 28 Gaussian.distributions\na=gauss(
6e20 6e 2c 6d 3d 6e 2a 2e 32 2c 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c n,m=n*.2,s=5).#.m=.mean,.s=.std\
6e40 6e 62 3d 67 61 75 73 73 28 6e 2c 6d 3d 6e 2a 2e 36 2c 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 nb=gauss(n,m=n*.6,s=10)\n\n#.los
6e60 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 65 28 28 6e s.matrix\nM=ot.dist(x.reshape((n
6e80 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 2e 6d 61 78 ,1)),x.reshape((n,1)))\nM/=M.max
6ea0 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 69 6f 6e 73 ()\n\n#%%.plot.the.distributions
6ec0 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 61 2c 27 62 \n\npl.figure(1)\npl.plot(x,a,'b
6ee0 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 27 29 5c 6e ',label='Source.distribution')\n
6f00 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 74 20 64 69 pl.plot(x,b,'r',label='Target.di
6f20 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e 23 25 25 stribution')\npl.legend()\n\n#%%
6f40 20 70 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 73 20 6d 61 74 .plot.distributions.and.loss.mat
6f60 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 2e 70 6c 6f rix\n\npl.figure(2)\not.plot.plo
6f80 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 27 29 5c 6e t1D_mat(a,b,M,'Cost.matrix.M')\n
6fa0 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 29 5c 6e 5c \n#%%.EMD\n\nG0=ot.emd(a,b,M)\n\
6fc0 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 44 5f 6d 61 npl.figure(3)\not.plot.plot1D_ma
6fe0 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 23 25 25 20 t(a,b,G0,'OT.matrix.G0')\n\n#%%.
7000 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 74 2e 73 69 Sinkhorn\n\nlambd=1e-3\nGs=ot.si
7020 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 72 75 65 29 nkhorn(a,b,M,lambd,verbose=True)
7040 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 6f 74 31 44 \n\npl.figure(4)\not.plot.plot1D
7060 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 6f 72 6e 27 _mat(a,b,Gs,'OT.matrix.Sinkhorn'
7080 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 2d 34 5c )\n\n#%%.Sinkhorn\n\nlambd=1e-4\
70a0 6e 47 73 73 2c 6c 6f 67 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 6f 72 6e 5f 73 74 61 nGss,log=ot.bregman.sinkhorn_sta
70c0 62 69 6c 69 7a 65 64 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 bilized(a,b,M,lambd,verbose=True
70e0 2c 6c 6f 67 3d 54 72 75 65 29 5c 6e 47 73 73 32 2c 6c 6f 67 32 3d 6f 74 2e 62 72 65 67 6d 61 6e ,log=True)\nGss2,log2=ot.bregman
7100 2e 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 .sinkhorn_stabilized(a,b,M,lambd
7120 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 6c 6f 67 3d 54 72 75 65 2c 77 61 72 6d 73 74 61 72 74 ,verbose=True,log=True,warmstart
7140 3d 6c 6f 67 5b 27 77 61 72 6d 73 74 61 72 74 27 5d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 =log['warmstart'])\n\npl.figure(
7160 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 62 2c 47 73 73 2c 27 5)\not.plot.plot1D_mat(a,b,Gss,'
7180 4f 54 20 6d 61 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 5c OT.matrix.Sinkhorn.stabilized')\
71a0 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 2d 31 31 5c 6e n\n#%%.Sinkhorn\n\nlambd=1e-11\n
71c0 47 73 73 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 6f 72 6e 5f 65 70 73 69 6c 6f 6e 5f Gss=ot.bregman.sinkhorn_epsilon_
71e0 73 63 61 6c 69 6e 67 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 scaling(a,b,M,lambd,verbose=True
7200 29 5c 6e 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 )\n\npl.figure(5)\not.plot.plot1
7220 44 5f 6d 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 D_mat(a,b,Gss,'OT.matrix.Sinkhor
7240 6e 20 73 74 61 62 69 6c 69 7a 65 64 27 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 n.stabilized')".......],........
7260 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"
7280 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..
72a0 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 22 3a .....}.....}...],...."metadata":
72c0 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 .{....."kernelspec":.{......."di
72e0 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 20 20 splay_name":."Python.2",........
7300 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 67 75 "name":."python2",........"langu
7320 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 6e 67 age":."python".....},......"lang
7340 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 3a 20 uage_info":.{......."mimetype":.
7360 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 76 65 "text/x-python",........"nbconve
7380 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 20 22 rt_exporter":."python",........"
73a0 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 65 78 name":."python",........"file_ex
73c0 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 6f 6e tension":.".py",........"version
73e0 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 6c 65 ":."2.7.12",........"pygments_le
7400 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 6d 69 xer":."ipython2",........"codemi
7420 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 22 3a rror_mode":.{........."version":
7440 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 0a 20 .2,.........."name":."ipython"..
7460 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 00 86 7b 82 49 .....}.....}...}.}PK.........{.I
7480 4f 22 f2 c8 74 0e 00 00 74 0e 00 00 2a 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c O"..t...t...*...auto_examples/pl
74a0 6f 74 5f 4f 54 44 41 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 6e ot_OTDA_color_images.ipynb{..."n
74c0 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"
74e0 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":.[.....{......."
7500 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,........"
7520 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
7540 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
7560 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":.[
7580 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":.{.........
75a0 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.......}.....}
75c0 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":.[......
75e0 20 20 20 22 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 ..."\n==========================
7600 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
7620 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 77 69 74 68 20 69 6d OT.for.domain.adaptation.with.im
7640 61 67 65 20 63 6f 6c 6f 72 20 61 64 61 70 74 61 74 69 6f 6e 20 5b 36 5d 5c 6e 3d 3d 3d 3d 3d 3d age.color.adaptation.[6]\n======
7660 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 ================================
7680 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 72 72 61 64 ==================\n\n[6].Ferrad
76a0 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 65 2c 20 47 ans,.S.,.Papadakis,.N.,.Peyre,.G
76c0 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 67 75 6c 61 .,.&.Aujol,.J..F..(2014)..Regula
76e0 72 69 7a 65 64 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 rized.discrete.optimal.transport
7700 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e 63 ..SIAM.Journal.on.Imaging.Scienc
7720 65 73 2c 20 37 28 33 29 2c 20 31 38 35 33 2d 31 38 38 32 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 es,.7(3),.1853-1882.\n\n".......
7740 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
7760 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":.{}.....},.
7780 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":.
77a0 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"
77c0 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
77e0 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 73 63 69 70 79 2e 6e port.numpy.as.np\nimport.scipy.n
7800 64 69 6d 61 67 65 20 61 73 20 73 70 69 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 dimage.as.spi\nimport.matplotlib
7820 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 23 25 25 .pylab.as.pl\nimport.ot\n\n\n#%%
7840 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 5c 6e 49 31 3d 73 70 69 2e 69 6d 72 65 61 64 .Loading.images\n\nI1=spi.imread
7860 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 ('../data/ocean_day.jpg').astype
7880 28 6e 70 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 5c 6e 49 32 3d 73 70 69 2e 69 6d 72 65 61 64 28 (np.float64)/256\nI2=spi.imread(
78a0 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 67 27 29 2e 61 73 74 79 '../data/ocean_sunset.jpg').asty
78c0 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 5c 6e 5c 6e 23 25 25 20 50 6c 6f 74 20 69 pe(np.float64)/256\n\n#%%.Plot.i
78e0 6d 61 67 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 62 70 mages\n\npl.figure(1)\n\npl.subp
7900 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 74 69 lot(1,2,1)\npl.imshow(I1)\npl.ti
7920 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 tle('Image.1')\n\npl.subplot(1,2
7940 2c 32 29 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 ,2)\npl.imshow(I2)\npl.title('Im
7960 61 67 65 20 32 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 5c 6e 5c 6e 23 25 25 20 49 6d 61 67 age.2')\n\npl.show()\n\n#%%.Imag
7980 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 61 6e 64 20 64 61 74 61 73 65 74 20 67 65 6e 65 72 61 74 e.conversion.and.dataset.generat
79a0 69 6f 6e 5c 6e 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c ion\n\ndef.im2mat(I):\n....\"\"\
79c0 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 65 20 74 6f 20 6d 61 74 72 69 78 20 28 6f "Converts.and.image.to.matrix.(o
79e0 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 ne.pixel.per.line)\"\"\"\n....re
7a00 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 5b 30 5d 2a 49 2e 73 68 61 turn.I.reshape((I.shape[0]*I.sha
7a20 70 65 5b 31 5d 2c 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 69 6d pe[1],I.shape[2]))\n\ndef.mat2im
7a40 28 58 2c 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 62 (X,shape):\n....\"\"\"Converts.b
7a60 61 63 6b 20 61 20 6d 61 74 72 69 78 20 74 6f 20 61 6e 20 69 6d 61 67 65 5c 22 5c 22 5c 22 5c 6e ack.a.matrix.to.an.image\"\"\"\n
7a80 20 20 20 20 72 65 74 75 72 6e 20 58 2e 72 65 73 68 61 70 65 28 73 68 61 70 65 29 5c 6e 5c 6e 58 ....return.X.reshape(shape)\n\nX
7aa0 31 3d 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 3d 69 6d 32 6d 61 74 28 49 32 29 5c 6e 5c 6e 23 1=im2mat(I1)\nX2=im2mat(I2)\n\n#
7ac0 20 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 5c 6e 6e 62 3d 31 30 30 30 5c 6e 69 64 78 31 .training.samples\nnb=1000\nidx1
7ae0 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 58 31 2e 73 68 61 70 65 5b 30 5d 2c 73 =np.random.randint(X1.shape[0],s
7b00 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 69 64 78 32 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 ize=(nb,))\nidx2=np.random.randi
7b20 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 5c 6e 78 73 nt(X2.shape[0],size=(nb,))\n\nxs
7b40 3d 58 31 5b 69 64 78 31 2c 3a 5d 5c 6e 78 74 3d 58 32 5b 69 64 78 32 2c 3a 5d 5c 6e 5c 6e 23 25 =X1[idx1,:]\nxt=X2[idx2,:]\n\n#%
7b60 25 20 50 6c 6f 74 20 69 6d 61 67 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e %.Plot.image.distributions\n\n\n
7b80 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f pl.figure(2,(10,5))\n\npl.subplo
7ba0 74 28 31 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 2c 78 73 5b t(1,2,1)\npl.scatter(xs[:,0],xs[
7bc0 3a 2c 32 5d 2c 63 3d 78 73 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 5c 6e :,2],c=xs)\npl.axis([0,1,0,1])\n
7be0 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 75 pl.xlabel('Red')\npl.ylabel('Blu
7c00 65 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 e')\npl.title('Image.1')\n\npl.s
7c20 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 5c 6e 23 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 ubplot(1,2,2)\n#pl.imshow(I2)\np
7c40 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 32 5d 2c 63 3d 78 74 29 5c l.scatter(xt[:,0],xt[:,2],c=xt)\
7c60 6e 70 6c 2e 61 78 69 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 npl.axis([0,1,0,1])\npl.xlabel('
7c80 52 65 64 27 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e 74 69 74 Red')\npl.ylabel('Blue')\npl.tit
7ca0 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 5c 6e 5c 6e 5c 6e le('Image.2')\n\npl.show()\n\n\n
7cc0 5c 6e 23 25 25 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 \n#%%.domain.adaptation.between.
7ce0 69 6d 61 67 65 73 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 images\n\n#.LP.problem\nda_emd=o
7d00 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 73 73 5c 6e 64 61 t.da.OTDA().....#.init.class\nda
7d20 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 74 20 64 69 73 74 _emd.fit(xs,xt).......#.fit.dist
7d40 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 23 20 73 69 6e 6b 68 6f 72 6e 20 72 65 67 75 6c 61 ributions\n\n\n#.sinkhorn.regula
7d60 72 69 7a 61 74 69 6f 6e 5c 6e 6c 61 6d 62 64 3d 31 65 2d 31 5c 6e 64 61 5f 65 6e 74 72 6f 70 3d rization\nlambd=1e-1\nda_entrop=
7d80 6f 74 2e 64 61 2e 4f 54 44 41 5f 73 69 6e 6b 68 6f 72 6e 28 29 5c 6e 64 61 5f 65 6e 74 72 6f 70 ot.da.OTDA_sinkhorn()\nda_entrop
7da0 2e 66 69 74 28 78 73 2c 78 74 2c 72 65 67 3d 6c 61 6d 62 64 29 5c 6e 5c 6e 5c 6e 5c 6e 23 25 25 .fit(xs,xt,reg=lambd)\n\n\n\n#%%
7dc0 20 70 72 65 64 69 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 69 6d 61 67 65 73 20 28 75 73 69 6e .prediction.between.images.(usin
7de0 67 20 6f 75 74 20 6f 66 20 73 61 6d 70 6c 65 20 70 72 65 64 69 63 74 69 6f 6e 20 61 73 20 69 6e g.out.of.sample.prediction.as.in
7e00 20 5b 36 5d 29 5c 6e 5c 6e 58 31 74 3d 64 61 5f 65 6d 64 2e 70 72 65 64 69 63 74 28 58 31 29 5c .[6])\n\nX1t=da_emd.predict(X1)\
7e20 6e 58 32 74 3d 64 61 5f 65 6d 64 2e 70 72 65 64 69 63 74 28 58 32 2c 2d 31 29 5c 6e 5c 6e 5c 6e nX2t=da_emd.predict(X2,-1)\n\n\n
7e40 58 31 74 65 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 28 58 31 29 5c 6e 58 32 74 65 X1te=da_entrop.predict(X1)\nX2te
7e60 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 28 58 32 2c 2d 31 29 5c 6e 5c 6e 5c 6e 64 =da_entrop.predict(X2,-1)\n\n\nd
7e80 65 66 20 6d 69 6e 6d 61 78 28 49 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 6d 69 6e ef.minmax(I):\n....return.np.min
7ea0 69 6d 75 6d 28 6e 70 2e 6d 61 78 69 6d 75 6d 28 49 2c 30 29 2c 31 29 5c 6e 5c 6e 49 31 74 3d 6d imum(np.maximum(I,0),1)\n\nI1t=m
7ec0 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 49 32 74 inmax(mat2im(X1t,I1.shape))\nI2t
7ee0 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 32 74 2c 49 32 2e 73 68 61 70 65 29 29 5c 6e 5c =minmax(mat2im(X2t,I2.shape))\n\
7f00 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 2e 73 68 61 70 nI1te=minmax(mat2im(X1te,I1.shap
7f20 65 29 29 5c 6e 49 32 74 65 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 32 74 65 2c 49 32 2e e))\nI2te=minmax(mat2im(X2te,I2.
7f40 73 68 61 70 65 29 29 5c 6e 5c 6e 23 25 25 20 70 6c 6f 74 20 61 6c 6c 20 69 6d 61 67 65 73 5c 6e shape))\n\n#%%.plot.all.images\n
7f60 5c 6e 70 6c 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 \npl.figure(2,(10,8))\n\npl.subp
7f80 6c 6f 74 28 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 lot(2,3,1)\n\npl.imshow(I1)\npl.
7fa0 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 title('Image.1')\n\npl.subplot(2
7fc0 2c 33 2c 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 ,3,2)\npl.imshow(I1t)\npl.title(
7fe0 27 49 6d 61 67 65 20 31 20 41 64 61 70 74 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 'Image.1.Adapt')\n\n\npl.subplot
8000 28 32 2c 33 2c 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 65 29 5c 6e 70 6c 2e 74 69 74 (2,3,3)\npl.imshow(I1te)\npl.tit
8020 6c 65 28 27 49 6d 61 67 65 20 31 20 41 64 61 70 74 20 28 72 65 67 29 27 29 5c 6e 5c 6e 70 6c 2e le('Image.1.Adapt.(reg)')\n\npl.
8040 73 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 5c 6e 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c subplot(2,3,4)\n\npl.imshow(I2)\
8060 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 75 62 70 6c npl.title('Image.2')\n\npl.subpl
8080 6f 74 28 32 2c 33 2c 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 29 5c 6e 70 6c 2e 74 69 ot(2,3,5)\npl.imshow(I2t)\npl.ti
80a0 74 6c 65 28 27 49 6d 61 67 65 20 32 20 41 64 61 70 74 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e 73 75 62 tle('Image.2.Adapt')\n\n\npl.sub
80c0 70 6c 6f 74 28 32 2c 33 2c 36 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 65 29 5c 6e 70 6c plot(2,3,6)\npl.imshow(I2te)\npl
80e0 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 20 41 64 61 70 74 20 28 72 65 67 29 27 29 5c 6e 5c .title('Image.2.Adapt.(reg)')\n\
8100 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 20 20 22 6f 75 74 npl.show()".......],........"out
8120 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":.{.
8140 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......
8160 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 7b 0a 20 .}.....}...],...."metadata":.{..
8180 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 70 6c 61 ..."kernelspec":.{......."displa
81a0 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 6e 61 6d y_name":."Python.2",........"nam
81c0 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 67 65 22 e":."python2",........"language"
81e0 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 61 67 65 :."python".....},......"language
8200 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 74 65 78 _info":.{......."mimetype":."tex
8220 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 74 5f 65 t/x-python",........"nbconvert_e
8240 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 61 6d 65 xporter":."python",........"name
8260 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 65 6e 73 ":."python",........"file_extens
8280 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 3a 20 22 ion":.".py",........"version":."
82a0 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 65 72 22 2.7.12",........"pygments_lexer"
82c0 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 72 6f 72 :."ipython2",........"codemirror
82e0 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 32 2c 20 _mode":.{........."version":.2,.
8300 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 20 20 20 ........."name":."ipython"......
8320 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 d7 7b 82 49 c4 9e 28 9b .}.....}...}.}PK.........{.I..(.
8340 ea 11 00 00 ea 11 00 00 32 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f ........2...auto_examples/plot_O
8360 54 44 41 5f 6d 61 70 70 69 6e 67 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 7b 0a TDA_mapping_color_images.ipynb{.
8380 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 6f 72 .."nbformat_minor":.0,...."nbfor
83a0 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 20 20 mat":.4,...."cells":.[.....{....
83c0 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 20 20 ..."execution_count":.null,.....
83e0 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 20 22 ..."cell_type":."code",........"
8400 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 62 20 source":.[........."%matplotlib.
8420 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 74 73 inline".......],........"outputs
8440 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 20 20 ":.[],........"metadata":.{.....
8460 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 0a 20 ...."collapsed":.false.......}..
8480 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 0a 20 ...},......{......."source":.[..
84a0 20 20 20 20 20 20 20 22 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ......."\n======================
84c0 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 ================================
84e0 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
8500 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 77 69 74 68 20 69 6d OT.for.domain.adaptation.with.im
8520 61 67 65 20 63 6f 6c 6f 72 20 61 64 61 70 74 61 74 69 6f 6e 20 5b 36 5d 20 77 69 74 68 20 6d 61 age.color.adaptation.[6].with.ma
8540 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 5b 38 5d 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d pping.estimation.[8]\n==========
8560 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 ================================
8580 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 ================================
85a0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 5c 6e 5b 36 5d 20 46 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c ==========\n\n[6].Ferradans,.S.,
85c0 20 50 61 70 61 64 61 6b 69 73 2c 20 4e 2e 2c 20 50 65 79 72 65 2c 20 47 2e 2c 20 26 20 41 75 6a .Papadakis,.N.,.Peyre,.G.,.&.Auj
85e0 6f 6c 2c 20 4a 2e 20 46 2e 20 28 32 30 31 34 29 2e 20 52 65 67 75 6c 61 72 69 7a 65 64 5c 6e 20 ol,.J..F..(2014)..Regularized\n.
8600 20 20 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 2e 20 53 ...discrete.optimal.transport..S
8620 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e 63 65 73 2c IAM.Journal.on.Imaging.Sciences,
8640 20 37 28 33 29 2c 20 31 38 35 33 2d 31 38 38 32 2e 5c 6e 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 .7(3),.1853-1882.\n[8].M..Perrot
8660 2c 20 4e 2e 20 43 6f 75 72 74 79 2c 20 52 2e 20 46 6c 61 6d 61 72 79 2c 20 41 2e 20 48 61 62 72 ,.N..Courty,.R..Flamary,.A..Habr
8680 61 72 64 2c 20 5c 22 4d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 5c 6e 20 ard,.\"Mapping.estimation.for\n.
86a0 20 20 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 22 2c ...discrete.optimal.transport\",
86c0 20 4e 65 75 72 61 6c 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 50 72 6f 63 65 73 73 69 6e 67 20 53 .Neural.Information.Processing.S
86e0 79 73 74 65 6d 73 20 28 4e 49 50 53 29 2c 20 32 30 31 36 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 ystems.(NIPS),.2016.\n\n\n".....
8700 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
8720 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":.{}.....}
8740 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"
8760 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
8780 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":.[........."
87a0 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 73 63 69 70 79 import.numpy.as.np\nimport.scipy
87c0 2e 6e 64 69 6d 61 67 65 20 61 73 20 73 70 69 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c .ndimage.as.spi\nimport.matplotl
87e0 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 23 ib.pylab.as.pl\nimport.ot\n\n\n#
8800 25 25 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 5c 6e 49 31 3d 73 70 69 2e 69 6d 72 65 %%.Loading.images\n\nI1=spi.imre
8820 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 2e 61 73 74 79 ad('../data/ocean_day.jpg').asty
8840 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 5c 6e 49 32 3d 73 70 69 2e 69 6d 72 65 61 pe(np.float64)/256\nI2=spi.imrea
8860 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 67 27 29 2e 61 73 d('../data/ocean_sunset.jpg').as
8880 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 5c 6e 5c 6e 23 25 25 20 50 6c 6f 74 type(np.float64)/256\n\n#%%.Plot
88a0 20 69 6d 61 67 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 .images\n\npl.figure(1)\n\npl.su
88c0 62 70 6c 6f 74 28 31 2c 32 2c 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e bplot(1,2,1)\npl.imshow(I1)\npl.
88e0 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 title('Image.1')\n\npl.subplot(1
8900 2c 32 2c 32 29 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 ,2,2)\npl.imshow(I2)\npl.title('
8920 49 6d 61 67 65 20 32 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 5c 6e 5c 6e 23 25 25 20 49 6d Image.2')\n\npl.show()\n\n#%%.Im
8940 61 67 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 61 6e 64 20 64 61 74 61 73 65 74 20 67 65 6e 65 72 age.conversion.and.dataset.gener
8960 61 74 69 6f 6e 5c 6e 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e 20 20 20 20 5c 22 5c ation\n\ndef.im2mat(I):\n....\"\
8980 22 5c 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 65 20 74 6f 20 6d 61 74 72 69 78 20 "\"Converts.and.image.to.matrix.
89a0 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 (one.pixel.per.line)\"\"\"\n....
89c0 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 5b 30 5d 2a 49 2e 73 return.I.reshape((I.shape[0]*I.s
89e0 68 61 70 65 5b 31 5d 2c 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 hape[1],I.shape[2]))\n\ndef.mat2
8a00 69 6d 28 58 2c 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 im(X,shape):\n....\"\"\"Converts
8a20 20 62 61 63 6b 20 61 20 6d 61 74 72 69 78 20 74 6f 20 61 6e 20 69 6d 61 67 65 5c 22 5c 22 5c 22 .back.a.matrix.to.an.image\"\"\"
8a40 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 58 2e 72 65 73 68 61 70 65 28 73 68 61 70 65 29 5c 6e 5c \n....return.X.reshape(shape)\n\
8a60 6e 58 31 3d 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 3d 69 6d 32 6d 61 74 28 49 32 29 5c 6e 5c nX1=im2mat(I1)\nX2=im2mat(I2)\n\
8a80 6e 23 20 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 5c 6e 6e 62 3d 31 30 30 30 5c 6e 69 64 n#.training.samples\nnb=1000\nid
8aa0 78 31 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 58 31 2e 73 68 61 70 65 5b 30 5d x1=np.random.randint(X1.shape[0]
8ac0 2c 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 69 64 78 32 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e ,size=(nb,))\nidx2=np.random.ran
8ae0 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 5c 6e dint(X2.shape[0],size=(nb,))\n\n
8b00 78 73 3d 58 31 5b 69 64 78 31 2c 3a 5d 5c 6e 78 74 3d 58 32 5b 69 64 78 32 2c 3a 5d 5c 6e 5c 6e xs=X1[idx1,:]\nxt=X2[idx2,:]\n\n
8b20 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e #%%.Plot.image.distributions\n\n
8b40 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 \npl.figure(2,(10,5))\n\npl.subp
8b60 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 5b 3a 2c 30 5d 2c 78 lot(1,2,1)\npl.scatter(xs[:,0],x
8b80 73 5b 3a 2c 32 5d 2c 63 3d 78 73 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 s[:,2],c=xs)\npl.axis([0,1,0,1])
8ba0 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 42 \npl.xlabel('Red')\npl.ylabel('B
8bc0 6c 75 65 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c lue')\npl.title('Image.1')\n\npl
8be0 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 5c 6e 23 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c .subplot(1,2,2)\n#pl.imshow(I2)\
8c00 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 32 5d 2c 63 3d 78 74 npl.scatter(xt[:,0],xt[:,2],c=xt
8c20 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c )\npl.axis([0,1,0,1])\npl.xlabel
8c40 28 27 52 65 64 27 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e 74 ('Red')\npl.ylabel('Blue')\npl.t
8c60 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 5c 6e 5c 6e itle('Image.2')\n\npl.show()\n\n
8c80 5c 6e 5c 6e 23 25 25 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 62 65 74 77 65 65 \n\n#%%.domain.adaptation.betwee
8ca0 6e 20 69 6d 61 67 65 73 5c 6e 64 65 66 20 6d 69 6e 6d 61 78 28 49 29 3a 5c 6e 20 20 20 20 72 65 n.images\ndef.minmax(I):\n....re
8cc0 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 2c turn.np.minimum(np.maximum(I,0),
8ce0 31 29 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 2e 4f 1)\n#.LP.problem\nda_emd=ot.da.O
8d00 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 2e 66 TDA().....#.init.class\nda_emd.f
8d20 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 74 69 it(xs,xt).......#.fit.distributi
8d40 6f 6e 73 5c 6e 5c 6e 58 31 74 3d 64 61 5f 65 6d 64 2e 70 72 65 64 69 63 74 28 58 31 29 20 20 23 ons\n\nX1t=da_emd.predict(X1)..#
8d60 20 6f 75 74 20 6f 66 20 73 61 6d 70 6c 65 5c 6e 49 31 74 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 .out.of.sample\nI1t=minmax(mat2i
8d80 6d 28 58 31 74 2c 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 23 20 73 69 6e 6b 68 6f 72 6e 20 72 m(X1t,I1.shape))\n\n#.sinkhorn.r
8da0 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 5c 6e 64 61 5f 65 6e egularization\nlambd=1e-1\nda_en
8dc0 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 29 5c 6e 64 61 5f 65 trop=ot.da.OTDA_sinkhorn()\nda_e
8de0 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 29 5c 6e 5c 6e 58 31 ntrop.fit(xs,xt,reg=lambd)\n\nX1
8e00 74 65 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 28 58 31 29 5c 6e 49 31 74 65 3d 6d te=da_entrop.predict(X1)\nI1te=m
8e20 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 65 2c 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e inmax(mat2im(X1te,I1.shape))\n\n
8e40 23 20 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 74 61 #.linear.mapping.estimation\neta
8e60 3d 31 65 2d 38 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-8...#.quadratic.regularizati
8e80 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 23 20 on.for.regression\nmu=1e0.....#.
8ea0 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 69 weight.of.the.OT.linear.term\nbi
8ec0 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 5c 6e 6f 74 as=True..#.estimate.a.bias\n\not
8ee0 5f 6d 61 70 70 69 6e 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 _mapping=ot.da.OTDA_mapping_line
8f00 61 72 28 29 5c 6e 6f 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 ar()\not_mapping.fit(xs,xt,mu=mu
8f20 2c 65 74 61 3d 65 74 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 ,eta=eta,bias=bias,numItermax.=.
8f40 32 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 58 31 74 6c 3d 6f 74 5f 6d 61 70 70 20,verbose=True)\n\nX1tl=ot_mapp
8f60 69 6e 67 2e 70 72 65 64 69 63 74 28 58 31 29 20 23 20 75 73 65 20 74 68 65 20 65 73 74 69 6d 61 ing.predict(X1).#.use.the.estima
8f80 74 65 64 20 6d 61 70 70 69 6e 67 5c 6e 49 31 74 6c 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 ted.mapping\nI1tl=minmax(mat2im(
8fa0 58 31 74 6c 2c 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 23 20 6e 6f 6e 6c 69 6e 65 61 72 20 6d X1tl,I1.shape))\n\n#.nonlinear.m
8fc0 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 5c 6e 65 74 61 3d 31 65 2d 32 20 20 20 23 20 apping.estimation\neta=1e-2...#.
8fe0 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 72 65 67 quadratic.regularization.for.reg
9000 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 6f 66 20 ression\nmu=1e0.....#.weight.of.
9020 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 46 61 6c 73 65 20 20 the.OT.linear.term\nbias=False..
9040 23 20 65 73 74 69 6d 61 74 65 20 61 20 62 69 61 73 5c 6e 73 69 67 6d 61 3d 31 20 20 20 20 23 20 #.estimate.a.bias\nsigma=1....#.
9060 73 69 67 6d 61 20 62 61 6e 64 77 69 64 74 68 20 66 6f 74 20 67 61 75 73 73 69 61 6e 20 6b 65 72 sigma.bandwidth.fot.gaussian.ker
9080 6e 65 6c 5c 6e 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 3d 6f 74 2e 64 61 nel\n\n\not_mapping_kernel=ot.da
90a0 2e 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 28 29 5c 6e 6f 74 5f 6d 61 70 70 69 .OTDA_mapping_kernel()\not_mappi
90c0 6e 67 5f 6b 65 72 6e 65 6c 2e 66 69 74 28 78 73 2c 78 74 2c 6d 75 3d 6d 75 2c 65 74 61 3d 65 74 ng_kernel.fit(xs,xt,mu=mu,eta=et
90e0 61 2c 73 69 67 6d 61 3d 73 69 67 6d 61 2c 62 69 61 73 3d 62 69 61 73 2c 6e 75 6d 49 74 65 72 6d a,sigma=sigma,bias=bias,numIterm
9100 61 78 20 3d 20 31 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 58 31 74 6e 3d 6f 74 ax.=.10,verbose=True)\n\nX1tn=ot
9120 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 2e 70 72 65 64 69 63 74 28 58 31 29 20 23 20 75 73 _mapping_kernel.predict(X1).#.us
9140 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 6e 3d 6d 69 e.the.estimated.mapping\nI1tn=mi
9160 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 6e 2c 49 31 2e 73 68 61 70 65 29 29 5c 6e 23 25 25 nmax(mat2im(X1tn,I1.shape))\n#%%
9180 20 70 6c 6f 74 20 69 6d 61 67 65 73 5c 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 .plot.images\n\n\npl.figure(2,(1
91a0 30 2c 38 29 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 0,8))\n\npl.subplot(2,3,1)\n\npl
91c0 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 27 29 5c 6e .imshow(I1)\npl.title('Im..1')\n
91e0 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 5c 6e 5c 6e 70 6c 2e 69 6d 73 68 6f 77 \npl.subplot(2,3,2)\n\npl.imshow
9200 28 49 32 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 32 27 29 5c 6e 5c 6e 5c 6e 70 6c 2e (I2)\npl.title('Im..2')\n\n\npl.
9220 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 31 74 29 5c 6e subplot(2,3,3)\npl.imshow(I1t)\n
9240 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 49 6e 74 65 72 70 20 4c 50 27 29 5c 6e 5c 6e 70 pl.title('Im..1.Interp.LP')\n\np
9260 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 65 l.subplot(2,3,4)\npl.imshow(I1te
9280 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 49 6e 74 65 72 70 20 45 6e 74 72 6f 70 )\npl.title('Im..1.Interp.Entrop
92a0 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 70 6c 2e 69 6d ')\n\n\npl.subplot(2,3,5)\npl.im
92c0 73 68 6f 77 28 49 31 74 6c 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 4c 69 6e 65 show(I1tl)\npl.title('Im..1.Line
92e0 61 72 20 6d 61 70 70 69 6e 67 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 36 ar.mapping')\n\npl.subplot(2,3,6
9300 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 6e 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d )\npl.imshow(I1tn)\npl.title('Im
9320 2e 20 31 20 6e 6f 6e 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 27 29 5c 6e 5c 6e 70 6c 2e 73 68 ..1.nonlinear.mapping')\n\npl.sh
9340 6f 77 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 ow()".......],........"outputs":
9360 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":.{.......
9380 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.......}....
93a0 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
93c0 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
93e0 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
9400 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
9420 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"
9440 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
9460 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
9480 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
94a0 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":.
94c0 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
94e0 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
9500 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"
9520 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,.......
9540 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".......}....
9560 20 7d 0a 20 20 7d 0a 7d 50 4b 01 02 14 03 14 00 00 00 00 00 d8 6c c9 4a b9 5d 6a b1 6e 08 00 00 .}...}.}PK...........l.J.]j.n...
9580 6e 08 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 b4 81 00 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 n.....................auto_examp
95a0 6c 65 73 2f 70 6c 6f 74 5f 57 44 41 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 87 7b les/plot_WDA.ipynbPK...........{
95c0 82 49 fa 8c 13 06 e2 10 00 00 e2 10 00 00 25 00 00 00 00 00 00 00 00 00 00 00 b4 81 a8 08 00 00 .I............%.................
95e0 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 70 70 69 6e 67 2e auto_examples/plot_OTDA_mapping.
9600 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 d8 6d c9 4a ac e6 e3 5c dd 08 00 00 dd 08 00 ipynbPK...........m.J...\.......
9620 00 24 00 00 00 00 00 00 00 00 00 00 00 b4 81 cd 19 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 .$.................auto_examples
9640 2f 70 6c 6f 74 5f 6f 70 74 69 6d 5f 4f 54 72 65 67 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 /plot_optim_OTreg.ipynbPK.......
9660 00 00 00 76 7b 82 49 50 0d 0a 74 03 0e 00 00 03 0e 00 00 25 00 00 00 00 00 00 00 00 00 00 00 b4 ...v{.IP..t........%............
9680 81 ec 22 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 6c 61 .."..auto_examples/plot_OTDA_cla
96a0 73 73 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 d8 7b 82 49 f9 12 57 24 63 07 sses.ipynbPK...........{.I..W$c.
96c0 00 00 63 07 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 b4 81 32 31 00 00 61 75 74 6f 5f 65 78 61 ..c.................21..auto_exa
96e0 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 31 44 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 mples/plot_OT_1D.ipynbPK........
9700 00 00 ac 7a 82 49 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 ...z.IQ<@?........&.............
9720 d1 38 00 00 61 75 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 .8..auto_examples/plot_barycente
9740 72 5f 31 44 2e 69 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 r_1D.ipynbPK..........j{.I...q9.
9760 00 00 39 0a 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 b4 81 9b 47 00 00 61 75 74 6f 5f 65 78 61 ..9...+..............G..auto_exa
9780 6d 70 6c 65 73 2f 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 mples/demo_OT_2D_sampleslarge.ip
97a0 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 d7 6d c9 4a 40 dc a1 29 10 0a 00 00 10 0a 00 00 26 ynbPK...........m.J@..)........&
97c0 00 00 00 00 00 00 00 00 00 00 00 b4 81 1d 52 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 ..............R..auto_examples/p
97e0 6c 6f 74 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 lot_OT_2D_samples.ipynbPK.......
9800 00 00 00 75 7b 82 49 55 d4 67 d2 3c 0e 00 00 3c 0e 00 00 20 00 00 00 00 00 00 00 00 00 00 00 b4 ...u{.IU.g.<...<................
9820 81 71 5c 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 .q\..auto_examples/plot_OTDA_2D.
9840 69 70 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 ipynbPK..........j{.I....F...F..
9860 00 23 00 00 00 00 00 00 00 00 00 00 00 b4 81 eb 6a 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 .#..............j..auto_examples
9880 2f 64 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 /demo_OT_1D_test.ipynbPK........
98a0 00 00 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 ...{.IO"..t...t...*.............
98c0 72 74 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 rt..auto_examples/plot_OTDA_colo
98e0 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 d7 7b 82 49 c4 9e r_images.ipynbPK...........{.I..
9900 28 9b ea 11 00 00 ea 11 00 00 32 00 00 00 00 00 00 00 00 00 00 00 b4 81 2e 83 00 00 61 75 74 6f (.........2.................auto
9920 5f 65 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 _examples/plot_OTDA_mapping_colo
9940 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 05 06 00 00 00 00 0c 00 0c 00 e6 03 00 00 68 95 r_images.ipynbPK..............h.
9960 00 00 00 00 ....