ofs | hex dump | ascii |
---|
0000 | 50 4b 03 04 14 00 00 00 00 00 15 6e c9 4a 38 e5 ac a5 a0 04 00 00 a0 04 00 00 19 00 00 00 61 75 | PK.........n.J8...............au |
0020 | 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 57 44 41 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 | to_examples/plot_WDA.py#.-*-.cod |
0040 | 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ing:.utf-8.-*-.""".============= |
0060 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 57 41 73 73 65 72 73 74 65 69 6e | ====================.WAsserstein |
0080 | 20 44 69 73 63 72 69 6d 69 6e 61 6e 74 20 41 6e 61 6c 79 73 69 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d | .Discriminant.Analysis.========= |
00a0 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 40 61 75 74 68 6f | ========================..@autho |
00c0 | 72 3a 20 72 66 6c 61 6d 61 72 79 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 | r:.rflamary."""..import.numpy.as |
00e0 | 20 6e 70 0a 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 | .np.import.matplotlib.pylab.as.p |
0100 | 6c 0a 69 6d 70 6f 72 74 20 6f 74 0a 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 | l.import.ot.from.ot.datasets.imp |
0120 | 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 0a 66 72 6f 6d 20 6f | ort.get_1D_gauss.as.gauss.from.o |
0140 | 74 2e 64 72 20 69 6d 70 6f 72 74 20 77 64 61 0a 0a 0a 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 | t.dr.import.wda...#%%.parameters |
0160 | 0a 0a 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 65 20 | ..n=1000.#.nb.samples.in.source. |
0180 | 61 6e 64 20 74 61 72 67 65 74 20 64 61 74 61 73 65 74 73 0a 6e 7a 3d 30 2e 32 0a 78 73 2c 79 73 | and.target.datasets.nz=0.2.xs,ys |
01a0 | 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 |
01c0 | 67 61 75 73 73 27 2c 6e 2c 6e 7a 29 0a 78 74 2c 79 74 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 | gauss',n,nz).xt,yt=ot.datasets.g |
01e0 | 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 6e 7a 29 0a 0a | et_data_classif('3gauss',n,nz).. |
0200 | 6e 62 6e 6f 69 73 65 3d 38 0a 0a 78 73 3d 6e 70 2e 68 73 74 61 63 6b 28 28 78 73 2c 6e 70 2e 72 | nbnoise=8..xs=np.hstack((xs,np.r |
0220 | 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 6e 62 6e 6f 69 73 65 29 29 29 0a 78 74 3d 6e 70 2e 68 | andom.randn(n,nbnoise))).xt=np.h |
0240 | 73 74 61 63 6b 28 28 78 74 2c 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 6e 62 6e 6f | stack((xt,np.random.randn(n,nbno |
0260 | 69 73 65 29 29 29 0a 0a 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 0a 0a 70 6c 2e 66 69 67 | ise)))..#%%.plot.samples..pl.fig |
0280 | 75 72 65 28 31 29 0a 0a 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a | ure(1)...pl.scatter(xt[:,0],xt[: |
02a0 | 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 53 6f 75 72 63 | ,1],c=ys,marker='+',label='Sourc |
02c0 | 65 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e | e.samples').pl.legend(loc=0).pl. |
02e0 | 74 69 74 6c 65 28 27 44 69 73 63 72 69 6d 69 6e 61 6e 74 20 64 69 6d 65 6e 73 69 6f 6e 73 27 29 | title('Discriminant.dimensions') |
0300 | 0a 0a 0a 23 25 25 20 70 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f | ...#%%.plot.distributions.and.lo |
0320 | 73 73 20 6d 61 74 72 69 78 0a 70 3d 32 0a 72 65 67 3d 31 0a 6b 3d 31 30 0a 6d 61 78 69 74 65 72 | ss.matrix.p=2.reg=1.k=10.maxiter |
0340 | 3d 31 30 30 0a 0a 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 | =100..P,proj.=.wda(xs,ys,p,reg,k |
0360 | 2c 6d 61 78 69 74 65 72 3d 6d 61 78 69 74 65 72 29 0a 0a 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 | ,maxiter=maxiter)..#%%.plot.samp |
0380 | 6c 65 73 0a 0a 78 73 70 3d 70 72 6f 6a 28 78 73 29 0a 78 74 70 3d 70 72 6f 6a 28 78 74 29 0a 0a | les..xsp=proj(xs).xtp=proj(xt).. |
03a0 | 70 6c 2e 66 69 67 75 72 65 28 31 2c 28 31 30 2c 35 29 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 | pl.figure(1,(10,5))..pl.subplot( |
03c0 | 31 2c 32 2c 31 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 70 5b 3a 2c 30 5d 2c 78 73 70 5b 3a | 1,2,1).pl.scatter(xsp[:,0],xsp[: |
03e0 | 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 |
0400 | 63 74 65 64 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a | cted.samples').pl.legend(loc=0). |
0420 | 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a 65 63 74 65 64 20 74 72 61 69 6e 69 6e 67 20 73 61 6d | pl.title('Projected.training.sam |
0440 | 70 6c 65 73 27 29 0a 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 0a 70 6c 2e 73 63 | ples')...pl.subplot(1,2,2).pl.sc |
0460 | 61 74 74 65 72 28 78 74 70 5b 3a 2c 30 5d 2c 78 74 70 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 | atter(xtp[:,0],xtp[:,1],c=ys,mar |
0480 | 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 63 74 65 64 20 73 61 6d 70 6c 65 73 | ker='+',label='Projected.samples |
04a0 | 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 50 72 | ').pl.legend(loc=0).pl.title('Pr |
04c0 | 6f 6a 65 63 74 65 64 20 74 65 73 74 20 73 61 6d 70 6c 65 73 27 29 0a 50 4b 03 04 14 00 00 00 00 | ojected.test.samples').PK....... |
04e0 | 00 15 6e c9 4a e7 a1 46 a7 95 0c 00 00 95 0c 00 00 22 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c | ..n.J..F........."...auto_exampl |
0500 | 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 6d 61 70 70 69 6e 67 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 | es/plot_OTDA_mapping.py#.-*-.cod |
0520 | 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ing:.utf-8.-*-.""".============= |
0540 | 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 | ================================ |
0560 | 3d 3d 0a 4f 54 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 20 64 6f 6d | ==.OT.mapping.estimation.for.dom |
0580 | 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 5b 38 5d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ain.adaptation.[8].============= |
05a0 | 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 | ================================ |
05c0 | 3d 3d 0a 0a 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 2c 20 4e 2e 20 43 6f 75 72 74 79 2c 20 52 2e | ==..[8].M..Perrot,.N..Courty,.R. |
05e0 | 20 46 6c 61 6d 61 72 79 2c 20 41 2e 20 48 61 62 72 61 72 64 2c 20 22 4d 61 70 70 69 6e 67 20 65 | .Flamary,.A..Habrard,."Mapping.e |
0600 | 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 0a 20 20 20 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d | stimation.for.....discrete.optim |
0620 | 61 6c 20 74 72 61 6e 73 70 6f 72 74 22 2c 20 4e 65 75 72 61 6c 20 49 6e 66 6f 72 6d 61 74 69 6f | al.transport",.Neural.Informatio |
0640 | 6e 20 50 72 6f 63 65 73 73 69 6e 67 20 53 79 73 74 65 6d 73 20 28 4e 49 50 53 29 2c 20 32 30 31 | n.Processing.Systems.(NIPS),.201 |
0660 | 36 2e 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 0a 69 6d 70 6f 72 | 6.."""..import.numpy.as.np.impor |
0680 | 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 0a 69 6d 70 6f 72 74 20 | t.matplotlib.pylab.as.pl.import. |
06a0 | 6f 74 0a 0a 0a 0a 23 25 25 20 64 61 74 61 73 65 74 20 67 65 6e 65 72 61 74 69 6f 6e 0a 0a 6e 70 | ot....#%%.dataset.generation..np |
06c0 | 2e 72 61 6e 64 6f 6d 2e 73 65 65 64 28 30 29 20 23 20 6d 61 6b 65 73 20 65 78 61 6d 70 6c 65 20 | .random.seed(0).#.makes.example. |
06e0 | 72 65 70 72 6f 64 75 63 69 62 6c 65 0a 0a 6e 3d 31 30 30 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 | reproducible..n=100.#.nb.samples |
0700 | 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 61 74 61 73 65 74 73 0a 74 | .in.source.and.target.datasets.t |
0720 | 68 65 74 61 3d 32 2a 6e 70 2e 70 69 2f 32 30 0a 6e 7a 3d 30 2e 31 0a 78 73 2c 79 73 3d 6f 74 2e | heta=2*np.pi/20.nz=0.1.xs,ys=ot. |
0740 | 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 67 61 75 73 73 | datasets.get_data_classif('gauss |
0760 | 72 6f 74 27 2c 6e 2c 6e 7a 3d 6e 7a 29 0a 78 74 2c 79 74 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e | rot',n,nz=nz).xt,yt=ot.datasets. |
0780 | 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 2c 6e 2c 74 68 | get_data_classif('gaussrot',n,th |
07a0 | 65 74 61 3d 74 68 65 74 61 2c 6e 7a 3d 6e 7a 29 0a 0a 23 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 | eta=theta,nz=nz)..#.one.of.the.t |
07c0 | 61 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 | arget.mode.changes.its.variance. |
07e0 | 28 6e 6f 20 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 29 0a 78 74 5b 79 74 3d 3d 32 5d 2a 3d 33 | (no.linear.mapping).xt[yt==2]*=3 |
0800 | 0a 78 74 3d 78 74 2b 34 0a 0a 0a 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 0a 0a 70 6c 2e | .xt=xt+4...#%%.plot.samples..pl. |
0820 | 66 69 67 75 72 65 28 31 2c 28 38 2c 35 29 29 0a 70 6c 2e 63 6c 66 28 29 0a 0a 70 6c 2e 73 63 61 | figure(1,(8,5)).pl.clf()..pl.sca |
0840 | 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 72 | tter(xs[:,0],xs[:,1],c=ys,marker |
0860 | 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 0a 70 6c 2e | ='+',label='Source.samples').pl. |
0880 | 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 |
08a0 | 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 0a | ker='o',label='Target.samples'). |
08c0 | 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 | .pl.legend(loc=0).pl.title('Sour |
08e0 | 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 0a 0a 0a | ce.and.target.distributions')... |
0900 | 0a 23 25 25 20 4f 54 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 | .#%%.OT.linear.mapping.estimatio |
0920 | 6e 0a 0a 65 74 61 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 | n..eta=1e-8...#.quadratic.regula |
0940 | 72 69 7a 61 74 69 6f 6e 20 66 6f 72 20 72 65 67 72 65 73 73 69 6f 6e 0a 6d 75 3d 31 65 30 20 20 | rization.for.regression.mu=1e0.. |
0960 | 20 20 20 23 20 77 65 69 67 68 74 20 6f 66 20 74 68 65 20 4f 54 20 6c 69 6e 65 61 72 20 74 65 72 | ...#.weight.of.the.OT.linear.ter |
0980 | 6d 0a 62 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 0a 0a | m.bias=True..#.estimate.a.bias.. |
09a0 | 6f 74 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 | ot_mapping=ot.da.OTDA_mapping_li |
09c0 | 6e 65 61 72 28 29 0a 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 | near().ot_mapping.fit(xs,xt,mu=m |
09e0 | 75 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 | u,eta=eta,bias=bias,numItermax.= |
0a00 | 20 32 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 0a 0a 78 73 74 3d 6f 74 5f 6d 61 70 70 69 6e | .20,verbose=True)..xst=ot_mappin |
0a20 | 67 2e 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 | g.predict(xs).#.use.the.estimate |
0a40 | 64 20 6d 61 70 70 69 6e 67 0a 78 73 74 30 3d 6f 74 5f 6d 61 70 70 69 6e 67 2e 69 6e 74 65 72 70 | d.mapping.xst0=ot_mapping.interp |
0a60 | 28 29 20 20 20 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 0a 0a | ()...#.use.barycentric.mapping.. |
0a80 | 0a 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 37 29 29 0a 70 6c 2e 63 6c 66 28 29 0a 70 6c | .pl.figure(2,(10,7)).pl.clf().pl |
0aa0 | 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c | .subplot(2,2,1).pl.scatter(xt[:, |
0ac0 | 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 |
0ae0 | 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 0a 70 6c 2e 73 | ='Target.samples',alpha=.3).pl.s |
0b00 | 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, |
0b20 | 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 6d 61 | marker='+',label='barycentric.ma |
0b40 | 70 70 69 6e 67 27 29 0a 70 6c 2e 74 69 74 6c 65 28 22 62 61 72 79 63 65 6e 74 72 69 63 20 6d 61 | pping').pl.title("barycentric.ma |
0b60 | 70 70 69 6e 67 22 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 32 29 0a 70 6c 2e 73 63 | pping")..pl.subplot(2,2,2).pl.sc |
0b80 | 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 | atter(xt[:,0],xt[:,1],c=yt,marke |
0ba0 | 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 | r='o',label='Target.samples',alp |
0bc0 | 68 61 3d 2e 33 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 5b 3a 2c 30 5d 2c 78 73 74 5b 3a | ha=.3).pl.scatter(xst[:,0],xst[: |
0be0 | 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 4c 65 61 72 6e | ,1],c=ys,marker='+',label='Learn |
0c00 | 65 64 20 6d 61 70 70 69 6e 67 27 29 0a 70 6c 2e 74 69 74 6c 65 28 22 4c 65 61 72 6e 65 64 20 6d | ed.mapping').pl.title("Learned.m |
0c20 | 61 70 70 69 6e 67 22 29 0a 0a 0a 0a 23 25 25 20 4b 65 72 6e 65 6c 20 6d 61 70 70 69 6e 67 20 65 | apping")....#%%.Kernel.mapping.e |
0c40 | 73 74 69 6d 61 74 69 6f 6e 0a 0a 65 74 61 3d 31 65 2d 35 20 20 20 23 20 71 75 61 64 72 61 74 69 | stimation..eta=1e-5...#.quadrati |
0c60 | 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 66 6f 72 20 72 65 67 72 65 73 73 69 6f 6e 0a | c.regularization.for.regression. |
0c80 | 6d 75 3d 31 65 2d 31 20 20 20 20 20 23 20 77 65 69 67 68 74 20 6f 66 20 74 68 65 20 4f 54 20 6c | mu=1e-1.....#.weight.of.the.OT.l |
0ca0 | 69 6e 65 61 72 20 74 65 72 6d 0a 62 69 61 73 3d 54 72 75 65 20 20 23 20 65 73 74 69 6d 61 74 65 | inear.term.bias=True..#.estimate |
0cc0 | 20 61 20 62 69 61 73 0a 73 69 67 6d 61 3d 31 20 20 20 20 23 20 73 69 67 6d 61 20 62 61 6e 64 77 | .a.bias.sigma=1....#.sigma.bandw |
0ce0 | 69 64 74 68 20 66 6f 74 20 67 61 75 73 73 69 61 6e 20 6b 65 72 6e 65 6c 0a 0a 0a 6f 74 5f 6d 61 | idth.fot.gaussian.kernel...ot_ma |
0d00 | 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f | pping_kernel=ot.da.OTDA_mapping_ |
0d20 | 6b 65 72 6e 65 6c 28 29 0a 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 2e 66 69 74 28 78 | kernel().ot_mapping_kernel.fit(x |
0d40 | 73 2c 78 74 2c 6d 75 3d 6d 75 2c 65 74 61 3d 65 74 61 2c 73 69 67 6d 61 3d 73 69 67 6d 61 2c 62 | s,xt,mu=mu,eta=eta,sigma=sigma,b |
0d60 | 69 61 73 3d 62 69 61 73 2c 6e 75 6d 49 74 65 72 6d 61 78 20 3d 20 31 30 2c 76 65 72 62 6f 73 65 | ias=bias,numItermax.=.10,verbose |
0d80 | 3d 54 72 75 65 29 0a 0a 78 73 74 5f 6b 65 72 6e 65 6c 3d 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 | =True)..xst_kernel=ot_mapping_ke |
0da0 | 72 6e 65 6c 2e 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 | rnel.predict(xs).#.use.the.estim |
0dc0 | 61 74 65 64 20 6d 61 70 70 69 6e 67 0a 78 73 74 30 5f 6b 65 72 6e 65 6c 3d 6f 74 5f 6d 61 70 70 | ated.mapping.xst0_kernel=ot_mapp |
0de0 | 69 6e 67 5f 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 | ing_kernel.interp()...#.use.bary |
0e00 | 63 65 6e 74 72 69 63 20 6d 61 70 70 69 6e 67 0a 0a 0a 23 25 25 20 50 6c 6f 74 74 69 6e 67 20 74 | centric.mapping...#%%.Plotting.t |
0e20 | 68 65 20 6d 61 70 70 65 64 20 73 61 6d 70 6c 65 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 | he.mapped.samples..pl.figure(2,( |
0e40 | 31 30 2c 37 29 29 0a 70 6c 2e 63 6c 66 28 29 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 | 10,7)).pl.clf().pl.subplot(2,2,1 |
0e60 | 29 0a 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 | ).pl.scatter(xt[:,0],xt[:,1],c=y |
0e80 | 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 |
0ea0 | 65 73 27 2c 61 6c 70 68 61 3d 2e 32 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 30 5b 3a 2c | es',alpha=.2).pl.scatter(xst0[:, |
0ec0 | 30 5d 2c 78 73 74 30 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 | 0],xst0[:,1],c=ys,marker='+',lab |
0ee0 | 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 0a 70 6c 2e 74 | el='Mapped.source.samples').pl.t |
0f00 | 69 74 6c 65 28 22 42 61 72 79 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 6e 65 61 72 29 22 29 0a 70 | itle("Bary..mapping.(linear)").p |
0f20 | 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c | l.legend(loc=0)..pl.subplot(2,2, |
0f40 | 32 29 0a 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 | 2).pl.scatter(xt[:,0],xt[:,1],c= |
0f60 | 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 |
0f80 | 6c 65 73 27 2c 61 6c 70 68 61 3d 2e 32 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 5b 3a 2c | les',alpha=.2).pl.scatter(xst[:, |
0fa0 | 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 65 | 0],xst[:,1],c=ys,marker='+',labe |
0fc0 | 6c 3d 27 4c 65 61 72 6e 65 64 20 6d 61 70 70 69 6e 67 27 29 0a 70 6c 2e 74 69 74 6c 65 28 22 45 | l='Learned.mapping').pl.title("E |
0fe0 | 73 74 69 6d 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 6e 65 61 72 29 22 29 0a 0a 70 6c 2e 73 75 62 | stim..mapping.(linear)")..pl.sub |
1000 | 70 6c 6f 74 28 32 2c 32 2c 33 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 | plot(2,2,3).pl.scatter(xt[:,0],x |
1020 | 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 |
1040 | 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 2e 32 29 0a 70 6c 2e 73 63 61 74 74 | rget.samples',alpha=.2).pl.scatt |
1060 | 65 72 28 78 73 74 30 5f 6b 65 72 6e 65 6c 5b 3a 2c 30 5d 2c 78 73 74 30 5f 6b 65 72 6e 65 6c 5b | er(xst0_kernel[:,0],xst0_kernel[ |
1080 | 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 62 61 72 79 | :,1],c=ys,marker='+',label='bary |
10a0 | 63 65 6e 74 72 69 63 20 6d 61 70 70 69 6e 67 27 29 0a 70 6c 2e 74 69 74 6c 65 28 22 42 61 72 79 | centric.mapping').pl.title("Bary |
10c0 | 2e 20 6d 61 70 70 69 6e 67 20 28 6b 65 72 6e 65 6c 29 22 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 | ..mapping.(kernel)")..pl.subplot |
10e0 | 28 32 2c 32 2c 34 29 0a 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,2,4).pl.scatter(xt[:,0],xt[:, |
1100 | 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 |
1120 | 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 2e 32 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 | .samples',alpha=.2).pl.scatter(x |
1140 | 73 74 5f 6b 65 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 | st_kernel[:,0],xst_kernel[:,1],c |
1160 | 3d 79 73 2c 6d 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 | =ys,marker='+',label='Learned.ma |
1180 | 70 70 69 6e 67 27 29 0a 70 6c 2e 74 69 74 6c 65 28 22 45 73 74 69 6d 2e 20 6d 61 70 70 69 6e 67 | pping').pl.title("Estim..mapping |
11a0 | 20 28 6b 65 72 6e 65 6c 29 22 29 0a 50 4b 03 04 14 00 00 00 00 00 15 6e c9 4a 5b b0 f5 4b 06 05 | .(kernel)").PK.........n.J[..K.. |
11c0 | 00 00 06 05 00 00 21 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 6f 70 74 | ......!...auto_examples/plot_opt |
11e0 | 69 6d 5f 4f 54 72 65 67 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d | im_OTreg.py#.-*-.coding:.utf-8.- |
1200 | 2a 2d 0a 22 22 22 0a 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 | *-.""".========================= |
1220 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 52 65 67 75 6c 61 72 69 7a 65 64 20 4f 54 20 77 69 74 68 20 67 65 | =========.Regularized.OT.with.ge |
1240 | 6e 65 72 69 63 20 73 6f 6c 76 65 72 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | neric.solver.=================== |
1260 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 | ===============..."""..import.nu |
1280 | 6d 70 79 20 61 73 20 6e 70 0a 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 | mpy.as.np.import.matplotlib.pyla |
12a0 | 62 20 61 73 20 70 6c 0a 69 6d 70 6f 72 74 20 6f 74 0a 0a 0a 0a 23 25 25 20 70 61 72 61 6d 65 74 | b.as.pl.import.ot....#%%.paramet |
12c0 | 65 72 73 0a 0a 6e 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 0a 0a 23 20 62 69 6e 20 70 6f 73 69 | ers..n=100.#.nb.bins..#.bin.posi |
12e0 | 74 69 6f 6e 73 0a 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 | tions.x=np.arange(n,dtype=np.flo |
1300 | 61 74 36 34 29 0a 0a 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a | at64)..#.Gaussian.distributions. |
1320 | 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 28 6e 2c 6d 3d 32 | a=ot.datasets.get_1D_gauss(n,m=2 |
1340 | 30 2c 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 0a 62 3d 6f 74 2e 64 61 | 0,s=5).#.m=.mean,.s=.std.b=ot.da |
1360 | 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 31 30 29 | tasets.get_1D_gauss(n,m=60,s=10) |
1380 | 0a 0a 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 0a 4d 3d 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 | ..#.loss.matrix.M=ot.dist(x.resh |
13a0 | 61 70 65 28 28 6e 2c 31 29 29 2c 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 29 0a 4d 2f 3d | ape((n,1)),x.reshape((n,1))).M/= |
13c0 | 4d 2e 6d 61 78 28 29 0a 0a 23 25 25 20 45 4d 44 0a 0a 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c | M.max()..#%%.EMD..G0=ot.emd(a,b, |
13e0 | 4d 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 33 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f | M)..pl.figure(3).ot.plot.plot1D_ |
1400 | 6d 61 74 28 61 2c 62 2c 47 30 2c 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 0a 0a 23 25 25 20 | mat(a,b,G0,'OT.matrix.G0')..#%%. |
1420 | 45 78 61 6d 70 6c 65 20 77 69 74 68 20 46 72 6f 62 65 6e 69 75 73 20 6e 6f 72 6d 20 72 65 67 75 | Example.with.Frobenius.norm.regu |
1440 | 6c 61 72 69 7a 61 74 69 6f 6e 0a 0a 64 65 66 20 66 28 47 29 3a 20 72 65 74 75 72 6e 20 30 2e 35 | larization..def.f(G):.return.0.5 |
1460 | 2a 6e 70 2e 73 75 6d 28 47 2a 2a 32 29 0a 64 65 66 20 64 66 28 47 29 3a 20 72 65 74 75 72 6e 20 | *np.sum(G**2).def.df(G):.return. |
1480 | 47 0a 0a 72 65 67 3d 31 65 2d 31 0a 0a 47 6c 32 3d 6f 74 2e 6f 70 74 69 6d 2e 63 67 28 61 2c 62 | G..reg=1e-1..Gl2=ot.optim.cg(a,b |
14a0 | 2c 4d 2c 72 65 67 2c 66 2c 64 66 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 0a 0a 70 6c 2e 66 69 | ,M,reg,f,df,verbose=True)..pl.fi |
14c0 | 67 75 72 65 28 33 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 47 | gure(3).ot.plot.plot1D_mat(a,b,G |
14e0 | 6c 32 2c 27 4f 54 20 6d 61 74 72 69 78 20 46 72 6f 62 2e 20 72 65 67 27 29 0a 0a 23 25 25 20 45 | l2,'OT.matrix.Frob..reg')..#%%.E |
1500 | 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 |
1520 | 69 6f 6e 0a 0a 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 2a 6e | ion..def.f(G):.return.np.sum(G*n |
1540 | 70 2e 6c 6f 67 28 47 29 29 0a 64 65 66 20 64 66 28 47 29 3a 20 72 65 74 75 72 6e 20 6e 70 2e 6c | p.log(G)).def.df(G):.return.np.l |
1560 | 6f 67 28 47 29 2b 31 0a 0a 72 65 67 3d 31 65 2d 33 0a 0a 47 65 3d 6f 74 2e 6f 70 74 69 6d 2e 63 | og(G)+1..reg=1e-3..Ge=ot.optim.c |
1580 | 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 54 72 75 65 29 0a 0a | g(a,b,M,reg,f,df,verbose=True).. |
15a0 | 70 6c 2e 66 69 67 75 72 65 28 34 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 | pl.figure(4).ot.plot.plot1D_mat( |
15c0 | 61 2c 62 2c 47 65 2c 27 4f 54 20 6d 61 74 72 69 78 20 45 6e 74 72 6f 70 2e 20 72 65 67 27 29 0a | a,b,Ge,'OT.matrix.Entrop..reg'). |
15e0 | 0a 23 25 25 20 45 78 61 6d 70 6c 65 20 77 69 74 68 20 46 72 6f 62 65 6e 69 75 73 20 6e 6f 72 6d | .#%%.Example.with.Frobenius.norm |
1600 | 20 2b 20 65 6e 74 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 77 69 74 68 20 | .+.entropic.regularization.with. |
1620 | 67 63 67 0a 0a 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 | gcg..def.f(G):.return.0.5*np.sum |
1640 | 28 47 2a 2a 32 29 0a 64 65 66 20 64 66 28 47 29 3a 20 72 65 74 75 72 6e 20 47 0a 0a 72 65 67 31 | (G**2).def.df(G):.return.G..reg1 |
1660 | 3d 31 65 2d 33 0a 72 65 67 32 3d 31 65 2d 31 0a 0a 47 65 6c 32 3d 6f 74 2e 6f 70 74 69 6d 2e 67 | =1e-3.reg2=1e-1..Gel2=ot.optim.g |
1680 | 63 67 28 61 2c 62 2c 4d 2c 72 65 67 31 2c 72 65 67 32 2c 66 2c 64 66 2c 76 65 72 62 6f 73 65 3d | cg(a,b,M,reg1,reg2,f,df,verbose= |
16a0 | 54 72 75 65 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 35 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 | True)..pl.figure(5).ot.plot.plot |
16c0 | 31 44 5f 6d 61 74 28 61 2c 62 2c 47 65 6c 32 2c 27 4f 54 20 65 6e 74 72 6f 70 69 63 20 2b 20 6d | 1D_mat(a,b,Gel2,'OT.entropic.+.m |
16e0 | 61 74 72 69 78 20 46 72 6f 62 2e 20 72 65 67 27 29 50 4b 03 04 14 00 00 00 00 00 15 6e c9 4a f2 | atrix.Frob..reg')PK.........n.J. |
1700 | c1 a7 29 f1 09 00 00 f1 09 00 00 22 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f | ..)........"...auto_examples/plo |
1720 | 74 5f 4f 54 44 41 5f 63 6c 61 73 73 65 73 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 | t_OTDA_classes.py#.-*-.coding:.u |
1740 | 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | tf-8.-*-.""".=================== |
1760 | 3d 3d 3d 3d 3d 0a 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 0a 3d | =====.OT.for.domain.adaptation.= |
1780 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 22 22 22 0a 0a 69 6d | =======================.."""..im |
17a0 | 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 0a 69 6d 70 6f | port.matplotlib.pylab.as.pl.impo |
17c0 | 72 74 20 6f 74 0a 0a 0a 0a 0a 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 0a 0a 6e 3d 31 35 30 20 | rt.ot.....#%%.parameters..n=150. |
17e0 | 23 20 6e 62 20 73 61 6d 70 6c 65 73 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 | #.nb.samples.in.source.and.targe |
1800 | 74 20 64 61 74 61 73 65 74 73 0a 0a 78 73 2c 79 73 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 | t.datasets..xs,ys=ot.datasets.ge |
1820 | 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 0a 78 74 2c 79 74 | t_data_classif('3gauss',n).xt,yt |
1840 | 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 |
1860 | 67 61 75 73 73 32 27 2c 6e 29 0a 0a 0a 0a 0a 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 0a | gauss2',n).....#%%.plot.samples. |
1880 | 0a 70 6c 2e 66 69 67 75 72 65 28 31 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 | .pl.figure(1)..pl.subplot(2,2,1) |
18a0 | 0a 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 79 73 | .pl.scatter(xs[:,0],xs[:,1],c=ys |
18c0 | 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 6c 65 | ,marker='+',label='Source.sample |
18e0 | 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 53 | s').pl.legend(loc=0).pl.title('S |
1900 | 6f 75 72 63 65 20 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 0a 0a 70 6c 2e 73 75 62 70 6c | ource..distributions')..pl.subpl |
1920 | 6f 74 28 32 2c 32 2c 32 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b | ot(2,2,2).pl.scatter(xt[:,0],xt[ |
1940 | 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 67 | :,1],c=yt,marker='o',label='Targ |
1960 | 65 74 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c | et.samples').pl.legend(loc=0).pl |
1980 | 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 0a | .title('target..distributions'). |
19a0 | 0a 0a 23 25 25 20 4f 54 20 65 73 74 69 6d 61 74 69 6f 6e 0a 0a 23 20 4c 50 20 70 72 6f 62 6c 65 | ..#%%.OT.estimation..#.LP.proble |
19c0 | 6d 0a 64 61 5f 65 6d 64 3d 6f 74 2e 64 61 2e 4f 54 44 41 28 29 20 20 20 20 20 23 20 69 6e 69 74 | m.da_emd=ot.da.OTDA().....#.init |
19e0 | 20 63 6c 61 73 73 0a 64 61 5f 65 6d 64 2e 66 69 74 28 78 73 2c 78 74 29 20 20 20 20 20 20 20 23 | .class.da_emd.fit(xs,xt).......# |
1a00 | 20 66 69 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 78 73 74 30 3d 64 61 5f 65 6d 64 2e 69 | .fit.distributions.xst0=da_emd.i |
1a20 | 6e 74 65 72 70 28 29 20 20 20 20 23 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 6f 66 20 73 6f | nterp()....#.interpolation.of.so |
1a40 | 75 72 63 65 20 73 61 6d 70 6c 65 73 0a 0a 0a 23 20 73 69 6e 6b 68 6f 72 6e 20 72 65 67 75 6c 61 | urce.samples...#.sinkhorn.regula |
1a60 | 72 69 7a 61 74 69 6f 6e 0a 6c 61 6d 62 64 3d 31 65 2d 31 0a 64 61 5f 65 6e 74 72 6f 70 3d 6f 74 | rization.lambd=1e-1.da_entrop=ot |
1a80 | 2e 64 61 2e 4f 54 44 41 5f 73 69 6e 6b 68 6f 72 6e 28 29 0a 64 61 5f 65 6e 74 72 6f 70 2e 66 69 | .da.OTDA_sinkhorn().da_entrop.fi |
1aa0 | 74 28 78 73 2c 78 74 2c 72 65 67 3d 6c 61 6d 62 64 29 0a 78 73 74 73 3d 64 61 5f 65 6e 74 72 6f | t(xs,xt,reg=lambd).xsts=da_entro |
1ac0 | 70 2e 69 6e 74 65 72 70 28 29 0a 0a 23 20 6e 6f 6e 2d 63 6f 6e 76 65 78 20 47 72 6f 75 70 20 6c | p.interp()..#.non-convex.Group.l |
1ae0 | 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 0a 72 65 67 3d 31 65 2d 31 0a 65 74 61 | asso.regularization.reg=1e-1.eta |
1b00 | 3d 31 65 30 0a 64 61 5f 6c 70 6c 31 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6c 70 6c 31 28 29 0a 64 | =1e0.da_lpl1=ot.da.OTDA_lpl1().d |
1b20 | 61 5f 6c 70 6c 31 2e 66 69 74 28 78 73 2c 79 73 2c 78 74 2c 72 65 67 3d 72 65 67 2c 65 74 61 3d | a_lpl1.fit(xs,ys,xt,reg=reg,eta= |
1b40 | 65 74 61 29 0a 78 73 74 67 3d 64 61 5f 6c 70 6c 31 2e 69 6e 74 65 72 70 28 29 0a 0a 0a 23 20 54 | eta).xstg=da_lpl1.interp()...#.T |
1b60 | 72 75 65 20 47 72 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 0a 72 | rue.Group.lasso.regularization.r |
1b80 | 65 67 3d 31 65 2d 31 0a 65 74 61 3d 32 65 30 0a 64 61 5f 6c 31 6c 32 3d 6f 74 2e 64 61 2e 4f 54 | eg=1e-1.eta=2e0.da_l1l2=ot.da.OT |
1ba0 | 44 41 5f 6c 31 6c 32 28 29 0a 64 61 5f 6c 31 6c 32 2e 66 69 74 28 78 73 2c 79 73 2c 78 74 2c 72 | DA_l1l2().da_l1l2.fit(xs,ys,xt,r |
1bc0 | 65 67 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 | eg=reg,eta=eta,numItermax=20,ver |
1be0 | 62 6f 73 65 3d 54 72 75 65 29 0a 78 73 74 67 6c 3d 64 61 5f 6c 31 6c 32 2e 69 6e 74 65 72 70 28 | bose=True).xstgl=da_l1l2.interp( |
1c00 | 29 0a 0a 0a 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 63 65 | )...#%%.plot.interpolated.source |
1c20 | 20 73 61 6d 70 6c 65 73 0a 70 6c 2e 66 69 67 75 72 65 28 34 2c 28 31 35 2c 38 29 29 0a 0a 70 61 | .samples.pl.figure(4,(15,8))..pa |
1c40 | 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 65 61 72 65 73 | ram_img={'interpolation':'neares |
1c60 | 74 27 2c 27 63 6d 61 70 27 3a 27 6a 65 74 27 7d 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 | t','cmap':'jet'}..pl.subplot(2,4 |
1c80 | 2c 31 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 65 6d 64 2e 47 2c 2a 2a 70 61 72 61 6d 5f 69 | ,1).pl.imshow(da_emd.G,**param_i |
1ca0 | 6d 67 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 27 29 0a 0a 0a 70 6c 2e 73 | mg).pl.title('OT.matrix')...pl.s |
1cc0 | 75 62 70 6c 6f 74 28 32 2c 34 2c 32 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 65 6e 74 72 6f | ubplot(2,4,2).pl.imshow(da_entro |
1ce0 | 70 2e 47 2c 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 | p.G,**param_img).pl.title('OT.ma |
1d00 | 74 72 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c | trix.sinkhorn')..pl.subplot(2,4, |
1d20 | 33 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 6c 70 6c 31 2e 47 2c 2a 2a 70 61 72 61 6d 5f 69 | 3).pl.imshow(da_lpl1.G,**param_i |
1d40 | 6d 67 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 6e 6f 6e 2d 63 6f 6e 76 | mg).pl.title('OT.matrix.non-conv |
1d60 | 65 78 20 47 72 6f 75 70 20 4c 61 73 73 6f 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 | ex.Group.Lasso')..pl.subplot(2,4 |
1d80 | 2c 34 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 64 61 5f 6c 31 6c 32 2e 47 2c 2a 2a 70 61 72 61 6d 5f | ,4).pl.imshow(da_l1l2.G,**param_ |
1da0 | 69 6d 67 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 72 6f 75 70 20 4c | img).pl.title('OT.matrix.Group.L |
1dc0 | 61 73 73 6f 27 29 0a 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 35 29 0a 70 6c 2e 73 63 | asso')...pl.subplot(2,4,5).pl.sc |
1de0 | 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 | atter(xt[:,0],xt[:,1],c=yt,marke |
1e00 | 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 | r='o',label='Target.samples',alp |
1e20 | 68 61 3d 30 2e 33 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 30 5b 3a 2c 30 5d 2c 78 73 74 | ha=0.3).pl.scatter(xst0[:,0],xst |
1e40 | 30 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 54 72 | 0[:,1],c=ys,marker='+',label='Tr |
1e60 | 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6e | ansp.samples',s=30).pl.title('In |
1e80 | 74 65 72 70 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a | terp.samples').pl.legend(loc=0). |
1ea0 | 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 36 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 74 | .pl.subplot(2,4,6).pl.scatter(xt |
1ec0 | 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 |
1ee0 | 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 0a | bel='Target.samples',alpha=0.3). |
1f00 | 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 63 | pl.scatter(xsts[:,0],xsts[:,1],c |
1f20 | 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 6d | =ys,marker='+',label='Transp.sam |
1f40 | 70 6c 65 73 27 2c 73 3d 33 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6e 74 65 72 70 20 73 61 6d | ples',s=30).pl.title('Interp.sam |
1f60 | 70 6c 65 73 20 53 69 6e 6b 68 6f 72 6e 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c | ples.Sinkhorn')..pl.subplot(2,4, |
1f80 | 37 29 0a 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 | 7).pl.scatter(xt[:,0],xt[:,1],c= |
1fa0 | 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 |
1fc0 | 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 33 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 67 5b | les',alpha=0.3).pl.scatter(xstg[ |
1fe0 | 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 27 2b 27 2c 6c | :,0],xstg[:,1],c=ys,marker='+',l |
2000 | 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 0a 70 6c 2e 74 | abel='Transp.samples',s=30).pl.t |
2020 | 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 63 6f 6e 76 65 78 20 | itle('Interp.samples.non-convex. |
2040 | 47 72 6f 75 70 20 4c 61 73 73 6f 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 34 2c 38 29 | Group.Lasso')..pl.subplot(2,4,8) |
2060 | 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 | .pl.scatter(xt[:,0],xt[:,1],c=yt |
2080 | 2c 6d 61 72 6b 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 | ,marker='o',label='Target.sample |
20a0 | 73 27 2c 61 6c 70 68 61 3d 30 2e 33 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 67 6c 5b 3a | s',alpha=0.3).pl.scatter(xstgl[: |
20c0 | 2c 30 5d 2c 78 73 74 67 6c 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c | ,0],xstgl[:,1],c=ys,marker='+',l |
20e0 | 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 0a 70 6c 2e 74 | abel='Transp.samples',s=30).pl.t |
2100 | 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 20 4c 61 73 73 6f | itle('Interp.samples.Group.Lasso |
2120 | 27 29 50 4b 03 04 14 00 00 00 00 00 15 6e c9 4a a6 c0 9c 1d 82 03 00 00 82 03 00 00 1b 00 00 00 | ')PK.........n.J................ |
2140 | 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 31 44 2e 70 79 23 20 2d 2a 2d | auto_examples/plot_OT_1D.py#.-*- |
2160 | 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d | .coding:.utf-8.-*-.""".========= |
2180 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 31 44 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 | ===========.1D.optimal.transport |
21a0 | 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 40 61 75 74 68 6f 72 3a 20 | .====================..@author:. |
21c0 | 72 66 6c 61 6d 61 72 79 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 | rflamary."""..import.numpy.as.np |
21e0 | 0a 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 0a 69 | .import.matplotlib.pylab.as.pl.i |
2200 | 6d 70 6f 72 74 20 6f 74 0a 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 | mport.ot.from.ot.datasets.import |
2220 | 20 67 65 74 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 0a 0a 0a 23 25 25 20 70 61 72 | .get_1D_gauss.as.gauss...#%%.par |
2240 | 61 6d 65 74 65 72 73 0a 0a 6e 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 0a 0a 23 20 62 69 6e 20 | ameters..n=100.#.nb.bins..#.bin. |
2260 | 70 6f 73 69 74 69 6f 6e 73 0a 78 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 64 74 79 70 65 3d 6e 70 | positions.x=np.arange(n,dtype=np |
2280 | 2e 66 6c 6f 61 74 36 34 29 0a 0a 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 | .float64)..#.Gaussian.distributi |
22a0 | 6f 6e 73 0a 61 3d 67 61 75 73 73 28 6e 2c 6d 3d 32 30 2c 73 3d 35 29 20 23 20 6d 3d 20 6d 65 61 | ons.a=gauss(n,m=20,s=5).#.m=.mea |
22c0 | 6e 2c 20 73 3d 20 73 74 64 0a 62 3d 67 61 75 73 73 28 6e 2c 6d 3d 36 30 2c 73 3d 31 30 29 0a 0a | n,.s=.std.b=gauss(n,m=60,s=10).. |
22e0 | 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 0a 4d 3d 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 | #.loss.matrix.M=ot.dist(x.reshap |
2300 | 65 28 28 6e 2c 31 29 29 2c 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 31 29 29 29 0a 4d 2f 3d 4d 2e | e((n,1)),x.reshape((n,1))).M/=M. |
2320 | 6d 61 78 28 29 0a 0a 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 | max()..#%%.plot.the.distribution |
2340 | 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 31 29 0a 70 6c 2e 70 6c 6f 74 28 78 2c 61 2c 27 62 27 2c | s..pl.figure(1).pl.plot(x,a,'b', |
2360 | 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 0a 70 6c 2e | label='Source.distribution').pl. |
2380 | 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 73 74 72 | plot(x,b,'r',label='Target.distr |
23a0 | 69 62 75 74 69 6f 6e 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 29 0a 0a 23 25 25 20 70 6c 6f 74 20 | ibution').pl.legend()..#%%.plot. |
23c0 | 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 0a 0a 70 | distributions.and.loss.matrix..p |
23e0 | 6c 2e 66 69 67 75 72 65 28 32 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 | l.figure(2).ot.plot.plot1D_mat(a |
2400 | 2c 62 2c 4d 2c 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 0a 0a 23 25 25 20 45 4d 44 0a 0a | ,b,M,'Cost.matrix.M')..#%%.EMD.. |
2420 | 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 33 29 0a 6f | G0=ot.emd(a,b,M)..pl.figure(3).o |
2440 | 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 20 6d 61 74 | t.plot.plot1D_mat(a,b,G0,'OT.mat |
2460 | 72 69 78 20 47 30 27 29 0a 0a 23 25 25 20 53 69 6e 6b 68 6f 72 6e 0a 0a 6c 61 6d 62 64 3d 31 65 | rix.G0')..#%%.Sinkhorn..lambd=1e |
2480 | 2d 33 0a 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 0a 0a | -3.Gs=ot.sinkhorn(a,b,M,lambd).. |
24a0 | 70 6c 2e 66 69 67 75 72 65 28 34 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 | pl.figure(4).ot.plot.plot1D_mat( |
24c0 | 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 29 0a 50 4b 03 | a,b,Gs,'OT.matrix.Sinkhorn').PK. |
24e0 | 04 14 00 00 00 00 00 15 6e c9 4a d8 dc 52 b3 62 0a 00 00 62 0a 00 00 23 00 00 00 61 75 74 6f 5f | ........n.J..R.b...b...#...auto_ |
2500 | 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 70 79 23 20 | examples/plot_barycenter_1D.py#. |
2520 | 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d 3d 3d 3d 3d 3d | -*-.coding:.utf-8.-*-.""".====== |
2540 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 31 44 20 57 61 73 73 | ========================.1D.Wass |
2560 | 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 20 64 65 6d 6f 0a 3d 3d 3d 3d 3d 3d 3d 3d | erstein.barycenter.demo.======== |
2580 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 0a 40 61 75 74 68 6f 72 | ======================...@author |
25a0 | 3a 20 72 66 6c 61 6d 61 72 79 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 | :.rflamary."""..import.numpy.as. |
25c0 | 6e 70 0a 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 | np.import.matplotlib.pylab.as.pl |
25e0 | 0a 69 6d 70 6f 72 74 20 6f 74 0a 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c | .import.ot.from.mpl_toolkits.mpl |
2600 | 6f 74 33 64 20 69 6d 70 6f 72 74 20 41 78 65 73 33 44 20 23 6e 65 63 65 73 73 61 72 79 20 66 6f | ot3d.import.Axes3D.#necessary.fo |
2620 | 72 20 33 64 20 70 6c 6f 74 20 65 76 65 6e 20 69 66 20 6e 6f 74 20 75 73 65 64 0a 66 72 6f 6d 20 | r.3d.plot.even.if.not.used.from. |
2640 | 6d 61 74 70 6c 6f 74 6c 69 62 2e 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 50 6f | matplotlib.collections.import.Po |
2660 | 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 0a 0a 0a 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 0a 0a 6e | lyCollection...#%%.parameters..n |
2680 | 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 0a 0a 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 0a | =100.#.nb.bins..#.bin.positions. |
26a0 | 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 0a | x=np.arange(n,dtype=np.float64). |
26c0 | 0a 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 61 31 3d 6f 74 2e | .#.Gaussian.distributions.a1=ot. |
26e0 | 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 73 3d 35 | datasets.get_1D_gauss(n,m=20,s=5 |
2700 | 29 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 0a 61 32 3d 6f 74 2e 64 61 74 61 73 65 | ).#.m=.mean,.s=.std.a2=ot.datase |
2720 | 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 0a 0a 23 20 63 | ts.get_1D_gauss(n,m=60,s=8)..#.c |
2740 | 72 65 61 74 69 6e 67 20 6d 61 74 72 69 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 | reating.matrix.A.containing.all. |
2760 | 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 41 3d 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 61 32 | distributions.A=np.vstack((a1,a2 |
2780 | 29 29 2e 54 0a 6e 62 64 3d 41 2e 73 68 61 70 65 5b 31 5d 0a 0a 23 20 6c 6f 73 73 20 6d 61 74 72 | )).T.nbd=A.shape[1]..#.loss.matr |
27a0 | 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 0a 4d 3d 6f 74 2e 75 74 69 6c 73 2e 64 69 | ix.+.normalization.M=ot.utils.di |
27c0 | 73 74 30 28 6e 29 0a 4d 2f 3d 4d 2e 6d 61 78 28 29 0a 0a 23 25 25 20 70 6c 6f 74 20 74 68 65 20 | st0(n).M/=M.max()..#%%.plot.the. |
27e0 | 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 31 29 0a 66 6f 72 20 | distributions..pl.figure(1).for. |
2800 | 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 64 29 3a 0a 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 41 | i.in.range(nbd):.....pl.plot(x,A |
2820 | 5b 3a 2c 69 5d 29 0a 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 | [:,i]).pl.title('Distributions') |
2840 | 0a 0a 23 25 25 20 62 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 0a 0a 61 6c | ..#%%.barycenter.computation..al |
2860 | 70 68 61 3d 30 2e 32 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 0a 77 65 69 67 68 74 73 3d 6e 70 | pha=0.2.#.0<=alpha<=1.weights=np |
2880 | 2e 61 72 72 61 79 28 5b 31 2d 61 6c 70 68 61 2c 61 6c 70 68 61 5d 29 0a 0a 23 20 6c 32 62 61 72 | .array([1-alpha,alpha])..#.l2bar |
28a0 | 79 0a 62 61 72 79 5f 6c 32 3d 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 0a 0a 23 20 77 61 73 73 | y.bary_l2=A.dot(weights)..#.wass |
28c0 | 65 72 73 74 65 69 6e 0a 72 65 67 3d 31 65 2d 33 0a 62 61 72 79 5f 77 61 73 73 3d 6f 74 2e 62 72 | erstein.reg=1e-3.bary_wass=ot.br |
28e0 | 65 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 | egman.barycenter(A,M,reg,weights |
2900 | 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 29 0a 70 6c 2e 63 6c 66 28 29 0a 70 6c 2e 73 75 62 70 | )..pl.figure(2).pl.clf().pl.subp |
2920 | 6c 6f 74 28 32 2c 31 2c 31 29 0a 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 64 29 3a 0a | lot(2,1,1).for.i.in.range(nbd):. |
2940 | 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 41 5b 3a 2c 69 5d 29 0a 70 6c 2e 74 69 74 6c 65 28 27 | ....pl.plot(x,A[:,i]).pl.title(' |
2960 | 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 31 2c | Distributions')..pl.subplot(2,1, |
2980 | 32 29 0a 70 6c 2e 70 6c 6f 74 28 78 2c 62 61 72 79 5f 6c 32 2c 27 72 27 2c 6c 61 62 65 6c 3d 27 | 2).pl.plot(x,bary_l2,'r',label=' |
29a0 | 6c 32 27 29 0a 70 6c 2e 70 6c 6f 74 28 78 2c 62 61 72 79 5f 77 61 73 73 2c 27 67 27 2c 6c 61 62 | l2').pl.plot(x,bary_wass,'g',lab |
29c0 | 65 6c 3d 27 57 61 73 73 65 72 73 74 65 69 6e 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 29 0a 70 6c | el='Wasserstein').pl.legend().pl |
29e0 | 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 73 27 29 0a 0a 0a 23 25 25 20 62 61 72 79 | .title('Barycenters')...#%%.bary |
2a00 | 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 0a 0a 6e 62 61 6c 70 68 61 3d 31 31 | center.interpolation..nbalpha=11 |
2a20 | 0a 61 6c 70 68 61 6c 69 73 74 3d 6e 70 2e 6c 69 6e 73 70 61 63 65 28 30 2c 31 2c 6e 62 61 6c 70 | .alphalist=np.linspace(0,1,nbalp |
2a40 | 68 61 29 0a 0a 0a 42 5f 6c 32 3d 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 6e 62 61 6c 70 68 61 29 29 | ha)...B_l2=np.zeros((n,nbalpha)) |
2a60 | 0a 0a 42 5f 77 61 73 73 3d 6e 70 2e 63 6f 70 79 28 42 5f 6c 32 29 0a 0a 66 6f 72 20 69 20 69 6e | ..B_wass=np.copy(B_l2)..for.i.in |
2a80 | 20 72 61 6e 67 65 28 30 2c 6e 62 61 6c 70 68 61 29 3a 0a 20 20 20 20 61 6c 70 68 61 3d 61 6c 70 | .range(0,nbalpha):.....alpha=alp |
2aa0 | 68 61 6c 69 73 74 5b 69 5d 0a 20 20 20 20 77 65 69 67 68 74 73 3d 6e 70 2e 61 72 72 61 79 28 5b | halist[i].....weights=np.array([ |
2ac0 | 31 2d 61 6c 70 68 61 2c 61 6c 70 68 61 5d 29 0a 20 20 20 20 42 5f 6c 32 5b 3a 2c 69 5d 3d 41 2e | 1-alpha,alpha]).....B_l2[:,i]=A. |
2ae0 | 64 6f 74 28 77 65 69 67 68 74 73 29 0a 20 20 20 20 42 5f 77 61 73 73 5b 3a 2c 69 5d 3d 6f 74 2e | dot(weights).....B_wass[:,i]=ot. |
2b00 | 62 72 65 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 | bregman.barycenter(A,M,reg,weigh |
2b20 | 74 73 29 0a 0a 23 25 25 20 70 6c 6f 74 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 0a 0a 70 6c 2e | ts)..#%%.plot.interpolation..pl. |
2b40 | 66 69 67 75 72 65 28 33 2c 28 31 30 2c 35 29 29 0a 0a 23 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c | figure(3,(10,5))..#pl.subplot(1, |
2b60 | 32 2c 31 29 0a 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 | 2,1).cmap=pl.cm.get_cmap('viridi |
2b80 | 73 27 29 0a 76 65 72 74 73 20 3d 20 5b 5d 0a 7a 73 20 3d 20 61 6c 70 68 61 6c 69 73 74 0a 66 6f | s').verts.=.[].zs.=.alphalist.fo |
2ba0 | 72 20 69 2c 7a 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 7a 73 29 3a 0a 20 20 20 20 79 73 20 3d | r.i,z.in.enumerate(zs):.....ys.= |
2bc0 | 20 42 5f 6c 32 5b 3a 2c 69 5d 0a 20 20 20 20 76 65 72 74 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 | .B_l2[:,i].....verts.append(list |
2be0 | 28 7a 69 70 28 78 2c 20 79 73 29 29 29 0a 0a 61 78 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 | (zip(x,.ys)))..ax.=.pl.gcf().gca |
2c00 | 28 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 0a 0a 70 6f 6c 79 20 3d 20 50 6f 6c 79 43 6f | (projection='3d')..poly.=.PolyCo |
2c20 | 6c 6c 65 63 74 69 6f 6e 28 76 65 72 74 73 2c 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d 61 70 28 | llection(verts,facecolors=[cmap( |
2c40 | 61 29 20 66 6f 72 20 61 20 69 6e 20 61 6c 70 68 61 6c 69 73 74 5d 29 0a 70 6f 6c 79 2e 73 65 74 | a).for.a.in.alphalist]).poly.set |
2c60 | 5f 61 6c 70 68 61 28 30 2e 37 29 0a 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 74 69 6f 6e 33 64 28 | _alpha(0.7).ax.add_collection3d( |
2c80 | 70 6f 6c 79 2c 20 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 0a 0a 61 78 2e 73 65 74 5f 78 | poly,.zs=zs,.zdir='y')..ax.set_x |
2ca0 | 6c 61 62 65 6c 28 27 78 27 29 0a 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 28 30 2c 20 6e 29 0a 61 | label('x').ax.set_xlim3d(0,.n).a |
2cc0 | 78 2e 73 65 74 5f 79 6c 61 62 65 6c 28 27 24 5c 5c 61 6c 70 68 61 24 27 29 0a 61 78 2e 73 65 74 | x.set_ylabel('$\\alpha$').ax.set |
2ce0 | 5f 79 6c 69 6d 33 64 28 30 2c 31 29 0a 61 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 0a 61 | _ylim3d(0,1).ax.set_zlabel('').a |
2d00 | 78 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 2e 6d 61 78 28 29 2a 31 2e 30 31 29 | x.set_zlim3d(0,.B_l2.max()*1.01) |
2d20 | 0a 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 | .pl.title('Barycenter.interpolat |
2d40 | 69 6f 6e 20 77 69 74 68 20 6c 32 27 29 0a 0a 70 6c 2e 73 68 6f 77 28 29 0a 0a 70 6c 2e 66 69 67 | ion.with.l2')..pl.show()..pl.fig |
2d60 | 75 72 65 28 34 2c 28 31 30 2c 35 29 29 0a 0a 23 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 | ure(4,(10,5))..#pl.subplot(1,2,1 |
2d80 | 29 0a 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 | ).cmap=pl.cm.get_cmap('viridis') |
2da0 | 0a 76 65 72 74 73 20 3d 20 5b 5d 0a 7a 73 20 3d 20 61 6c 70 68 61 6c 69 73 74 0a 66 6f 72 20 69 | .verts.=.[].zs.=.alphalist.for.i |
2dc0 | 2c 7a 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 7a 73 29 3a 0a 20 20 20 20 79 73 20 3d 20 42 5f | ,z.in.enumerate(zs):.....ys.=.B_ |
2de0 | 77 61 73 73 5b 3a 2c 69 5d 0a 20 20 20 20 76 65 72 74 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 28 | wass[:,i].....verts.append(list( |
2e00 | 7a 69 70 28 78 2c 20 79 73 29 29 29 0a 0a 61 78 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 28 | zip(x,.ys)))..ax.=.pl.gcf().gca( |
2e20 | 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 0a 0a 70 6f 6c 79 20 3d 20 50 6f 6c 79 43 6f 6c | projection='3d')..poly.=.PolyCol |
2e40 | 6c 65 63 74 69 6f 6e 28 76 65 72 74 73 2c 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d 61 70 28 61 | lection(verts,facecolors=[cmap(a |
2e60 | 29 20 66 6f 72 20 61 20 69 6e 20 61 6c 70 68 61 6c 69 73 74 5d 29 0a 70 6f 6c 79 2e 73 65 74 5f | ).for.a.in.alphalist]).poly.set_ |
2e80 | 61 6c 70 68 61 28 30 2e 37 29 0a 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 74 69 6f 6e 33 64 28 70 | alpha(0.7).ax.add_collection3d(p |
2ea0 | 6f 6c 79 2c 20 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 0a 0a 61 78 2e 73 65 74 5f 78 6c | oly,.zs=zs,.zdir='y')..ax.set_xl |
2ec0 | 61 62 65 6c 28 27 78 27 29 0a 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 28 30 2c 20 6e 29 0a 61 78 | abel('x').ax.set_xlim3d(0,.n).ax |
2ee0 | 2e 73 65 74 5f 79 6c 61 62 65 6c 28 27 24 5c 5c 61 6c 70 68 61 24 27 29 0a 61 78 2e 73 65 74 5f | .set_ylabel('$\\alpha$').ax.set_ |
2f00 | 79 6c 69 6d 33 64 28 30 2c 31 29 0a 61 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 0a 61 78 | ylim3d(0,1).ax.set_zlabel('').ax |
2f20 | 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 2e 6d 61 78 28 29 2a 31 2e 30 31 29 0a | .set_zlim3d(0,.B_l2.max()*1.01). |
2f40 | 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 | pl.title('Barycenter.interpolati |
2f60 | 6f 6e 20 77 69 74 68 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 0a 0a 70 6c 2e 73 68 6f 77 28 29 | on.with.Wasserstein')..pl.show() |
2f80 | 50 4b 03 04 14 00 00 00 00 00 6a 7b 82 49 25 c9 d6 13 1c 06 00 00 1c 06 00 00 28 00 00 00 61 75 | PK........j{.I%...........(...au |
2fa0 | 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 64 65 6d 6f 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 6c 61 | to_examples/demo_OT_2D_samplesla |
2fc0 | 72 67 65 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 | rge.py#.-*-.coding:.utf-8.-*-."" |
2fe0 | 22 0a 44 65 6d 6f 20 66 6f 72 20 32 44 20 4f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 | ".Demo.for.2D.Optimal.transport. |
3000 | 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 6f 6e 73 0a | between.empirical.distributions. |
3020 | 0a 40 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e | .@author:.rflamary."""..import.n |
3040 | 75 6d 70 79 20 61 73 20 6e 70 0a 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c | umpy.as.np.import.matplotlib.pyl |
3060 | 61 62 20 61 73 20 70 6c 0a 69 6d 70 6f 72 74 20 6f 74 0a 0a 23 25 25 20 70 61 72 61 6d 65 74 65 | ab.as.pl.import.ot..#%%.paramete |
3080 | 72 73 20 61 6e 64 20 64 61 74 61 20 67 65 6e 65 72 61 74 69 6f 6e 0a 0a 6e 3d 35 30 30 30 20 23 | rs.and.data.generation..n=5000.# |
30a0 | 20 6e 62 20 73 61 6d 70 6c 65 73 0a 0a 6d 75 5f 73 3d 6e 70 2e 61 72 72 61 79 28 5b 30 2c 30 5d | .nb.samples..mu_s=np.array([0,0] |
30c0 | 29 0a 63 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 0a | ).cov_s=np.array([[1,0],[0,1]]). |
30e0 | 0a 6d 75 5f 74 3d 6e 70 2e 61 72 72 61 79 28 5b 34 2c 34 5d 29 0a 63 6f 76 5f 74 3d 6e 70 2e 61 | .mu_t=np.array([4,4]).cov_t=np.a |
3100 | 72 72 61 79 28 5b 5b 31 2c 2d 2e 38 5d 2c 5b 2d 2e 38 2c 31 5d 5d 29 0a 0a 78 73 3d 6f 74 2e 64 | rray([[1,-.8],[-.8,1]])..xs=ot.d |
3120 | 61 74 61 73 65 74 73 2e 67 65 74 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d | atasets.get_2D_samples_gauss(n,m |
3140 | 75 5f 73 2c 63 6f 76 5f 73 29 0a 78 74 3d 6f 74 2e 64 61 74 61 73 65 74 73 2e 67 65 74 5f 32 44 | u_s,cov_s).xt=ot.datasets.get_2D |
3160 | 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 0a 0a 61 2c | _samples_gauss(n,mu_t,cov_t)..a, |
3180 | 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 20 75 6e 69 66 | b.=.ot.unif(n),ot.unif(n).#.unif |
31a0 | 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 0a 0a 23 20 6c | orm.distribution.on.samples..#.l |
31c0 | 6f 73 73 20 6d 61 74 72 69 78 0a 4d 3d 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 29 0a 4d 2f 3d 4d | oss.matrix.M=ot.dist(xs,xt).M/=M |
31e0 | 2e 6d 61 78 28 29 0a 0a 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 0a 0a 23 70 6c 2e 66 69 | .max()..#%%.plot.samples..#pl.fi |
3200 | 67 75 72 65 28 31 29 0a 23 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d | gure(1).#pl.plot(xs[:,0],xs[:,1] |
3220 | 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 0a 23 70 | ,'+b',label='Source.samples').#p |
3240 | 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 65 | l.plot(xt[:,0],xt[:,1],'xr',labe |
3260 | 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 0a 23 70 6c 2e 6c 65 67 65 6e 64 28 6c | l='Target.samples').#pl.legend(l |
3280 | 6f 63 3d 30 29 0a 23 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 72 61 67 | oc=0).#pl.title('Source.and.trag |
32a0 | 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 0a 23 0a 23 70 6c 2e 66 69 67 75 72 65 28 | et.distributions').#.#pl.figure( |
32c0 | 32 29 0a 23 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e | 2).#pl.imshow(M,interpolation='n |
32e0 | 65 61 72 65 73 74 27 29 0a 23 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 | earest').#pl.title('Cost.matrix. |
3300 | 4d 27 29 0a 23 0a 0a 23 25 25 20 45 4d 44 0a 0a 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 29 | M').#..#%%.EMD..G0=ot.emd(a,b,M) |
3320 | 0a 0a 23 70 6c 2e 66 69 67 75 72 65 28 33 29 0a 23 70 6c 2e 69 6d 73 68 6f 77 28 47 30 2c 69 6e | ..#pl.figure(3).#pl.imshow(G0,in |
3340 | 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 0a 23 70 6c 2e 74 69 74 6c 65 | terpolation='nearest').#pl.title |
3360 | 28 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 0a 23 0a 23 70 6c 2e 66 69 67 75 72 65 28 34 29 | ('OT.matrix.G0').#.#pl.figure(4) |
3380 | 0a 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 2c | .#ot.plot.plot2D_samples_mat(xs, |
33a0 | 78 74 2c 47 30 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 0a 23 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a | xt,G0,c=[.5,.5,1]).#pl.plot(xs[: |
33c0 | 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 | ,0],xs[:,1],'+b',label='Source.s |
33e0 | 61 6d 70 6c 65 73 27 29 0a 23 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 | amples').#pl.plot(xt[:,0],xt[:,1 |
3400 | 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 0a 23 | ],'xr',label='Target.samples').# |
3420 | 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 23 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d | pl.legend(loc=0).#pl.title('OT.m |
3440 | 61 74 72 69 78 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 0a 0a 0a 23 25 25 20 73 69 6e 6b 68 | atrix.with.samples')...#%%.sinkh |
3460 | 6f 72 6e 0a 0a 23 20 72 65 67 20 74 65 72 6d 0a 6c 61 6d 62 64 3d 35 65 2d 33 0a 0a 47 73 3d 6f | orn..#.reg.term.lambd=5e-3..Gs=o |
3480 | 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 0a 0a 23 70 6c 2e 66 69 67 | t.sinkhorn(a,b,M,lambd)..#pl.fig |
34a0 | 75 72 65 28 35 29 0a 23 70 6c 2e 69 6d 73 68 6f 77 28 47 73 2c 69 6e 74 65 72 70 6f 6c 61 74 69 | ure(5).#pl.imshow(Gs,interpolati |
34c0 | 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 0a 23 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 | on='nearest').#pl.title('OT.matr |
34e0 | 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 0a 23 0a 23 70 6c 2e 66 69 67 75 72 65 28 36 29 0a 23 6f | ix.sinkhorn').#.#pl.figure(6).#o |
3500 | 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c | t.plot.plot2D_samples_mat(xs,xt, |
3520 | 47 73 2c 63 6f 6c 6f 72 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 0a 23 70 6c 2e 70 6c 6f 74 28 78 73 5b | Gs,color=[.5,.5,1]).#pl.plot(xs[ |
3540 | 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 | :,0],xs[:,1],'+b',label='Source. |
3560 | 73 61 6d 70 6c 65 73 27 29 0a 23 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c | samples').#pl.plot(xt[:,0],xt[:, |
3580 | 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 0a | 1],'xr',label='Target.samples'). |
35a0 | 23 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 23 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 | #pl.legend(loc=0).#pl.title('OT. |
35c0 | 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 0a 23 | matrix.Sinkhorn.with.samples').# |
35e0 | 0a 0a 50 4b 03 04 14 00 00 00 00 00 15 6e c9 4a 82 5c c9 67 59 06 00 00 59 06 00 00 23 00 00 00 | ..PK.........n.J.\.gY...Y...#... |
3600 | 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 | auto_examples/plot_OT_2D_samples |
3620 | 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d | .py#.-*-.coding:.utf-8.-*-.""".= |
3640 | 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 | ================================ |
3660 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 32 44 20 4f 70 74 69 6d 61 6c 20 74 | ===================.2D.Optimal.t |
3680 | 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 64 69 73 74 72 | ransport.between.empirical.distr |
36a0 | 69 62 75 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ibutions.======================= |
36c0 | 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 0a 0a 40 | =============================..@ |
36e0 | 61 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d | author:.rflamary."""..import.num |
3700 | 70 79 20 61 73 20 6e 70 0a 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 | py.as.np.import.matplotlib.pylab |
3720 | 20 61 73 20 70 6c 0a 69 6d 70 6f 72 74 20 6f 74 0a 0a 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 | .as.pl.import.ot..#%%.parameters |
3740 | 20 61 6e 64 20 64 61 74 61 20 67 65 6e 65 72 61 74 69 6f 6e 0a 0a 6e 3d 32 20 23 20 6e 62 20 73 | .and.data.generation..n=2.#.nb.s |
3760 | 61 6d 70 6c 65 73 0a 0a 6d 75 5f 73 3d 6e 70 2e 61 72 72 61 79 28 5b 30 2c 30 5d 29 0a 63 6f 76 | amples..mu_s=np.array([0,0]).cov |
3780 | 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 0a 0a 6d 75 5f 74 | _s=np.array([[1,0],[0,1]])..mu_t |
37a0 | 3d 6e 70 2e 61 72 72 61 79 28 5b 34 2c 34 5d 29 0a 63 6f 76 5f 74 3d 6e 70 2e 61 72 72 61 79 28 | =np.array([4,4]).cov_t=np.array( |
37c0 | 5b 5b 31 2c 2d 2e 38 5d 2c 5b 2d 2e 38 2c 31 5d 5d 29 0a 0a 78 73 3d 6f 74 2e 64 61 74 61 73 65 | [[1,-.8],[-.8,1]])..xs=ot.datase |
37e0 | 74 73 2e 67 65 74 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d 75 5f 73 2c 63 | ts.get_2D_samples_gauss(n,mu_s,c |
3800 | 6f 76 5f 73 29 0a 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 | ov_s).xt=ot.datasets.get_2D_samp |
3820 | 6c 65 73 5f 67 61 75 73 73 28 6e 2c 6d 75 5f 74 2c 63 6f 76 5f 74 29 0a 0a 61 2c 62 20 3d 20 6f | les_gauss(n,mu_t,cov_t)..a,b.=.o |
3840 | 74 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 | t.unif(n),ot.unif(n).#.uniform.d |
3860 | 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 0a 0a 23 20 6c 6f 73 73 20 6d | istribution.on.samples..#.loss.m |
3880 | 61 74 72 69 78 0a 4d 3d 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 29 0a 4d 2f 3d 4d 2e 6d 61 78 28 | atrix.M=ot.dist(xs,xt).M/=M.max( |
38a0 | 29 0a 0a 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 31 | )..#%%.plot.samples..pl.figure(1 |
38c0 | 29 0a 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c | ).pl.plot(xs[:,0],xs[:,1],'+b',l |
38e0 | 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 70 6c 6f 74 28 78 | abel='Source.samples').pl.plot(x |
3900 | 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 | t[:,0],xt[:,1],'xr',label='Targe |
3920 | 74 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e | t.samples').pl.legend(loc=0).pl. |
3940 | 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 72 61 67 65 74 20 64 69 73 74 72 69 62 | title('Source.and.traget.distrib |
3960 | 75 74 69 6f 6e 73 27 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 29 0a 70 6c 2e 69 6d 73 68 6f 77 | utions')..pl.figure(2).pl.imshow |
3980 | 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 0a 70 6c 2e 74 | (M,interpolation='nearest').pl.t |
39a0 | 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 0a 0a 0a 23 25 25 20 45 4d 44 0a | itle('Cost.matrix.M')...#%%.EMD. |
39c0 | 0a 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 33 29 0a | .G0=ot.emd(a,b,M)..pl.figure(3). |
39e0 | 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 6e 3d 27 6e 65 61 72 | pl.imshow(G0,interpolation='near |
3a00 | 65 73 74 27 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 0a 0a | est').pl.title('OT.matrix.G0').. |
3a20 | 70 6c 2e 66 69 67 75 72 65 28 34 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 | pl.figure(4).ot.plot.plot2D_samp |
3a40 | 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 30 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 0a 70 6c | les_mat(xs,xt,G0,c=[.5,.5,1]).pl |
3a60 | 2e 70 6c 6f 74 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c | .plot(xs[:,0],xs[:,1],'+b',label |
3a80 | 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c | ='Source.samples').pl.plot(xt[:, |
3aa0 | 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 | 0],xt[:,1],'xr',label='Target.sa |
3ac0 | 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e 74 69 74 6c | mples').pl.legend(loc=0).pl.titl |
3ae0 | 65 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 0a 0a 0a 23 25 | e('OT.matrix.with.samples')...#% |
3b00 | 25 20 73 69 6e 6b 68 6f 72 6e 0a 0a 23 20 72 65 67 20 74 65 72 6d 0a 6c 61 6d 62 64 3d 35 65 2d | %.sinkhorn..#.reg.term.lambd=5e- |
3b20 | 33 0a 0a 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 0a 0a | 3..Gs=ot.sinkhorn(a,b,M,lambd).. |
3b40 | 70 6c 2e 66 69 67 75 72 65 28 35 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 47 73 2c 69 6e 74 65 72 70 | pl.figure(5).pl.imshow(Gs,interp |
3b60 | 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 | olation='nearest').pl.title('OT. |
3b80 | 6d 61 74 72 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 36 29 0a | matrix.sinkhorn')..pl.figure(6). |
3ba0 | 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 | ot.plot.plot2D_samples_mat(xs,xt |
3bc0 | 2c 47 73 2c 63 6f 6c 6f 72 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 0a 70 6c 2e 70 6c 6f 74 28 78 73 5b | ,Gs,color=[.5,.5,1]).pl.plot(xs[ |
3be0 | 3a 2c 30 5d 2c 78 73 5b 3a 2c 31 5d 2c 27 2b 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 | :,0],xs[:,1],'+b',label='Source. |
3c00 | 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 | samples').pl.plot(xt[:,0],xt[:,1 |
3c20 | 5d 2c 27 78 72 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 0a 70 | ],'xr',label='Target.samples').p |
3c40 | 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 | l.legend(loc=0).pl.title('OT.mat |
3c60 | 72 69 78 20 53 69 6e 6b 68 6f 72 6e 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 0a 50 4b 03 04 | rix.Sinkhorn.with.samples').PK.. |
3c80 | 14 00 00 00 00 00 15 6e c9 4a ec af 42 31 2e 0a 00 00 2e 0a 00 00 1d 00 00 00 61 75 74 6f 5f 65 | .......n.J..B1............auto_e |
3ca0 | 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 32 44 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 | xamples/plot_OTDA_2D.py#.-*-.cod |
3cc0 | 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ing:.utf-8.-*-.""".============= |
3ce0 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 4f 54 20 66 6f 72 20 65 6d 70 69 72 69 63 | =================.OT.for.empiric |
3d00 | 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | al.distributions.=============== |
3d20 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d | ===============.."""..import.num |
3d40 | 70 79 20 61 73 20 6e 70 0a 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 | py.as.np.import.matplotlib.pylab |
3d60 | 20 61 73 20 70 6c 0a 69 6d 70 6f 72 74 20 6f 74 0a 0a 0a 0a 23 25 25 20 70 61 72 61 6d 65 74 65 | .as.pl.import.ot....#%%.paramete |
3d80 | 72 73 0a 0a 6e 3d 31 35 30 20 23 20 6e 62 20 62 69 6e 73 0a 0a 78 73 2c 79 73 3d 6f 74 2e 64 61 | rs..n=150.#.nb.bins..xs,ys=ot.da |
3da0 | 74 61 73 65 74 73 2e 67 65 74 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 | tasets.get_data_classif('3gauss' |
3dc0 | 2c 6e 29 0a 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 | ,n).xt,yt=ot.datasets.get_data_c |
3de0 | 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 32 27 2c 6e 29 0a 0a 61 2c 62 20 3d 20 6f 74 2e 75 6e | lassif('3gauss2',n)..a,b.=.ot.un |
3e00 | 69 66 28 6e 29 2c 6f 74 2e 75 6e 69 66 28 6e 29 0a 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 0a 4d | if(n),ot.unif(n).#.loss.matrix.M |
3e20 | 3d 6f 74 2e 64 69 73 74 28 78 73 2c 78 74 29 0a 23 4d 2f 3d 4d 2e 6d 61 78 28 29 0a 0a 23 25 25 | =ot.dist(xs,xt).#M/=M.max()..#%% |
3e40 | 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 31 29 0a 0a 70 6c 2e | .plot.samples..pl.figure(1)..pl. |
3e60 | 73 75 62 70 6c 6f 74 28 32 2c 32 2c 31 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 | subplot(2,2,1).pl.scatter(xs[:,0 |
3e80 | 5d 2c 78 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d | ],xs[:,1],c=ys,marker='+',label= |
3ea0 | 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d | 'Source.samples').pl.legend(loc= |
3ec0 | 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 64 69 73 74 72 69 62 75 74 69 6f | 0).pl.title('Source..distributio |
3ee0 | 6e 73 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 32 2c 32 29 0a 70 6c 2e 73 63 61 74 74 | ns')..pl.subplot(2,2,2).pl.scatt |
3f00 | 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 | er(xt[:,0],xt[:,1],c=yt,marker=' |
3f20 | 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 0a 70 6c 2e 6c 65 | o',label='Target.samples').pl.le |
3f40 | 67 65 6e 64 28 6c 6f 63 3d 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 74 61 72 67 65 74 20 20 64 69 | gend(loc=0).pl.title('target..di |
3f60 | 73 74 72 69 62 75 74 69 6f 6e 73 27 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 29 0a 70 6c 2e 69 | stributions')..pl.figure(2).pl.i |
3f80 | 6d 73 68 6f 77 28 4d 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 | mshow(M,interpolation='nearest') |
3fa0 | 0a 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 0a 0a 0a 23 25 25 | .pl.title('Cost.matrix.M')...#%% |
3fc0 | 20 4f 54 20 65 73 74 69 6d 61 74 69 6f 6e 0a 0a 23 20 45 4d 44 0a 47 30 3d 6f 74 2e 65 6d 64 28 | .OT.estimation..#.EMD.G0=ot.emd( |
3fe0 | 61 2c 62 2c 4d 29 0a 0a 23 20 73 69 6e 6b 68 6f 72 6e 0a 6c 61 6d 62 64 3d 31 65 2d 31 0a 47 73 | a,b,M)..#.sinkhorn.lambd=1e-1.Gs |
4000 | 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 29 0a 0a 0a 23 20 47 72 | =ot.sinkhorn(a,b,M,lambd)...#.Gr |
4020 | 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 0a 72 65 67 3d 31 65 2d | oup.lasso.regularization.reg=1e- |
4040 | 31 0a 65 74 61 3d 31 65 30 0a 47 67 3d 6f 74 2e 64 61 2e 73 69 6e 6b 68 6f 72 6e 5f 6c 70 6c 31 | 1.eta=1e0.Gg=ot.da.sinkhorn_lpl1 |
4060 | 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 2c 72 65 67 2c | _mm(a,ys.astype(np.int),b,M,reg, |
4080 | 65 74 61 29 0a 0a 0a 23 25 25 20 76 69 73 75 20 6d 61 74 72 69 63 65 73 0a 0a 70 6c 2e 66 69 67 | eta)...#%%.visu.matrices..pl.fig |
40a0 | 75 72 65 28 33 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 31 29 0a 70 6c 2e 69 6d 73 | ure(3)..pl.subplot(2,3,1).pl.ims |
40c0 | 68 6f 77 28 47 30 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 0a | how(G0,interpolation='nearest'). |
40e0 | 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 27 29 0a 0a 70 6c 2e 73 75 62 70 6c | pl.title('OT.matrix.')..pl.subpl |
4100 | 6f 74 28 32 2c 33 2c 32 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 47 73 2c 69 6e 74 65 72 70 6f 6c 61 | ot(2,3,2).pl.imshow(Gs,interpola |
4120 | 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 | tion='nearest').pl.title('OT.mat |
4140 | 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 33 | rix.Sinkhorn')..pl.subplot(2,3,3 |
4160 | 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 47 67 2c 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 | ).pl.imshow(Gg,interpolation='ne |
4180 | 61 72 65 73 74 27 29 0a 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 72 6f 75 | arest').pl.title('OT.matrix.Grou |
41a0 | 70 20 6c 61 73 73 6f 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 0a 6f 74 2e | p.lasso')..pl.subplot(2,3,4).ot. |
41c0 | 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 78 74 2c 47 30 | plot.plot2D_samples_mat(xs,xt,G0 |
41e0 | 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d | ,c=[.5,.5,1]).pl.scatter(xs[:,0] |
4200 | 2c 78 73 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 | ,xs[:,1],c=ys,marker='+',label=' |
4220 | 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a | Source.samples').pl.scatter(xt[: |
4240 | 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 |
4260 | 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 0a 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 | l='Target.samples')...pl.subplot |
4280 | 28 32 2c 33 2c 35 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d | (2,3,5).ot.plot.plot2D_samples_m |
42a0 | 61 74 28 78 73 2c 78 74 2c 47 73 2c 63 3d 5b 2e 35 2c 2e 35 2c 31 5d 29 0a 70 6c 2e 73 63 61 74 | at(xs,xt,Gs,c=[.5,.5,1]).pl.scat |
42c0 | 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= |
42e0 | 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 0a 70 6c 2e 73 | '+',label='Source.samples').pl.s |
4300 | 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b | catter(xt[:,0],xt[:,1],c=yt,mark |
4320 | 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 0a 0a | er='o',label='Target.samples').. |
4340 | 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 36 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 | pl.subplot(2,3,6).ot.plot.plot2D |
4360 | 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 2e 35 2c 31 | _samples_mat(xs,xt,Gg,c=[.5,.5,1 |
4380 | 5d 29 0a 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 | ]).pl.scatter(xs[:,0],xs[:,1],c= |
43a0 | 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 |
43c0 | 6c 65 73 27 29 0a 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 | les').pl.scatter(xt[:,0],xt[:,1] |
43e0 | 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 |
4400 | 61 6d 70 6c 65 73 27 29 0a 0a 23 25 25 20 73 61 6d 70 6c 65 20 69 6e 74 65 72 70 6f 6c 61 74 69 | amples')..#%%.sample.interpolati |
4420 | 6f 6e 0a 0a 78 73 74 30 3d 6e 2a 47 30 2e 64 6f 74 28 78 74 29 0a 78 73 74 73 3d 6e 2a 47 73 2e | on..xst0=n*G0.dot(xt).xsts=n*Gs. |
4440 | 64 6f 74 28 78 74 29 0a 78 73 74 67 3d 6e 2a 47 67 2e 64 6f 74 28 78 74 29 0a 0a 70 6c 2e 66 69 | dot(xt).xstg=n*Gg.dot(xt)..pl.fi |
4460 | 67 75 72 65 28 34 29 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 31 29 0a 0a 0a 70 6c 2e 73 | gure(4).pl.subplot(2,3,1)...pl.s |
4480 | 63 61 74 74 65 72 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b | catter(xt[:,0],xt[:,1],c=yt,mark |
44a0 | 65 72 3d 27 6f 27 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c | er='o',label='Target.samples',al |
44c0 | 70 68 61 3d 30 2e 35 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 74 30 5b 3a 2c 30 5d 2c 78 73 | pha=0.5).pl.scatter(xst0[:,0],xs |
44e0 | 74 30 5b 3a 2c 31 5d 2c 63 3d 79 73 2c 6d 61 72 6b 65 72 3d 27 2b 27 2c 6c 61 62 65 6c 3d 27 54 | t0[:,1],c=ys,marker='+',label='T |
4500 | 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 | ransp.samples',s=30).pl.title('I |
4520 | 6e 74 65 72 70 20 73 61 6d 70 6c 65 73 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 | nterp.samples').pl.legend(loc=0) |
4540 | 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 0a 0a 0a 70 6c 2e 73 63 61 74 74 65 72 | ..pl.subplot(2,3,2)...pl.scatter |
4560 | 28 78 74 5b 3a 2c 30 5d 2c 78 74 5b 3a 2c 31 5d 2c 63 3d 79 74 2c 6d 61 72 6b 65 72 3d 27 6f 27 | (xt[:,0],xt[:,1],c=yt,marker='o' |
4580 | 2c 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e | ,label='Target.samples',alpha=0. |
45a0 | 35 29 0a 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 | 5).pl.scatter(xsts[:,0],xsts[:,1 |
45c0 | 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. |
45e0 | 73 61 6d 70 6c 65 73 27 2c 73 3d 33 30 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6e 74 65 72 70 20 | samples',s=30).pl.title('Interp. |
4600 | 73 61 6d 70 6c 65 73 20 53 69 6e 6b 68 6f 72 6e 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 | samples.Sinkhorn')..pl.subplot(2 |
4620 | 2c 33 2c 33 29 0a 0a 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,3)..pl.scatter(xt[:,0],xt[:,1 |
4640 | 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. |
4660 | 73 61 6d 70 6c 65 73 27 2c 61 6c 70 68 61 3d 30 2e 35 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 | samples',alpha=0.5).pl.scatter(x |
4680 | 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 27 | stg[:,0],xstg[:,1],c=ys,marker=' |
46a0 | 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 0a | +',label='Transp.samples',s=30). |
46c0 | 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 6c 61 | pl.title('Interp.samples.Groupla |
46e0 | 73 73 6f 27 29 50 4b 03 04 14 00 00 00 00 00 6a 7b 82 49 d4 40 d8 69 2e 05 00 00 2e 05 00 00 20 | sso')PK........j{.I.@.i......... |
4700 | 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 44 5f 74 65 73 74 | ...auto_examples/demo_OT_1D_test |
4720 | 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 44 | .py#.-*-.coding:.utf-8.-*-.""".D |
4740 | 65 6d 6f 20 66 6f 72 20 31 44 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 0a 0a 40 61 | emo.for.1D.optimal.transport..@a |
4760 | 75 74 68 6f 72 3a 20 72 66 6c 61 6d 61 72 79 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d 70 | uthor:.rflamary."""..import.nump |
4780 | 79 20 61 73 20 6e 70 0a 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 | y.as.np.import.matplotlib.pylab. |
47a0 | 61 73 20 70 6c 0a 69 6d 70 6f 72 74 20 6f 74 0a 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 | as.pl.import.ot.from.ot.datasets |
47c0 | 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 0a 0a 0a | .import.get_1D_gauss.as.gauss... |
47e0 | 23 25 25 20 70 61 72 61 6d 65 74 65 72 73 0a 0a 6e 3d 31 30 30 20 23 20 6e 62 20 62 69 6e 73 0a | #%%.parameters..n=100.#.nb.bins. |
4800 | 0a 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 0a 78 3d 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 64 | .#.bin.positions.x=np.arange(n,d |
4820 | 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 0a 0a 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 | type=np.float64)..#.Gaussian.dis |
4840 | 74 72 69 62 75 74 69 6f 6e 73 0a 61 3d 67 61 75 73 73 28 6e 2c 6d 3d 6e 2a 2e 32 2c 73 3d 35 29 | tributions.a=gauss(n,m=n*.2,s=5) |
4860 | 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 0a 62 3d 67 61 75 73 73 28 6e 2c 6d 3d 6e | .#.m=.mean,.s=.std.b=gauss(n,m=n |
4880 | 2a 2e 36 2c 73 3d 31 30 29 0a 0a 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 0a 4d 3d 6f 74 2e 64 69 | *.6,s=10)..#.loss.matrix.M=ot.di |
48a0 | 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 6e | st(x.reshape((n,1)),x.reshape((n |
48c0 | 2c 31 29 29 29 0a 4d 2f 3d 4d 2e 6d 61 78 28 29 0a 0a 23 25 25 20 70 6c 6f 74 20 74 68 65 20 64 | ,1))).M/=M.max()..#%%.plot.the.d |
48e0 | 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 31 29 0a 70 6c 2e 70 6c | istributions..pl.figure(1).pl.pl |
4900 | 6f 74 28 78 2c 61 2c 27 62 27 2c 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 | ot(x,a,'b',label='Source.distrib |
4920 | 75 74 69 6f 6e 27 29 0a 70 6c 2e 70 6c 6f 74 28 78 2c 62 2c 27 72 27 2c 6c 61 62 65 6c 3d 27 54 | ution').pl.plot(x,b,'r',label='T |
4940 | 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 0a 70 6c 2e 6c 65 67 65 6e 64 28 29 | arget.distribution').pl.legend() |
4960 | 0a 0a 23 25 25 20 70 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 | ..#%%.plot.distributions.and.los |
4980 | 73 20 6d 61 74 72 69 78 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 29 0a 6f 74 2e 70 6c 6f 74 2e 70 | s.matrix..pl.figure(2).ot.plot.p |
49a0 | 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 2c 4d 2c 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 | lot1D_mat(a,b,M,'Cost.matrix.M') |
49c0 | 0a 0a 23 25 25 20 45 4d 44 0a 0a 47 30 3d 6f 74 2e 65 6d 64 28 61 2c 62 2c 4d 29 0a 0a 70 6c 2e | ..#%%.EMD..G0=ot.emd(a,b,M)..pl. |
49e0 | 66 69 67 75 72 65 28 33 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 62 | figure(3).ot.plot.plot1D_mat(a,b |
4a00 | 2c 47 30 2c 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 0a 0a 23 25 25 20 53 69 6e 6b 68 6f 72 | ,G0,'OT.matrix.G0')..#%%.Sinkhor |
4a20 | 6e 0a 0a 6c 61 6d 62 64 3d 31 65 2d 33 0a 47 73 3d 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 62 | n..lambd=1e-3.Gs=ot.sinkhorn(a,b |
4a40 | 2c 4d 2c 6c 61 6d 62 64 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 0a 0a 70 6c 2e 66 69 67 75 72 | ,M,lambd,verbose=True)..pl.figur |
4a60 | 65 28 34 29 0a 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 2c 27 | e(4).ot.plot.plot1D_mat(a,b,Gs,' |
4a80 | 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 0a 0a 23 25 25 20 53 69 6e 6b 68 6f | OT.matrix.Sinkhorn')..#%%.Sinkho |
4aa0 | 72 6e 0a 0a 6c 61 6d 62 64 3d 31 65 2d 34 0a 47 73 73 2c 6c 6f 67 3d 6f 74 2e 62 72 65 67 6d 61 | rn..lambd=1e-4.Gss,log=ot.bregma |
4ac0 | 6e 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 | n.sinkhorn_stabilized(a,b,M,lamb |
4ae0 | 64 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 6c 6f 67 3d 54 72 75 65 29 0a 47 73 73 32 2c 6c 6f | d,verbose=True,log=True).Gss2,lo |
4b00 | 67 32 3d 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 6f 72 6e 5f 73 74 61 62 69 6c 69 7a 65 | g2=ot.bregman.sinkhorn_stabilize |
4b20 | 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 2c 6c 6f 67 3d 54 | d(a,b,M,lambd,verbose=True,log=T |
4b40 | 72 75 65 2c 77 61 72 6d 73 74 61 72 74 3d 6c 6f 67 5b 27 77 61 72 6d 73 74 61 72 74 27 5d 29 0a | rue,warmstart=log['warmstart']). |
4b60 | 0a 70 6c 2e 66 69 67 75 72 65 28 35 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 | .pl.figure(5).ot.plot.plot1D_mat |
4b80 | 28 61 2c 62 2c 47 73 73 2c 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 20 73 74 61 | (a,b,Gss,'OT.matrix.Sinkhorn.sta |
4ba0 | 62 69 6c 69 7a 65 64 27 29 0a 0a 23 25 25 20 53 69 6e 6b 68 6f 72 6e 0a 0a 6c 61 6d 62 64 3d 31 | bilized')..#%%.Sinkhorn..lambd=1 |
4bc0 | 65 2d 31 31 0a 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 | e-11.Gss=ot.bregman.sinkhorn_eps |
4be0 | 69 6c 6f 6e 5f 73 63 61 6c 69 6e 67 28 61 2c 62 2c 4d 2c 6c 61 6d 62 64 2c 76 65 72 62 6f 73 65 | ilon_scaling(a,b,M,lambd,verbose |
4c00 | 3d 54 72 75 65 29 0a 0a 70 6c 2e 66 69 67 75 72 65 28 35 29 0a 6f 74 2e 70 6c 6f 74 2e 70 6c 6f | =True)..pl.figure(5).ot.plot.plo |
4c20 | 74 31 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 | t1D_mat(a,b,Gss,'OT.matrix.Sinkh |
4c40 | 6f 72 6e 20 73 74 61 62 69 6c 69 7a 65 64 27 29 0a 50 4b 03 04 14 00 00 00 00 00 15 6e c9 4a a5 | orn.stabilized').PK.........n.J. |
4c60 | 25 9f a1 06 0a 00 00 06 0a 00 00 27 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f | %..........'...auto_examples/plo |
4c80 | 74 5f 4f 54 44 41 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 69 | t_OTDA_color_images.py#.-*-.codi |
4ca0 | 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 22 22 22 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ng:.utf-8.-*-.""".============== |
4cc0 | 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 | ================================ |
4ce0 | 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 | ==========.OT.for.domain.adaptat |
4d00 | 69 6f 6e 20 77 69 74 68 20 69 6d 61 67 65 20 63 6f 6c 6f 72 20 61 64 61 70 74 61 74 69 6f 6e 20 | ion.with.image.color.adaptation. |
4d20 | 5b 36 5d 0a 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 | [6].============================ |
4d40 | 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 0a 0a 5b 36 | ============================..[6 |
4d60 | 5d 20 46 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 64 61 6b 69 73 2c 20 4e 2e 2c 20 | ].Ferradans,.S.,.Papadakis,.N.,. |
4d80 | 50 65 79 72 65 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 2e 20 28 32 30 31 34 29 | Peyre,.G.,.&.Aujol,.J..F..(2014) |
4da0 | 2e 20 52 65 67 75 6c 61 72 69 7a 65 64 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 | ..Regularized.discrete.optimal.t |
4dc0 | 72 61 6e 73 70 6f 72 74 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 6e | ransport..SIAM.Journal.on.Imagin |
4de0 | 67 20 53 63 69 65 6e 63 65 73 2c 20 37 28 33 29 2c 20 31 38 35 33 2d 31 38 38 32 2e 0a 22 22 22 | g.Sciences,.7(3),.1853-1882..""" |
4e00 | 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 0a 69 6d 70 6f 72 74 20 73 63 69 70 | ..import.numpy.as.np.import.scip |
4e20 | 79 2e 6e 64 69 6d 61 67 65 20 61 73 20 73 70 69 0a 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c | y.ndimage.as.spi.import.matplotl |
4e40 | 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 0a 69 6d 70 6f 72 74 20 6f 74 0a 0a 0a 23 25 25 20 4c | ib.pylab.as.pl.import.ot...#%%.L |
4e60 | 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 0a 0a 49 31 3d 73 70 69 2e 69 6d 72 65 61 64 28 27 2e 2e | oading.images..I1=spi.imread('.. |
4e80 | 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 28 6e 70 2e | /data/ocean_day.jpg').astype(np. |
4ea0 | 66 6c 6f 61 74 36 34 29 2f 32 35 36 0a 49 32 3d 73 70 69 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 | float64)/256.I2=spi.imread('../d |
4ec0 | 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e 70 | ata/ocean_sunset.jpg').astype(np |
4ee0 | 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 0a 0a 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 65 73 0a 0a | .float64)/256..#%%.Plot.images.. |
4f00 | 70 6c 2e 66 69 67 75 72 65 28 31 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 0a | pl.figure(1)..pl.subplot(1,2,1). |
4f20 | 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 | pl.imshow(I1).pl.title('Image.1' |
4f40 | 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 | )..pl.subplot(1,2,2).pl.imshow(I |
4f60 | 32 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 0a 0a 70 6c 2e 73 68 6f 77 28 | 2).pl.title('Image.2')..pl.show( |
4f80 | 29 0a 0a 23 25 25 20 49 6d 61 67 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 61 6e 64 20 64 61 74 61 | )..#%%.Image.conversion.and.data |
4fa0 | 73 65 74 20 67 65 6e 65 72 61 74 69 6f 6e 0a 0a 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 0a 20 | set.generation..def.im2mat(I):.. |
4fc0 | 20 20 20 22 22 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 | ..."""Converts.and.image.to.matr |
4fe0 | 69 78 20 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 22 22 22 0a 20 20 20 20 72 | ix.(one.pixel.per.line)""".....r |
5000 | 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 68 | eturn.I.reshape((I.shape[0]*I.sh |
5020 | 61 70 65 5b 31 5d 2c 49 2e 73 68 61 70 65 5b 32 5d 29 29 0a 0a 64 65 66 20 6d 61 74 32 69 6d 28 | ape[1],I.shape[2]))..def.mat2im( |
5040 | 58 2c 73 68 61 70 65 29 3a 0a 20 20 20 20 22 22 22 43 6f 6e 76 65 72 74 73 20 62 61 63 6b 20 61 | X,shape):....."""Converts.back.a |
5060 | 20 6d 61 74 72 69 78 20 74 6f 20 61 6e 20 69 6d 61 67 65 22 22 22 0a 20 20 20 20 72 65 74 75 72 | .matrix.to.an.image""".....retur |
5080 | 6e 20 58 2e 72 65 73 68 61 70 65 28 73 68 61 70 65 29 0a 0a 58 31 3d 69 6d 32 6d 61 74 28 49 31 | n.X.reshape(shape)..X1=im2mat(I1 |
50a0 | 29 0a 58 32 3d 69 6d 32 6d 61 74 28 49 32 29 0a 0a 23 20 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 | ).X2=im2mat(I2)..#.training.samp |
50c0 | 6c 65 73 0a 6e 62 3d 31 30 30 30 0a 69 64 78 31 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 | les.nb=1000.idx1=np.random.randi |
50e0 | 6e 74 28 58 31 2e 73 68 61 70 65 5b 30 5d 2c 73 69 7a 65 3d 28 6e 62 2c 29 29 0a 69 64 78 32 3d | nt(X1.shape[0],size=(nb,)).idx2= |
5100 | 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 73 69 | np.random.randint(X2.shape[0],si |
5120 | 7a 65 3d 28 6e 62 2c 29 29 0a 0a 78 73 3d 58 31 5b 69 64 78 31 2c 3a 5d 0a 78 74 3d 58 32 5b 69 | ze=(nb,))..xs=X1[idx1,:].xt=X2[i |
5140 | 64 78 32 2c 3a 5d 0a 0a 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 65 20 64 69 73 74 72 69 62 75 74 | dx2,:]..#%%.Plot.image.distribut |
5160 | 69 6f 6e 73 0a 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 35 29 29 0a 0a 70 6c 2e 73 | ions...pl.figure(2,(10,5))..pl.s |
5180 | 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 0a 70 6c 2e 73 63 61 74 74 65 72 28 78 73 5b 3a 2c 30 5d | ubplot(1,2,1).pl.scatter(xs[:,0] |
51a0 | 2c 78 73 5b 3a 2c 32 5d 2c 63 3d 78 73 29 0a 70 6c 2e 61 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d | ,xs[:,2],c=xs).pl.axis([0,1,0,1] |
51c0 | 29 0a 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 0a 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c | ).pl.xlabel('Red').pl.ylabel('Bl |
51e0 | 75 65 27 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 0a 0a 70 6c 2e 73 75 62 | ue').pl.title('Image.1')..pl.sub |
5200 | 70 6c 6f 74 28 31 2c 32 2c 32 29 0a 23 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 0a 70 6c 2e 73 63 | plot(1,2,2).#pl.imshow(I2).pl.sc |
5220 | 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 0a 70 6c 2e 61 | atter(xt[:,0],xt[:,2],c=xt).pl.a |
5240 | 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 0a 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 0a | xis([0,1,0,1]).pl.xlabel('Red'). |
5260 | 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 | pl.ylabel('Blue').pl.title('Imag |
5280 | 65 20 32 27 29 0a 0a 70 6c 2e 73 68 6f 77 28 29 0a 0a 0a 0a 23 25 25 20 64 6f 6d 61 69 6e 20 61 | e.2')..pl.show()....#%%.domain.a |
52a0 | 64 61 70 74 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 69 6d 61 67 65 73 0a 0a 23 20 4c 50 20 70 | daptation.between.images..#.LP.p |
52c0 | 72 6f 62 6c 65 6d 0a 64 61 5f 65 6d 64 3d 6f 74 2e 64 61 2e 4f 54 44 41 28 29 20 20 20 20 20 23 | roblem.da_emd=ot.da.OTDA().....# |
52e0 | 20 69 6e 69 74 20 63 6c 61 73 73 0a 64 61 5f 65 6d 64 2e 66 69 74 28 78 73 2c 78 74 29 20 20 20 | .init.class.da_emd.fit(xs,xt)... |
5300 | 20 20 20 20 23 20 66 69 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 0a 0a 23 20 73 69 6e 6b | ....#.fit.distributions...#.sink |
5320 | 68 6f 72 6e 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 0a 6c 61 6d 62 64 3d 31 65 2d 31 0a 64 | horn.regularization.lambd=1e-1.d |
5340 | 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 29 0a 64 | a_entrop=ot.da.OTDA_sinkhorn().d |
5360 | 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 29 0a 0a 0a | a_entrop.fit(xs,xt,reg=lambd)... |
5380 | 0a 23 25 25 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 | .#%%.prediction.between.images.( |
53a0 | 75 73 69 6e 67 20 6f 75 74 20 6f 66 20 73 61 6d 70 6c 65 20 70 72 65 64 69 63 74 69 6f 6e 20 61 | using.out.of.sample.prediction.a |
53c0 | 73 20 69 6e 20 5b 36 5d 29 0a 0a 58 31 74 3d 64 61 5f 65 6d 64 2e 70 72 65 64 69 63 74 28 58 31 | s.in.[6])..X1t=da_emd.predict(X1 |
53e0 | 29 0a 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 0a 0a 0a 58 31 | ).X2t=da_emd.predict(X2,-1)...X1 |
5400 | 74 65 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 28 58 31 29 0a 58 32 74 65 3d 64 61 | te=da_entrop.predict(X1).X2te=da |
5420 | 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 28 58 32 2c 2d 31 29 0a 0a 0a 64 65 66 20 6d 69 6e | _entrop.predict(X2,-1)...def.min |
5440 | 6d 61 78 28 49 29 3a 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 6d 69 6e 69 6d 75 6d 28 6e 70 | max(I):.....return.np.minimum(np |
5460 | 2e 6d 61 78 69 6d 75 6d 28 49 2c 30 29 2c 31 29 0a 0a 49 31 74 3d 6d 69 6e 6d 61 78 28 6d 61 74 | .maximum(I,0),1)..I1t=minmax(mat |
5480 | 32 69 6d 28 58 31 74 2c 49 31 2e 73 68 61 70 65 29 29 0a 49 32 74 3d 6d 69 6e 6d 61 78 28 6d 61 | 2im(X1t,I1.shape)).I2t=minmax(ma |
54a0 | 74 32 69 6d 28 58 32 74 2c 49 32 2e 73 68 61 70 65 29 29 0a 0a 49 31 74 65 3d 6d 69 6e 6d 61 78 | t2im(X2t,I2.shape))..I1te=minmax |
54c0 | 28 6d 61 74 32 69 6d 28 58 31 74 65 2c 49 31 2e 73 68 61 70 65 29 29 0a 49 32 74 65 3d 6d 69 6e | (mat2im(X1te,I1.shape)).I2te=min |
54e0 | 6d 61 78 28 6d 61 74 32 69 6d 28 58 32 74 65 2c 49 32 2e 73 68 61 70 65 29 29 0a 0a 23 25 25 20 | max(mat2im(X2te,I2.shape))..#%%. |
5500 | 70 6c 6f 74 20 61 6c 6c 20 69 6d 61 67 65 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 | plot.all.images..pl.figure(2,(10 |
5520 | 2c 38 29 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 31 29 0a 0a 70 6c 2e 69 6d 73 68 | ,8))..pl.subplot(2,3,1)..pl.imsh |
5540 | 6f 77 28 49 31 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 0a 0a 70 6c 2e 73 | ow(I1).pl.title('Image.1')..pl.s |
5560 | 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 29 0a 70 6c 2e | ubplot(2,3,2).pl.imshow(I1t).pl. |
5580 | 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 20 41 64 61 70 74 27 29 0a 0a 0a 70 6c 2e 73 75 62 70 | title('Image.1.Adapt')...pl.subp |
55a0 | 6c 6f 74 28 32 2c 33 2c 33 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 65 29 0a 70 6c 2e 74 69 | lot(2,3,3).pl.imshow(I1te).pl.ti |
55c0 | 74 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 0a 0a 70 6c 2e 73 | tle('Image.1.Adapt.(reg)')..pl.s |
55e0 | 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 0a 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 0a 70 6c 2e | ubplot(2,3,4)..pl.imshow(I2).pl. |
5600 | 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 | title('Image.2')..pl.subplot(2,3 |
5620 | 2c 35 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 | ,5).pl.imshow(I2t).pl.title('Ima |
5640 | 67 65 20 32 20 41 64 61 70 74 27 29 0a 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 36 29 | ge.2.Adapt')...pl.subplot(2,3,6) |
5660 | 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 65 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 | .pl.imshow(I2te).pl.title('Image |
5680 | 20 32 20 41 64 61 70 74 20 28 72 65 67 29 27 29 0a 0a 70 6c 2e 73 68 6f 77 28 29 0a 50 4b 03 04 | .2.Adapt.(reg)')..pl.show().PK.. |
56a0 | 14 00 00 00 00 00 15 6e c9 4a f7 ba 1e e3 6d 0d 00 00 6d 0d 00 00 2f 00 00 00 61 75 74 6f 5f 65 | .......n.J....m...m.../...auto_e |
56c0 | 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 6d 61 70 70 69 6e 67 5f 63 6f 6c 6f 72 5f | xamples/plot_OTDA_mapping_color_ |
56e0 | 69 6d 61 67 65 73 2e 70 79 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d | images.py#.-*-.coding:.utf-8.-*- |
5700 | 0a 22 22 22 0a 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 | .""".=========================== |
5720 | 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 | ================================ |
5740 | 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 0a 4f 54 20 66 6f 72 | =========================.OT.for |
5760 | 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 61 67 65 20 63 6f | .domain.adaptation.with.image.co |
5780 | 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 70 70 69 6e 67 20 | lor.adaptation.[6].with.mapping. |
57a0 | 65 73 74 69 6d 61 74 69 6f 6e 20 5b 38 5d 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | estimation.[8].================= |
57c0 | 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 | ================================ |
57e0 | 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 | ================================ |
5800 | 3d 3d 3d 0a 0a 5b 36 5d 20 46 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 64 61 6b 69 | ===..[6].Ferradans,.S.,.Papadaki |
5820 | 73 2c 20 4e 2e 2c 20 50 65 79 72 65 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 2e | s,.N.,.Peyre,.G.,.&.Aujol,.J..F. |
5840 | 20 28 32 30 31 34 29 2e 20 52 65 67 75 6c 61 72 69 7a 65 64 0a 20 20 20 20 64 69 73 63 72 65 74 | .(2014)..Regularized.....discret |
5860 | 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 | e.optimal.transport..SIAM.Journa |
5880 | 6c 20 6f 6e 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e 63 65 73 2c 20 37 28 33 29 2c 20 31 38 35 | l.on.Imaging.Sciences,.7(3),.185 |
58a0 | 33 2d 31 38 38 32 2e 0a 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 2c 20 4e 2e 20 43 6f 75 72 74 79 | 3-1882..[8].M..Perrot,.N..Courty |
58c0 | 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 22 4d 61 70 70 69 | ,.R..Flamary,.A..Habrard,."Mappi |
58e0 | 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 0a 20 20 20 20 64 69 73 63 72 65 74 65 20 6f | ng.estimation.for.....discrete.o |
5900 | 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 22 2c 20 4e 65 75 72 61 6c 20 49 6e 66 6f 72 6d | ptimal.transport",.Neural.Inform |
5920 | 61 74 69 6f 6e 20 50 72 6f 63 65 73 73 69 6e 67 20 53 79 73 74 65 6d 73 20 28 4e 49 50 53 29 2c | ation.Processing.Systems.(NIPS), |
5940 | 20 32 30 31 36 2e 0a 0a 22 22 22 0a 0a 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 0a | .2016..."""..import.numpy.as.np. |
5960 | 69 6d 70 6f 72 74 20 73 63 69 70 79 2e 6e 64 69 6d 61 67 65 20 61 73 20 73 70 69 0a 69 6d 70 6f | import.scipy.ndimage.as.spi.impo |
5980 | 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 0a 69 6d 70 6f 72 74 | rt.matplotlib.pylab.as.pl.import |
59a0 | 20 6f 74 0a 0a 0a 23 25 25 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 0a 0a 49 31 3d 73 70 69 | .ot...#%%.Loading.images..I1=spi |
59c0 | 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 | .imread('../data/ocean_day.jpg') |
59e0 | 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 0a 49 32 3d 73 70 69 2e 69 | .astype(np.float64)/256.I2=spi.i |
5a00 | 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 67 27 | mread('../data/ocean_sunset.jpg' |
5a20 | 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 2f 32 35 36 0a 0a 23 25 25 20 50 6c | ).astype(np.float64)/256..#%%.Pl |
5a40 | 6f 74 20 69 6d 61 67 65 73 0a 0a 70 6c 2e 66 69 67 75 72 65 28 31 29 0a 0a 70 6c 2e 73 75 62 70 | ot.images..pl.figure(1)..pl.subp |
5a60 | 6c 6f 74 28 31 2c 32 2c 31 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 0a 70 6c 2e 74 69 74 6c | lot(1,2,1).pl.imshow(I1).pl.titl |
5a80 | 65 28 27 49 6d 61 67 65 20 31 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 0a | e('Image.1')..pl.subplot(1,2,2). |
5aa0 | 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 | pl.imshow(I2).pl.title('Image.2' |
5ac0 | 29 0a 0a 70 6c 2e 73 68 6f 77 28 29 0a 0a 23 25 25 20 49 6d 61 67 65 20 63 6f 6e 76 65 72 73 69 | )..pl.show()..#%%.Image.conversi |
5ae0 | 6f 6e 20 61 6e 64 20 64 61 74 61 73 65 74 20 67 65 6e 65 72 61 74 69 6f 6e 0a 0a 64 65 66 20 69 | on.and.dataset.generation..def.i |
5b00 | 6d 32 6d 61 74 28 49 29 3a 0a 20 20 20 20 22 22 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d | m2mat(I):....."""Converts.and.im |
5b20 | 61 67 65 20 74 6f 20 6d 61 74 72 69 78 20 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e | age.to.matrix.(one.pixel.per.lin |
5b40 | 65 29 22 22 22 0a 20 20 20 20 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 | e)""".....return.I.reshape((I.sh |
5b60 | 61 70 65 5b 30 5d 2a 49 2e 73 68 61 70 65 5b 31 5d 2c 49 2e 73 68 61 70 65 5b 32 5d 29 29 0a 0a | ape[0]*I.shape[1],I.shape[2])).. |
5b80 | 64 65 66 20 6d 61 74 32 69 6d 28 58 2c 73 68 61 70 65 29 3a 0a 20 20 20 20 22 22 22 43 6f 6e 76 | def.mat2im(X,shape):....."""Conv |
5ba0 | 65 72 74 73 20 62 61 63 6b 20 61 20 6d 61 74 72 69 78 20 74 6f 20 61 6e 20 69 6d 61 67 65 22 22 | erts.back.a.matrix.to.an.image"" |
5bc0 | 22 0a 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 0a 0a 58 | ".....return.X.reshape(shape)..X |
5be0 | 31 3d 69 6d 32 6d 61 74 28 49 31 29 0a 58 32 3d 69 6d 32 6d 61 74 28 49 32 29 0a 0a 23 20 74 72 | 1=im2mat(I1).X2=im2mat(I2)..#.tr |
5c00 | 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 0a 6e 62 3d 31 30 30 30 0a 69 64 78 31 3d 6e 70 2e 72 | aining.samples.nb=1000.idx1=np.r |
5c20 | 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 69 7a 65 3d 28 | andom.randint(X1.shape[0],size=( |
5c40 | 6e 62 2c 29 29 0a 69 64 78 32 3d 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 58 32 2e | nb,)).idx2=np.random.randint(X2. |
5c60 | 73 68 61 70 65 5b 30 5d 2c 73 69 7a 65 3d 28 6e 62 2c 29 29 0a 0a 78 73 3d 58 31 5b 69 64 78 31 | shape[0],size=(nb,))..xs=X1[idx1 |
5c80 | 2c 3a 5d 0a 78 74 3d 58 32 5b 69 64 78 32 2c 3a 5d 0a 0a 23 25 25 20 50 6c 6f 74 20 69 6d 61 67 | ,:].xt=X2[idx2,:]..#%%.Plot.imag |
5ca0 | 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 0a 0a 0a 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 | e.distributions...pl.figure(2,(1 |
5cc0 | 30 2c 35 29 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 31 29 0a 70 6c 2e 73 63 61 74 | 0,5))..pl.subplot(1,2,1).pl.scat |
5ce0 | 74 65 72 28 78 73 5b 3a 2c 30 5d 2c 78 73 5b 3a 2c 32 5d 2c 63 3d 78 73 29 0a 70 6c 2e 61 78 69 | ter(xs[:,0],xs[:,2],c=xs).pl.axi |
5d00 | 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 0a 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 0a 70 6c | s([0,1,0,1]).pl.xlabel('Red').pl |
5d20 | 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 | .ylabel('Blue').pl.title('Image. |
5d40 | 31 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 32 2c 32 29 0a 23 70 6c 2e 69 6d 73 68 6f | 1')..pl.subplot(1,2,2).#pl.imsho |
5d60 | 77 28 49 32 29 0a 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 | w(I2).pl.scatter(xt[:,0],xt[:,2] |
5d80 | 2c 63 3d 78 74 29 0a 70 6c 2e 61 78 69 73 28 5b 30 2c 31 2c 30 2c 31 5d 29 0a 70 6c 2e 78 6c 61 | ,c=xt).pl.axis([0,1,0,1]).pl.xla |
5da0 | 62 65 6c 28 27 52 65 64 27 29 0a 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 0a 70 6c 2e | bel('Red').pl.ylabel('Blue').pl. |
5dc0 | 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 0a 0a 70 6c 2e 73 68 6f 77 28 29 0a 0a 0a 0a 23 | title('Image.2')..pl.show()....# |
5de0 | 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 69 6d 61 | %%.domain.adaptation.between.ima |
5e00 | 67 65 73 0a 64 65 66 20 6d 69 6e 6d 61 78 28 49 29 3a 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 70 | ges.def.minmax(I):.....return.np |
5e20 | 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 31 29 0a 23 20 4c 50 | .minimum(np.maximum(I,0),1).#.LP |
5e40 | 20 70 72 6f 62 6c 65 6d 0a 64 61 5f 65 6d 64 3d 6f 74 2e 64 61 2e 4f 54 44 41 28 29 20 20 20 20 | .problem.da_emd=ot.da.OTDA().... |
5e60 | 20 23 20 69 6e 69 74 20 63 6c 61 73 73 0a 64 61 5f 65 6d 64 2e 66 69 74 28 78 73 2c 78 74 29 20 | .#.init.class.da_emd.fit(xs,xt). |
5e80 | 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 0a 0a 58 31 74 3d 64 | ......#.fit.distributions..X1t=d |
5ea0 | 61 5f 65 6d 64 2e 70 72 65 64 69 63 74 28 58 31 29 20 20 23 20 6f 75 74 20 6f 66 20 73 61 6d 70 | a_emd.predict(X1)..#.out.of.samp |
5ec0 | 6c 65 0a 49 31 74 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 31 74 2c 49 31 2e 73 68 61 70 | le.I1t=minmax(mat2im(X1t,I1.shap |
5ee0 | 65 29 29 0a 0a 23 20 73 69 6e 6b 68 6f 72 6e 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 0a 6c | e))..#.sinkhorn.regularization.l |
5f00 | 61 6d 62 64 3d 31 65 2d 31 0a 64 61 5f 65 6e 74 72 6f 70 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 73 | ambd=1e-1.da_entrop=ot.da.OTDA_s |
5f20 | 69 6e 6b 68 6f 72 6e 28 29 0a 64 61 5f 65 6e 74 72 6f 70 2e 66 69 74 28 78 73 2c 78 74 2c 72 65 | inkhorn().da_entrop.fit(xs,xt,re |
5f40 | 67 3d 6c 61 6d 62 64 29 0a 0a 58 31 74 65 3d 64 61 5f 65 6e 74 72 6f 70 2e 70 72 65 64 69 63 74 | g=lambd)..X1te=da_entrop.predict |
5f60 | 28 58 31 29 0a 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 | (X1).I1te=minmax(mat2im(X1te,I1. |
5f80 | 73 68 61 70 65 29 29 0a 0a 23 20 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 | shape))..#.linear.mapping.estima |
5fa0 | 74 69 6f 6e 0a 65 74 61 3d 31 65 2d 38 20 20 20 23 20 71 75 61 64 72 61 74 69 63 20 72 65 67 75 | tion.eta=1e-8...#.quadratic.regu |
5fc0 | 6c 61 72 69 7a 61 74 69 6f 6e 20 66 6f 72 20 72 65 67 72 65 73 73 69 6f 6e 0a 6d 75 3d 31 65 30 | larization.for.regression.mu=1e0 |
5fe0 | 20 20 20 20 20 23 20 77 65 69 67 68 74 20 6f 66 20 74 68 65 20 4f 54 20 6c 69 6e 65 61 72 20 74 | .....#.weight.of.the.OT.linear.t |
6000 | 65 72 6d 0a 62 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 | erm.bias=True..#.estimate.a.bias |
6020 | 0a 0a 6f 74 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 | ..ot_mapping=ot.da.OTDA_mapping_ |
6040 | 6c 69 6e 65 61 72 28 29 0a 6f 74 5f 6d 61 70 70 69 6e 67 2e 66 69 74 28 78 73 2c 78 74 2c 6d 75 | linear().ot_mapping.fit(xs,xt,mu |
6060 | 3d 6d 75 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 | =mu,eta=eta,bias=bias,numItermax |
6080 | 20 3d 20 32 30 2c 76 65 72 62 6f 73 65 3d 54 72 75 65 29 0a 0a 58 31 74 6c 3d 6f 74 5f 6d 61 70 | .=.20,verbose=True)..X1tl=ot_map |
60a0 | 70 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 | ping.predict(X1).#.use.the.estim |
60c0 | 61 74 65 64 20 6d 61 70 70 69 6e 67 0a 49 31 74 6c 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 | ated.mapping.I1tl=minmax(mat2im( |
60e0 | 58 31 74 6c 2c 49 31 2e 73 68 61 70 65 29 29 0a 0a 23 20 6e 6f 6e 6c 69 6e 65 61 72 20 6d 61 70 | X1tl,I1.shape))..#.nonlinear.map |
6100 | 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 0a 65 74 61 3d 31 65 2d 32 20 20 20 23 20 71 75 61 | ping.estimation.eta=1e-2...#.qua |
6120 | 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 72 65 73 | dratic.regularization.for.regres |
6140 | 73 69 6f 6e 0a 6d 75 3d 31 65 30 20 20 20 20 20 23 20 77 65 69 67 68 74 20 6f 66 20 74 68 65 20 | sion.mu=1e0.....#.weight.of.the. |
6160 | 4f 54 20 6c 69 6e 65 61 72 20 74 65 72 6d 0a 62 69 61 73 3d 46 61 6c 73 65 20 20 23 20 65 73 74 | OT.linear.term.bias=False..#.est |
6180 | 69 6d 61 74 65 20 61 20 62 69 61 73 0a 73 69 67 6d 61 3d 31 20 20 20 20 23 20 73 69 67 6d 61 20 | imate.a.bias.sigma=1....#.sigma. |
61a0 | 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 6e 65 6c 0a 0a 0a | bandwidth.fot.gaussian.kernel... |
61c0 | 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 3d 6f 74 2e 64 61 2e 4f 54 44 41 5f 6d 61 70 | ot_mapping_kernel=ot.da.OTDA_map |
61e0 | 70 69 6e 67 5f 6b 65 72 6e 65 6c 28 29 0a 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 6e 65 6c 2e | ping_kernel().ot_mapping_kernel. |
6200 | 66 69 74 28 78 73 2c 78 74 2c 6d 75 3d 6d 75 2c 65 74 61 3d 65 74 61 2c 73 69 67 6d 61 3d 73 69 | fit(xs,xt,mu=mu,eta=eta,sigma=si |
6220 | 67 6d 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 31 30 2c 76 65 | gma,bias=bias,numItermax.=.10,ve |
6240 | 72 62 6f 73 65 3d 54 72 75 65 29 0a 0a 58 31 74 6e 3d 6f 74 5f 6d 61 70 70 69 6e 67 5f 6b 65 72 | rbose=True)..X1tn=ot_mapping_ker |
6260 | 6e 65 6c 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 | nel.predict(X1).#.use.the.estima |
6280 | 74 65 64 20 6d 61 70 70 69 6e 67 0a 49 31 74 6e 3d 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 58 | ted.mapping.I1tn=minmax(mat2im(X |
62a0 | 31 74 6e 2c 49 31 2e 73 68 61 70 65 29 29 0a 23 25 25 20 70 6c 6f 74 20 69 6d 61 67 65 73 0a 0a | 1tn,I1.shape)).#%%.plot.images.. |
62c0 | 0a 70 6c 2e 66 69 67 75 72 65 28 32 2c 28 31 30 2c 38 29 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 | .pl.figure(2,(10,8))..pl.subplot |
62e0 | 28 32 2c 33 2c 31 29 0a 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 0a 70 6c 2e 74 69 74 6c 65 28 | (2,3,1)..pl.imshow(I1).pl.title( |
6300 | 27 49 6d 2e 20 31 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 32 29 0a 0a 70 6c 2e | 'Im..1')..pl.subplot(2,3,2)..pl. |
6320 | 69 6d 73 68 6f 77 28 49 32 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 32 27 29 0a 0a 0a 70 | imshow(I2).pl.title('Im..2')...p |
6340 | 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 33 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 29 0a | l.subplot(2,3,3).pl.imshow(I1t). |
6360 | 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 0a 0a 70 6c 2e | pl.title('Im..1.Interp.LP')..pl. |
6380 | 73 75 62 70 6c 6f 74 28 32 2c 33 2c 34 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 65 29 0a 70 | subplot(2,3,4).pl.imshow(I1te).p |
63a0 | 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 27 29 0a 0a | l.title('Im..1.Interp.Entrop').. |
63c0 | 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 35 29 0a 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 | .pl.subplot(2,3,5).pl.imshow(I1t |
63e0 | 6c 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 4c 69 6e 65 61 72 20 6d 61 70 70 69 6e | l).pl.title('Im..1.Linear.mappin |
6400 | 67 27 29 0a 0a 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 33 2c 36 29 0a 70 6c 2e 69 6d 73 68 6f 77 | g')..pl.subplot(2,3,6).pl.imshow |
6420 | 28 49 31 74 6e 29 0a 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 20 6e 6f 6e 6c 69 6e 65 61 72 | (I1tn).pl.title('Im..1.nonlinear |
6440 | 20 6d 61 70 70 69 6e 67 27 29 0a 0a 70 6c 2e 73 68 6f 77 28 29 0a 50 4b 01 02 14 03 14 00 00 00 | .mapping')..pl.show().PK........ |
6460 | 00 00 15 6e c9 4a 38 e5 ac a5 a0 04 00 00 a0 04 00 00 19 00 00 00 00 00 00 00 00 00 00 00 b4 81 | ...n.J8......................... |
6480 | 00 00 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 57 44 41 2e 70 79 50 4b 01 | ....auto_examples/plot_WDA.pyPK. |
64a0 | 02 14 03 14 00 00 00 00 00 15 6e c9 4a e7 a1 46 a7 95 0c 00 00 95 0c 00 00 22 00 00 00 00 00 00 | ..........n.J..F........."...... |
64c0 | 00 00 00 00 00 b4 81 d7 04 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 | ...........auto_examples/plot_OT |
64e0 | 44 41 5f 6d 61 70 70 69 6e 67 2e 70 79 50 4b 01 02 14 03 14 00 00 00 00 00 15 6e c9 4a 5b b0 f5 | DA_mapping.pyPK...........n.J[.. |
6500 | 4b 06 05 00 00 06 05 00 00 21 00 00 00 00 00 00 00 00 00 00 00 b4 81 ac 11 00 00 61 75 74 6f 5f | K........!.................auto_ |
6520 | 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 6f 70 74 69 6d 5f 4f 54 72 65 67 2e 70 79 50 4b 01 02 | examples/plot_optim_OTreg.pyPK.. |
6540 | 14 03 14 00 00 00 00 00 15 6e c9 4a f2 c1 a7 29 f1 09 00 00 f1 09 00 00 22 00 00 00 00 00 00 00 | .........n.J...)........"....... |
6560 | 00 00 00 00 b4 81 f1 16 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 |
6580 | 41 5f 63 6c 61 73 73 65 73 2e 70 79 50 4b 01 02 14 03 14 00 00 00 00 00 15 6e c9 4a a6 c0 9c 1d | A_classes.pyPK...........n.J.... |
65a0 | 82 03 00 00 82 03 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 b4 81 22 21 00 00 61 75 74 6f 5f 65 | ......................"!..auto_e |
65c0 | 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f 31 44 2e 70 79 50 4b 01 02 14 03 14 00 00 00 00 | xamples/plot_OT_1D.pyPK......... |
65e0 | 00 15 6e c9 4a d8 dc 52 b3 62 0a 00 00 62 0a 00 00 23 00 00 00 00 00 00 00 00 00 00 00 b4 81 dd | ..n.J..R.b...b...#.............. |
6600 | 24 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 72 | $..auto_examples/plot_barycenter |
6620 | 5f 31 44 2e 70 79 50 4b 01 02 14 03 14 00 00 00 00 00 6a 7b 82 49 25 c9 d6 13 1c 06 00 00 1c 06 | _1D.pyPK..........j{.I%......... |
6640 | 00 00 28 00 00 00 00 00 00 00 00 00 00 00 b4 81 80 2f 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 | ..(............../..auto_example |
6660 | 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 70 79 50 4b 01 02 | s/demo_OT_2D_sampleslarge.pyPK.. |
6680 | 14 03 14 00 00 00 00 00 15 6e c9 4a 82 5c c9 67 59 06 00 00 59 06 00 00 23 00 00 00 00 00 00 00 | .........n.J.\.gY...Y...#....... |
66a0 | 00 00 00 00 b4 81 e2 35 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 5f | .......5..auto_examples/plot_OT_ |
66c0 | 32 44 5f 73 61 6d 70 6c 65 73 2e 70 79 50 4b 01 02 14 03 14 00 00 00 00 00 15 6e c9 4a ec af 42 | 2D_samples.pyPK...........n.J..B |
66e0 | 31 2e 0a 00 00 2e 0a 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 b4 81 7c 3c 00 00 61 75 74 6f 5f | 1......................|<..auto_ |
6700 | 65 78 61 6d 70 6c 65 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 32 44 2e 70 79 50 4b 01 02 14 03 14 00 | examples/plot_OTDA_2D.pyPK...... |
6720 | 00 00 00 00 6a 7b 82 49 d4 40 d8 69 2e 05 00 00 2e 05 00 00 20 00 00 00 00 00 00 00 00 00 00 00 | ....j{.I.@.i.................... |
6740 | b4 81 e5 46 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 44 5f 74 | ...F..auto_examples/demo_OT_1D_t |
6760 | 65 73 74 2e 70 79 50 4b 01 02 14 03 14 00 00 00 00 00 15 6e c9 4a a5 25 9f a1 06 0a 00 00 06 0a | est.pyPK...........n.J.%........ |
6780 | 00 00 27 00 00 00 00 00 00 00 00 00 00 00 b4 81 51 4c 00 00 61 75 74 6f 5f 65 78 61 6d 70 6c 65 | ..'.............QL..auto_example |
67a0 | 73 2f 70 6c 6f 74 5f 4f 54 44 41 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 70 79 50 4b 01 02 14 | s/plot_OTDA_color_images.pyPK... |
67c0 | 03 14 00 00 00 00 00 15 6e c9 4a f7 ba 1e e3 6d 0d 00 00 6d 0d 00 00 2f 00 00 00 00 00 00 00 00 | ........n.J....m...m.../........ |
67e0 | 00 00 00 b4 81 9c 56 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 | ......V..auto_examples/plot_OTDA |
6800 | 5f 6d 61 70 70 69 6e 67 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 70 79 50 4b 05 06 00 00 00 00 | _mapping_color_images.pyPK...... |
6820 | 0c 00 0c 00 c2 03 00 00 56 64 00 00 00 00 | ........Vd.... |