From b0ad7cba3369f1661a67d6bf8aaa3f05c6182054 Mon Sep 17 00:00:00 2001 From: cbbcbail Date: Mon, 19 Aug 2024 16:58:00 -0600 Subject: [PATCH] Minor fixes. --- data/Fig1-designProcess/blend1Subset.pickle | Bin 2574 -> 2573 bytes data/Fig1-designProcess/blend2Subset.pickle | Bin 2574 -> 2573 bytes data/Fig1-designProcess/blend3Subset.pickle | Bin 2574 -> 2573 bytes .../Fig1-designProcess/distinct1Subset.pickle | Bin 1299 -> 1421 bytes .../Fig1-designProcess/distinct2Subset.pickle | Bin 984 -> 1226 bytes .../Fig1-designProcess/distinct3Subset.pickle | Bin 2838 -> 2885 bytes data/Fig1-designProcess/distinctSubset.pickle | Bin 2094 -> 2093 bytes data/Fig1-designProcess/fullData.pickle | Bin 3782 -> 3781 bytes data/Fig1-designProcess/hullSubset.pickle | Bin 840 -> 863 bytes data/Fig1-designProcess/outliersSubset.pickle | Bin 1614 -> 1613 bytes data/solverData.csv | 12 ++++++++++++ figures/Fig1-designProcess/blend.pdf | Bin 18285 -> 18258 bytes figures/Fig1-designProcess/express.pdf | Bin 16744 -> 16773 bytes figures/Fig1-designProcess/tune.pdf | Bin 17629 -> 17844 bytes flexibleSubsetSelection/logger.py | 12 ++++++++++-- flexibleSubsetSelection/loss.py | 3 +-- flexibleSubsetSelection/objective.py | 7 +++++-- flexibleSubsetSelection/sets.py | 8 ++++---- flexibleSubsetSelection/timer.py | 12 ++++++------ 19 files changed, 38 insertions(+), 16 deletions(-) diff --git a/data/Fig1-designProcess/blend1Subset.pickle b/data/Fig1-designProcess/blend1Subset.pickle index 607162107052a13f280b62f58ddc70c5ca2a4b15..6ae45cd234a25cf75de5d5259f849ca5b5bf0bba 100644 GIT binary patch delta 1888 zcmXZRc{J2}7{~FMF~$tTtY)H8M567gMC$f^NIFH9l0;GBS`reXn)^dFQkH5&QIgOi zw4Ai+H`yvRkx~)~DQ%Xq)S%A2=k$I4d7by?NfV|D>GAaAw4?M)4c)Nl?GbTvj^@V` z`(n6l$W934Mr3%B+JrVR#p_j11+c*3_#2i17ks60hKGq!J+axpbejpRs@Qve zY=Q=K+JE6NLX>3t!gm)K3LeNH+l=BOfaw&X?1NGl=te_hVYV9bC3i*^Khmed4)>(# z+>*VFrU_zj>` znZZm!j2Nu@LwoG?#!+V0Q$p_Pm`*Mxf3ZZN`_gdX|4X6-2b(Pmn0Ed&(fV6fY7=Ncn_7eLA zpj#BReq@jJ4+nRctLR2SHngN^!A z+etNZ*^z_K`%ug6>(Rxt_^|%Ox@(eiG}!IP?0A2R2hd`cIHJh_#tlYnFe!leh?lEL z78Um07YDrZ;Fx!_03_pO+h&gUA*05JKOAR^z-F#gYSJJCA~yMK z);k?I;o~;3v7QAwE=?tsV?r1zZ?Ch=5ker({9PTS`+Khg97(_l(>iTSiYfc7wvhI$RGD`+jrf95J{tIYg3ShdwMVk83^Pp+r^#6Wn5_jUvgq z(B!1uqbTE^(bJ+kVo=N|h@_sOgE)4@deMwFl9|wc-R7$ps@f_SIz{|Kxd~Sym+ut9 zJg4TgX~*~w-DRj{tHyxk#{CP5ZipcEZmlwq7)Hrf(n%c25Ym6~rOoc!7@3zsyi327 z%7*a!Qu|H6dEk=l%MM5$CVi!PW05i@)K-S~s;Vg9!1~}AQc8ssM_%jwCJI1(=XTco zD@eB8a#nQEPoy%BQavkRf|_Tx{{+!E+I66z`tfBhbjQE__}GyL689IGDMOl|sh!AN zYoQ6R47`q)PIaj1Sz&q3fC3Gr z*7B(-N@OmKTUp&cgeGcOeEKJw1>2mzG!;k($@8n-IUlm#plP2s|LtP&6S=CXYms3z zC{|cCW+ky<*2}1b9uo$*KQIVzx%UfwR``s3Q5KSf@b2Wgt=WUfDP7kxs!IT&Ay<99 zDO`A_poG}%rbC=lX$tE(O+K*2qAonOncSm)o2g)E$o-QyK6Y*4gSh2TgStOW-Z?;A zdDX2#ZhE)h8;4LJQ@i4DYvmxC`6<7-xOFNtRdxGTSr4F$K~<%DzMOm=tG4Ic3LXKk zp9E#UWp|Jd1`2i0=P=;m4XxopQyy?_JWTDil}P!wgl?8Zg~Ix4H8+oSprOy7^a3B< zL;GD0c#{1iXmNSUy&O6=KC$1MF0+ z5!M82hPA-X!!G!vtWSeQwU$wtV!fsKvkdEiT_Ib^W=^ z_Por3B_=N6D#l*MmS9Vuy_Sib)OWcGJ> delta 1880 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 diff --git a/data/Fig1-designProcess/blend3Subset.pickle b/data/Fig1-designProcess/blend3Subset.pickle index 817160e68a5d667394700b1874134ef86070ec3f..a3dde5dd84aa5d2a34b7a4ecac46a02de720ceab 100644 GIT binary patch delta 1886 zcmXZZYdDm77zS`N#*A^Ad1n|JrLZEMR&6P1|4(J73lT*`I#`EFqOMZXc#%U2r3s-B zCMuy^n-sm1QlbnUL?^OI2ho^D*Oatf+yD9UyYBnT{o%=#fr3G!vpd~Jck8sk0KAPNaaCE zYguRAt*^+`=Pi@$;zLxv;U;~N8C>)IF*;!P1(|PA`ep~}z>Ji_@-1>62x8}Xm&Vs1 z!s&Dr)x?F6mMQk_&IaJj_Ml66hNSFUt3%?SVOHSMu)pk^2@8nB(g=l`fUc@1)@fP{ z=yQ6{VQw9vV(x`_>r|RU&-|C=%=-i|EIxnRzJw*KUY1wip+4kzb#zg) zkOn)vQl@g}2;tJIg5fgj39x(C$W{94NwDy|Wu{G}ri|MfF1MhQ+Hi4h$-bB#Ll|d? zN@G?FzlqfNSByR=SLZXZqb$6@|Yhec%UkJ_!bRZw3e0fK5@WNzWE|g{FPGs z^Q3#etI>!@`R^L=1-(1hc4uO*0y&h21$Ju@P^Buk)bf!94g7l^vfCz5$QnCksxSso zZgOx2`E$6rFvxGR2LonS%S*T{9(-2>CglI62a6&CNb@a2l8R zmeyumX{j^<>wt}piZ(uI+DeWd>=;H*>uPqNpTPs46W*7^C3NUe4xJ17Ab@?Y+OK-A z5CBi7C5-AYA;eBpbD~{E1?gG@lDRe}5EuE#jbhW_KrN?#={z<}eEPw^@Lvx26~Qt8 zpFb9lRfSC-8%7on?tF2bDFBDr$;npjhHzrNr|APZ8|LVk)FuY>qEN#2Y~zpsCVN{Q z=FQ^ELSx>Dy|xiD_L1N>GZXYdul@d-1rZY&T4vF82}Gyr2%&FF$C#UlTU2Qg!!)s!`pbBID%f zOY}jHw{v$J1Dp<6cD7K4kZPYikt6<$gb&}pSUUKPl2~Lk_k7?(#PwvSfN=sG=8QCX z-<6}4spJN|;8YcLyD?%&eNzKO?ANYaD`~K}ys$34R~sty3btGjnnIc@@%;K@4UqQN z&(GPV10e4UXV0xhn!b5KCW0~4*~2wZv6zrs+B*MKDiii3wcom1!G->~XK(Jh60nNV zS60+IPIa33WnCzs$sB5Ur;K#}MkmS4wP9BnDhfhI^E|5)08$qTlyMd5AHiWsqe_WcZq{`g9IInZMk-7c?|9uM? zAil8k;@L4JT9>r{(?A0QW<1&z|JI5LUN_8wSJr<=4%aLnMaT_+e0P8S==%{VmHOnh z^w?uQ)V7AlD+>)EdPQX#yMr!s_ZX12wD+Q>L6eD9JCsPV$*v_Ly^D$w)@k2ovSj87 z1v^8F)yVkip?0kxx~xw@R(JNRk>`ZE-ru%rKz;l=xge2%Z2gAA&l{C!`ap5l`R7xh zAvr1bfto`?e&EquUd=7)xKiEdRV<^P?A44JTu#7~*3Eg(^j=Xn6jGzId?wuaM^~k^ zCV=a(#@b1L1dS{fGp41`;PbnI38BsPD7w^kl6#RpG|%4XDaiRqx%5w$xY@lyON!|k z#`T);@P%&Gks&&a-QARBP1A+Te!6;rX*#b^ev|WB2ctf!#)8SDInyC9r&~ z5NnQ|inYPoO1fE-$$2>0V;5i@v43I_7O=~(PFNAv4eO3wiS@*;!utG@r{RkWKdiqb zT6;3N38z48Fm^L`D|Q<;92?v#k wwh&u{Eyk8&rPwprGHm((NV#C2tBXyN82 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 IoXlJb06(t9asU7T delta 371 zcmX@bd4rv`fo1Ah=83FRImGfxa|KqP7v~ODkuo(0r5{zRrtN)WFLg#laH`M0{Tp^lZ(Gf!;9x4cV!vp(ki)FYOc66`e%dbz zP0J3Q_sjn4AI14olgpS7a2(@%#Q*vJ{wtSTKR@Gov%lxWeu2(UA`UA>uQbLik#kt^ zEo08<0^S4JSC|~#)r1^^s$5RyDE+gavi{(l0A{8GLW|G+e`w0#z>?+TQE^bvLHE%V z$<(hR2bQVz<;O|>vY)(==_VuJ8Qw2LUwo_O}&um9^P$=-NyaPaC$%{6snlcYE=+qXrJ zL{d3)7k+SHz%SkW)6V7Qi&XKJo$%{`sY|L+(U zYWIlYOgDw``(C@3CpbcWPq*D?6&Y67{r&W~6&2bqKAoe~(}f<02ob>e7nB>+Jy)@V+*(^o|V~ehJ$%o4Lpa>Rf@T4 zoPM1NGMB+?ly%?1lJgFS<|gZ?nD-N#?I{NEh3a3Lw$2iQoxXE*SF*sUxTg9{+9c-L zFYNWRp1@qyTZdPiIZv$CTTyD-&j9b{*h*9R81eSpgWI;<1K8*-W`phZA&gqMr)QhO z6fO=IUB35$3eAfjuOI8{#Of-%)tR2w;E{dv=iC!ah&29@6C^hS{{n>|r^_4;7=$M* zoc#j3bDY0v=2~4SPtVdl^J$W>I3@jQB-{W_J?qOY_p$_)j2T>1$ASfynoF2eQ}{f< z%RIJ{4oj0FcG$)B5pC9rHOq_0z|8l_pUqchUWElL zovf-4wI%`mLY#g7fi6O4US96rhaa(@j)q^Bmr!6k+u(V34GX3(`j>h#j{?x)lsQ7v zhiEtds-rE#1mDP>S1{KKb|$w55r$;gRn2(i>tP7C9q%_Ef58Cx#Ki>XiI155quZa@ z3oOCQRiSWfF^8j(A=4i<8-mH2w(^E?b67;Ps@@&ZjosR^FLc}bUTl6@r?JxkCd>?X z+;8e)riw{>Ee{j2RE7ryuNPz*1HGkby=Rg&WPbd@R57MOhyi1d-E$jw^xo`n@3|hV zAgwqnQ_l<{+x-mPBgV1iS5rH))(>LmoKIa9$|8VMxC1fvF z*fQipSe|{(ov!z0kW{bmi}=C<=WB^24ep|SCs16a>4)Mo4+CK`KJd6di`L2re_ zIqMV>OsBfNi7qsRgy45=r3y76FBeyyols*DN8kH4f9$~e2oHX5<3ntIt2Cq6Q6K1Z ziR-`bP~kbDC`;i{;H|5LYfY*pTyEdED7@PM-Zn*!yc;YdWZsco2VV_f*-u}V9d0v& zCeIYL>m&^V4_bIgUzmX~zLK+<#DoV;qvv zV`rBebuTO*#@bE7Orme~69Zhgdr1e{i6X}e8}kxA~tz%z{9-pELv99f&6;FbEo%-&B^xjo!>*9A}jsTCzBC+$D0Sn%|IY~eHdbK>?Dqha+N7BIcm&+#)J#0Hnib)EK* zVd(7}>zF&&vE6I3HW2+ISZe9K?}CesA>TICWOSYm;58=$D(~GUR=;x23vzpn`JANW zOuMcFkAFA1c(9KG6L+~s=8%ox>Lw#PPx%}>))=tS%c6(CHD7k60Z$gENfePplO7Ub zT$DBv*d$F%khO`xrfBb3c!VbFto|Hwe8Dz>#D&L|XrhtE5ec?(0z{hMw25Nh)b&hpX>iuaYUz5mq ztVt|On{u&c-!d*jGqF-q;{K3pv9^DeYQ2=Nd9S^H8)|}X>O!pmiH_#RNEXr*X^otL zoQeD%X@_(~x*^?>9>^b&p2#K0rATk&GURe3AXgv*kb%e`WH2%W8H!wo3`1@}ZbEKG zMj#`RJY*Cy1{sTtMGiL64_AZwA=kab7`*?_!( zY(#2Ld+fsCsiP#&o+nN7s%Zf=eXaHsed}>Ki2^Bi>R3f+J_uZ?RMWl6aiu;dTF8x= h8cyR1g-Kf_9KI}B^SR(k1soxlClE^Ty%HJE<$tsp(xw0a literal 2838 zcmZwJc~lcg9tZFw5W*>t5akl0gB$|!L;;Wfd7v0DD(dQ>5)u+15JF4>ilU$^pc2uM z1_YG>Wf43PFGQUVBPuhx9*nH62MW3w_28HQhxo_sZ=|B2YmHaBz?{%uam1>w{ zW=0vlG}a2CTr5;^BjS}3ZlqEeC&4u)^Mz{Rg5h>H?y(Kug1c)B1#wYIT;ufTa;aP` zQObof6*o>O7e+~xDqLeeR~8=;yZCD#&&D+)(FlP|DpGO(KLpoU3KHZBX+*3{A`t1v z3>V82;uJ|-!SK_>CCJoLp;9SKB7at(ltjeKRcd8Igj!!oAFjkT4D#uROS17GN*X?o zD#A1H5Zpb88bk|Pla5DQYUpBhl0u>%M2qyrckTT8y@7^06X)~!ydm-$z6DX#xM4a1$j`ko515cV<8;c!Tn4Q4{Wz;l%YbI_&7*g6Y~k>Wcq^V02aKj! zZN-j%!2;TI_veQ*pw=dQcV(kF7&};c;Jnwwg6h^e7oV~Lx>wQjVoag^@$>Uh>2x@r z^`h`xqXPt500T_1K*L zrwoUNx|_jbms1JyfpnYQT87(pW|mL>lKEOY!#Ozm}>w> z{0|%HY?#2Zn-?tUHUM7J$&~s|Yj}A$)#h5quf+KQ*TlgcuL#w$$_BZ{Kmz#5X;>BHnPsqw499B%iC|aVRinZ z66RqmII=P_c4eUsnuq zt(<5VmRh#F@`~De&;O zw2v*O?L+~6?*T)fLChsKrF7jqOVHF2R=c`wU}bCDJ#Jq&<~7@17H4S;`|*gqrsLa) z?njb>E1T-Eicq`PE`>Ux!2Ip({B<wJ&i<$H9UAsrZO|P_pRaC+y5lq=M56Jg30UB(i(`? z|E4@*CsDOkj(uGXjZH*RZ}g$t3JY!QL)x5$u1pBoH2)VF`Q8j&JFWIv^buViw~uTs zeve%}USa;=E(LzPdh2bSbr0sc$F%Hw#TzWTbq$Zd+5nfeAnO_h8L^V}5eqISK-~Yws7|9K@bY+V*PMdkX9k zb}{Ey=`inR+)mPCqvh>sZKz^26Z`;GnAA&$wbf@nbj)VKOK&Itci!iSQrE2bFgx=9 zpmYz|fBiLfQrUQ#zt|9Pa_80q5HL?L5)k4B02e)J~8b6u2LzKN9jvL^nNQH4oSH_Kl$YJYN1k1 zPOdRjspA#o-1>%uY)})@$)||+jP}sb|1wfcMlK#bBHCJ?V$rN`8McP(*lK9fKjl`m zRaz8Q~i6e86xyS>^gUAwODe@Sy3|Wpm zfjo_@Kvp8pBQGGUkk!a5$g9X}$e)lk$m_^jq<(crPvj3T9f^MZkf%}dNJk!2^{eLF zp;ZtkQ45Ec(K>Pi5USPWadZo=F%m?|gi*uIQ9_w4euGLNPEe5BgHSCI$b=$^Ooi`M IC5X6x0KkCJTL1t6 diff --git a/data/Fig1-designProcess/distinctSubset.pickle b/data/Fig1-designProcess/distinctSubset.pickle index cdc928d60085c616eacd694a8d833aa9cd898e95..b5ba377bc461f39c77637d16c5b77e294ae79536 100644 GIT binary patch delta 1432 zcmXZQe>~I&9LMqF&Yk1ze)xTr!fuqfU1pYA-_JugEt*itkFhf3$HVkXB@a&2$+~&a zmBNNN524hugr)B{Kg#^bkBA5Mz->~5AvF@)SI_78#68mf;UE zQHNvgG71u9l;v>tq$L-QY%LT$jpR|kT^=e_t6_Xe793 z!HFD$gL*Dz@Vn2-n=#2-;{0vJe)jEI!aRJ=Co@O~Hm2lV4{sNMQG&xh)tL%{FTHkx zY~;aCwuh!tU_f=J7bgV&yGXoiaXPy#QY3@ETfJ5aEe5Ei<6LIMEE(4tx=*Lv9FFWw z`GmJg2zR`4r;DvjA;xaDMsv>^*j#3rVSSiR@miwVEi|>kef=7-y@C&}TH95Ef4H!< zJ?vLO{32;plAQbT9s^)yr>IZK1#oLV_fGR93u^USJ*Y<}(C+xudvQuONI0Z697w;$ z1D7m$NZODAH01^Rt@U8Q`o@1<2Wmm9*Cm5K*m zrZk{$P^O>noF-1YX^#w7@d5hRC%w^OLa4;0;%dh{8LVp&lx1xK$@jRU&JJu?-9O=< z_ZJu9mu^Mc$d;xFi>}9S-E57(Ni3I(It<`ypy#Ttb~X&3{8Y-!qr)NohLXA|BUrmn zbU|RJPgUz26)k;c0*R^sj>MZyjc`u;1H}W!hPFXZXJbg3Ugl9;WAN1GrkIZip=(0_ z;)_x>krkJJE=fxtYAe0urDx}enbkhqWXqHuIL?@Op0Zpdq^=(&*K6xg6CANpo`KT^>YN4J6H#oWBH-)P};l>|)&_jcw(fglYIj#evi376df4K3%i=i&g zZ&@avnfYD5nX5rLRS14D)cv0LIm0)yiZM@eibBqA7Mj5-mSik6n+=if<2@?*99h=p z*mWg^15>0!@QcPyVq^F5GcQC;*!$2dWcU5|1c!4>+}gx~mtsS4Rjd)bYzurdK3hbl z_WoUTu}2?bcge~X>`qO}-D9k%xnr1^IVfq4{;7|Q6IN@tF!4PCE}?6I3pqjQS%QiNviB4{?$r)H^tOa$4{%1v$9Hw- z=dAd^bMm&5>dg|fU&b@mr)a?Imt&@fn(h!^+L8_9E` zbMDg4!T}a=HyH|}_Ryi+HrXdaM2AYhtaX=sjQ&@b6Qmd+avFE~IvJ|T3N?eNA*10m zQ6|bl^-w-)jc!0~Q3<*UwMQM$FVM~C)(`s80K;}vih7~@Q6JO~^+yBIFf;-^rZi_6 z%TD5pMdQ!}GznFpX{Zv-M6aSbXg*qis?Z{|_=8Tg>ljMWGV}&oj^0Hp(Hdn2%a~8$ Mdx+L6t64Gs0c{xFnE(I) delta 1402 zcmXZQc|6p49LMpQF*A+U7S3>w4H&G}=rk9<9WracA3oJo>)>c|P8+dR7CAnn^7elu|47 zOyW;V5>xCCmr65n=V<-mB`FX31Ny4HTg*YbuPgeh4I4UhSgWpLYY0jjQqI)9$GEoH zskuxI!Cy>#veQxr8rkHrY5^b0S%cdamv}%f_BbuM_L)iAk z@AL(}7CRl)o%Y8d1?<~<;|#2|CDB@(KSEE#^4Z6XZjpDl4;>%V=E$q4_xukGRc;>!bp|D8*wU zYSKA9_)lZlqc!^V`4tm*d9Kfsk-&xWhAlIC6V{+Q7qhHr)Q1--@uV}uLzuKGFuz94 z1y<;@7wdSd2{b)2?)cu42S*rP$uKVf?Wng%kj8>b55t_M+Bu*UhP)Ri(x5`@E)OYX z!FSyQ^8Pj(_~_}Kyd=pQMrS0@!-tGvdORd@>iIH}Y+ooj+;W?!DakUc9azDpbz)V& z_3!I5Fu?`diX-&|(7h|bvDs#oSW5GZ5lxxh|{r;&4D6n(5M5xLbT;t zuC8Wr;iuWUUg`u1e3;@`mD&L6E8mv-hi-z@?D_PnadRMF)9&~(j{&tQKI*5(*RU;- z_>G*S?(Kvd5uW{Es}ZQIYp>k1?I(^LJ1uqC`Y*;v7!iK%VgNkXz~uE%2F&kEr8Sso zu-y|E{|TF1#ExzVA9fHkmF){NiLgwA-Ax7Fc0&}{lOkJC_mRM=^~`=VM?Ixn2F-4) z2|^rXdnJ`h2UTIPb;8Ik%*3~_**H9gqRe1F`gEIb4{=xM7ZEAcftFh?`SUkSpmPAv zJ8!QGZ`R%{I$hvE%yYws#V_Zuq62~<$_Yyd_C3j*pR$6R<5W5sCzC#mg499Mk%mYk zBp106X^yl&S|Rz!O-LK00J-IZ$4J{z*nt!x?U9a1XXGxV8`1;mi4-CCBK^xU>84(X z&^v;RLPjIMM#du(kV(i>WlFkfSUP$+$XsLz@;ve)vKCo~Y(O?5<;bS85?xdB{jzFZ J(=tLg{y+0_-n9S# diff --git a/data/Fig1-designProcess/fullData.pickle b/data/Fig1-designProcess/fullData.pickle index e0a9fce43e1d7a03411922f6e1199881a1d8d02f..1e793fd8730eb64b542291877bf9ef3bb75fd617 100644 GIT binary patch delta 3254 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 E04ck?e*gdg delta 3255 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 D_3Kc} diff --git a/data/Fig1-designProcess/outliersSubset.pickle b/data/Fig1-designProcess/outliersSubset.pickle index 596d5885eab91845e79aaa3668d7458897f775c0..8f611be002761811e9e9876a3a3c83026b2a031b 100644 GIT binary patch delta 986 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

k&Fk)PpOJ+ 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 D6r2OI diff --git a/figures/Fig1-designProcess/express.pdf b/figures/Fig1-designProcess/express.pdf index dab5267a841916ac5fc89697335446fdeb94badb..6f651f1db6893606a9f7ea018cdc3ba52e2d0128 100644 GIT binary patch delta 8052 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 a`QK!O#KeS?DdbeJg#>U|Sd_GtasCUfS6w>* delta 8046 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 diff --git a/figures/Fig1-designProcess/tune.pdf b/figures/Fig1-designProcess/tune.pdf index b6f18bdbc807569397e0ce2035c6190b256609b3..e69f1deff712a28a79bbe1056ed7146c2b5cd214 100644 GIT binary patch delta 8559 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 delta 8367 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 XiiipeBv>gbf%%9Lad0SVDiQrZ`g8k- diff --git a/flexibleSubsetSelection/logger.py b/flexibleSubsetSelection/logger.py index efbac8e..351bfb7 100644 --- a/flexibleSubsetSelection/logger.py +++ b/flexibleSubsetSelection/logger.py @@ -7,9 +7,17 @@ # --- Logger ------------------------------------------------------------------- -def setup(name: str = "flexibleSubsetSelection", level: int = logging.NOTSET): +def setup(name: str = "flexibleSubsetSelection", + level: int = logging.NOTSET) -> logging.Logger: """ - Sets up the logger for the package. + Sets up logging for the package. + + Inputs: + name: The name of the logger, defaults to package level name. + level: The level to set the logger to from Python logging. + + Returns: + log: The Python logger object to be used for logging in the package. """ log = logging.getLogger(name) if not log.hasHandlers(): diff --git a/flexibleSubsetSelection/loss.py b/flexibleSubsetSelection/loss.py index 298425a..53a3fe3 100644 --- a/flexibleSubsetSelection/loss.py +++ b/flexibleSubsetSelection/loss.py @@ -1,8 +1,7 @@ -# --- Imports ------------------------------------------------------------------ +# --- Imports and Setup -------------------------------------------------------- # Standard library from functools import partial -import logging from typing import Any, Callable, Dict, List # Third party diff --git a/flexibleSubsetSelection/objective.py b/flexibleSubsetSelection/objective.py index f209339..d5cda1c 100644 --- a/flexibleSubsetSelection/objective.py +++ b/flexibleSubsetSelection/objective.py @@ -159,9 +159,12 @@ def entropy(array: np.ndarray) -> float: probabilities = np.array(list(counts.values()))/total return np.sum(probabilities * np.log(probabilities)) +from ott.problems.linear import linear_problem + def sinkhorn(subset, fullData, solveFunction): - geometry = pointcloud.PointCloud(fullData, subset) - sinkhornOutput = solveFunction(geometry) + geometry = pointcloud.PointCloud(fullData, subset, epsilon=1) + problem = linear_problem.LinearProblem(geometry) + sinkhornOutput = solveFunction(problem) return sinkhornOutput.reg_ot_cost diff --git a/flexibleSubsetSelection/sets.py b/flexibleSubsetSelection/sets.py index 2cf3ae3..f9f38cf 100644 --- a/flexibleSubsetSelection/sets.py +++ b/flexibleSubsetSelection/sets.py @@ -1,7 +1,6 @@ -# --- Imports ------------------------------------------------------------------ +# --- Imports and Setup -------------------------------------------------------- # Standard library -import logging from pathlib import Path from typing import Literal @@ -20,6 +19,7 @@ # Setup logger log = logger.setup(name=__name__) + # --- Dataset and Subset Classes ----------------------------------------------- class Set: @@ -328,9 +328,9 @@ def __repr__(self) -> str: """ string = f"Subset(size={self.size}" if self.solveTime is not None: - string = ", ".join(string, f"time={round(self.solveTime, 4)}s") + string = ", ".join(string, f"time={self.solveTime:.4f}s") if self.loss is not None: - string = ", ".join(string, f"loss={round(self.loss, 4)})") + string = ", ".join(string, f"loss={self.loss:.4f})") return string def __str__(self) -> str: diff --git a/flexibleSubsetSelection/timer.py b/flexibleSubsetSelection/timer.py index feb097d..f59aa0f 100644 --- a/flexibleSubsetSelection/timer.py +++ b/flexibleSubsetSelection/timer.py @@ -13,25 +13,25 @@ def __init__(self): self._startTime = None def start(self): - """Start a new timer""" + """Start a new timer.""" if self._startTime is not None: - raise TimerError(f"Timer is running. Use .stop() to stop it") + raise TimerError(f"Timer is running. Use .stop() to stop it.") self._startTime = time.perf_counter() def stop(self) -> None: - """Stop the timer, and return the elapsed time""" + """Stop the timer, and return the elapsed time.""" if self._startTime is None: - raise TimerError(f"Timer is not running. Use .start() to start it") + raise TimerError(f"Timer is not running. Use .start() to start it.") self.elapsedTime = time.perf_counter() - self._startTime self._startTime = None def __enter__(self): - """Start a new timer as a context manager""" + """Start a new timer as a context manager.""" self.start() return self def __exit__(self, *exc_info): - """Stop the context manager timer""" + """Stop the context manager timer.""" self.stop() \ No newline at end of file