From 545fe78165a940fdfee8767044bba1f1c2c03119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=98=81=ED=98=84=28Yeonghyeon=20Park=29/Product?= =?UTF-8?q?=EA=B0=9C=EB=B0=9C=ED=8C=80/SKP?= Date: Tue, 8 Feb 2022 12:43:23 +0900 Subject: [PATCH] losses --- dist/whiteboxlayer-0.2.7-py3-none-any.whl | Bin 0 -> 12198 bytes setup.py | 2 +- whiteboxlayer/extensions/losses.py | 36 +++++++++++++++------- 3 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 dist/whiteboxlayer-0.2.7-py3-none-any.whl diff --git a/dist/whiteboxlayer-0.2.7-py3-none-any.whl b/dist/whiteboxlayer-0.2.7-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..e2734a3026557adcd4d9df6d0c922a5c401da794 GIT binary patch literal 12198 zcmai)W0YOnwzgMUNy=8rwr$(CZ6jr;Y*)%QQ?_lJDO;(p_PO7^**p83eP(NOuJva; zt*_O_eBa*t=&}+Zphy4!01^<7DXRGX1pxfV9QGG}Wm9Mnr!iiMipDsD1ys(VItTH%M)NU;h`lPB zh&+K*V3=WNE*C!ZkuLK!s~oh~XY_>O$c8TpG8`_o=zb%GK=xY1$enR&s+%!PQyfl z0#>B;R%$36A1i(ee1RJpOjMXd2UA3xjx@io4@l4}HbGE$frDz{)h3K5=1;0rMEk^~8Nuq*@Ogi@FZDRl6B$A=jEc7}Cw0o@ch$=6a)$EIJ-jkz4gC(y{Y( z`x!;$5U*@Ps;c$8#W8*;SIEW29rAkeSK}Uwlr^f|ZHoX2N7I&lZXUH6L~_(7;w$4jdo4?J zxu0bfL0D}>*2+0HN^!o{6wWuasb_bzP&pfpm}^D=8+}a4=IlOVQ(ibwQ^LWPkQB(M z?mItZp_oLcr3ktQm#SUif$1rA>0XCS zJZmGSU^-Q8$iFf#13TC*D_y$-%oXMUSwsD$3WbzHJA(kZXN>G_j66tTtDw_d716bB zrrj&#o3C!2uj;h^YiGPH-67-aK73KN`*D3`!{#ks*BEd{Y#SS)N5+V?bjSt{LPv3L zCCo>iXZ}*+_PfBh3Yr@V@{?MIG*!7=KST<1MQ3-RuVJ`lMb*X+TOU*PM5kH9TxS3} zNS`r4dbn( z+G*SP9$c{}ir%O5P%Of96KY3AJ}#-(pvg>_;1lNHwEd6`MAi{lme;OE<8OzF@JzRo zy2~DB4-dliyu?s!RSAW!#pSuPuZ&&`J~ZeqJXcg867v1v5;a`b_nzS^kAu|pG*Jjx zo1PGs3wqsScKRE!0XYimiC`dC6B60wZ4k&SiO^^q50}P<_eXO2?HyUeLk+1x8u`I) z+yf0eNG2x43Zs}h!3D^D!q*5yJc`_279I!8bWQNK7dQE%ulz^yU$q$Bo!Gq^|;@fngtHv;JWt}j5YhUX5NR^3}_U)W0hjE!tLE}r&Dc=u=8J)op;ev-?N#j zC$JOhchX*&YH>&V(Z24e=OaK`>mem!gsb{IJw^|Fel0!& zEocJzDoHs6oW@x)%s|@W*-Jv`D8!9GjuNf}_h7{7mo`DM+=E`|V>@L8w?qD6Z{nagPorUlu?W}F4 zj0{j&@*-Xr-5U=o{W&zcSTtJ7f*r6WetCjggD_E3la0G@GKVrF06_DVrsU=z;WNHW zrJ~v&c$F7WVD5Xqz}3q2eQUi-Fi!y&u{_Y7mqs z?k2KClO9B8)y)KRM819mPCX9Dz!+D5Xt6yq(U3Er&1XAi~cDfr1WY$8|mDSqoo~&T-S|{E&PU z8X+6OS1{|KJ`sIvnAMgj zXU&4L?Gm%xaTlOh<&{<^?e{l~+6SxP?xx~us5l||J>xorwx2CkW{ zQM6~8LW$YGwwOlCE=p{F6?-HZ{~oLp5fiX%)=YeFw&_?-CIJ^2EXN_JA+94m{pG;= z*^}$=fUTj1r71I$LvejF-hO>d)8;HTIagk#-mDv2=56dJ#4iQ>BO{a`kqyCr&n1&# z0RWPJQZEA=YiAovr~j{Cr%D?ZE3|Ol6FPXnUCc#6O;y2u;JKDRjJ(wJVAW{tDOrF; zm}6fEUQb-A4VS2L2(^+pNBeb;de>YE&$)3o5&~yM8FHXg_JsV4_}SleD=|k3@7U=0 zz;S|5m`Ye&B9lJCdjgIVeS#^jdV3tOz%s}CU2{R?Nbcj<0h_Q#Ep{x%)6~Av1J)?x z!GusHg>)^FPKfBo~qLs>&{6VHC@t% zA4T;>GV<$Z3sK+l7RUEaTPoVlQb9gNN^<872It{xGu6)umX#XI6ybkExBZ@%B3nN? z;%+hT#EoW1NfMYhMlNPi4JF=ULXZDFWHKaAtZg3t(SmogHjiD4=v$)F3k4N2NT}lV z$GKLNO93ifzR9q@`+N8$+U7Fk@QooR7!#0L8ANI;wHiSEjvIvQRt6L9``#3WTf10aD>n3yIRn0?`fxg4 z(Yf)V^#?#>zy(l#Z3lH_L|0K%F>eIuT63<`JsQmMie)G%CqFFfXB_dPDx%^ruW~MP z9!ATX>SjxF#cBExz%VU}c)Vqkn}v5z*rc#EDF6)7kLDZlL4@ZMP@nflF7Xivz%nlX zBK1rx4?c&VR%-{9_jWteIoocVkkinOI$0HIOpC|;S7`xTE2Y;C~?T64ucI6j3>gh$+ARtc#H@RnHsl9 z1p8&x?csw__FXxtok@kGQqEEO`(5^LXAT`CGrg(zkRE?)IKQDz0*SnX<9BMjJ_>5ZBQF?5H$1)jFOD|`wjBRroB z;BgWAZgi=$gedbPg;KL_AK^~YLii-1zSMxGfFbXJh^Aq?1ZI0M(5wd8q?K3D8G6bY zBrT!PHA4^{!Zb4a&=VE&u1cTYj(f$XOL>tQv0)8JI=s!GfNjH7i*?WWsgrDoieu0R zb#mE}N-K@;kp)62eki$!VzDftJ9Xm{+E!C1WE7*0X-0#aw&R#I6zC9ZkiLBj9p;mB zE;T1O2^^H8Pp^jd1cA;d|NVpJ=OMs0$t3;j3-XH!R;F-g4&;r>w5X z)?ci*S#EN!2rqG3HK%_-y#1*s!~gEUPv8%v)9;c<1_A)!|C2OY+Bi5E{n4H&kCyo4 zM++BppRS)Mgaf~pVhbjt%MblQoS#fuV)vne5zbH8Aa5k)?b6A7N^Cm2S}C?fnA?Y9 zGT|UWm5(4{n6(BEw7Z6emTLs%HSWOI%^9W`e!%ZU;|Ed-?|RJ$X_d|Lm1cDptS@Z6 zc*d*?T|i5rv!q5HbiG)4%YFJqq49EA>W%(OA~dilE&JJ*PK({!jUB<6Wy5kv#1Q73 zQ5eHi_YXM?$Bji8VuXovgSrqB#3v~dCYN0yOOU2mKZo@XDjQ%ALXtrsHSZQWxPX4; zB!8HNJC!VE!@F6;y*tG}R#f&z22S?&??u%ghLJ4gP|A!HbpMEq;X>c#P)#yK&)~RZ zy-dBll5nDDNclm5S8=d8NN2;JFkm!z>g&m5AVUf(_|f5<+l}3L=uA3&B#x zfnS9gTyqpZ!|qm4benFGTyFHjVkGn3&p?vrW!5-AXV(D1^~nOb*ip znnI=Oh%Wh}0eaK`LC%1llz%<#d~(3iv_WWpfW(uC!$gk*M=t~AF#zQ`1CCgEOMs>= z0Mp!^@p6j5n_`vHWULddalFP$8>T1z}*hA=4 zeNU-}dCxhUXhBl@wq}7kT3<=pyD|JxxtiEkCwLVnks2o7ZUh`V;R# z^Du3JF}@cowti99p7kK zj}?;JZ((SzS>7fM_k--MVMScB()vdRb9YPl`licD?~t~kb&N4yy=^OZVJJ3-sOdul zcOwby+!uAx$R~&`%gXc}x5H*NJ9B%%avl5O94)GP+u6Fzq!zs1m3(;fB&NQWN^4%- z>cInj8bhG{@d8Jq(()=J3Ki2F8j@#FkvaamJ6_j8vtHqy3z@Cnc;m+s;I@DYrWrv_LR<7+_-)*_`;T*xu zqxlqk)d=L-Ms|+(ViMEXeCpO8as>v7bF#=?fGwQijMDpY=cIDbjWRLFK!)DdX-fZ= zK=U~NrG>F4LcSjb!nsuu^oa-Miz0&k=zTPAgPI|e1d7^{QOumAnxRpWkn)b2VSer4 zaVllau}Mq>k}-PlSa;OYr2)gGf%D5ED^I~=wZ%gQB-BN#L=i&`tq^JzRQ%i)IIp}GxQ|Mx-$IYOM@lf%ph^xl z#nEV}O)Xxx{f^D!zAxkl7Lid2&g6qJSlOJ(J3@=M;Cmt@%uzP4iXndvVX7m z@}#(m5FBdg#1yAtJ7syMcF%QkCbgC6v{7rlQuchX@%AD+{Yvv!;R92@ad86!0P;Qo z00jSJ1@C2;rJ1AKyX@sFuUN0J!g<}Rz)=HBR1D7!aU%iMbvC3S3C&nl+hx@S@s22# zeU*eKG}3r|%D{8V*}iFD0uClVuxE8J4(gLu9*!25fo?>&m1Yhw!#8X+YMM+K9y#`T zCeGR|S$6xb$ZV_ul}gdD6D-a(S%%@8p^QKuKQ<;gK9IR9X5As~m@1AFQh-8kmk&=;m)~BP zS`;e|>@fB&x2ZV6$3s>N1sygLUQAmU^i8?SvpOV1p?@yCZ#ZQ)f1iXo5=RgM5V0f_ ze7iE9Uc~V2#ECqdfCd#aUVaowN$|7ciTJf^@$tHGtxu`HP;T-hf;0$$GshjyP%% zs+)^2(LkV#^|=!n*Df=`$XRVJ{2A1ao{9a~hMWuidCitiS`bALSAAW;{u&t8=dV{X zzMP53RFS#%*~sVDaUYhUh;wA@7*GQ9;S^Pxm#PhH15|4aa(0B!+h`J00`45+|NZ^6dKQf zd>7^i9y;16h>Yr}3N61V+;O~=MxgGA`}*YhzBb4pK_c(E$`{-Tui4TZ?-q)NCHA4k zYgfk&_*%-&oK)RWQS8q8TEgx86f^ z&H5!SB;)Y0t#YnjsB>QAvTPlHjnB&j01*FAkzGkrGhboaJmzMie zVsrR`qqGZ2;Qn70wm~dylJ&aaR>Zrby$H#a5>SZgS@lL`fl_d8D-cN*{s}TD~xL@;a}q=V!%~)5+^( zWNm=7oiOb`dAcqHI`@BbYH4i_{9@CB7-l0>R{a4wZ6&Nm z5;C^ETNww>J-n{1gov1)?g-1%(t!7^wf%AD`qch5fSw1qFdUl`(?@Et+cWPW-kpDd z)@TDh)c99-XPXJpr$D(nFSZ{xig22$A4sEE2%5ER^bhLtZ@bP3mqR_#57>(!G`R)~TX zUQWpXcC61baWe_!lXpo;3Y$i6_LQJrwR=@cdikRV?d7(4H3r*e<*<@f9u>ey zVS@#-chyt92?eSUH#%_8Phmc2PFp8C;J*GO*ezb0n%&`N)dpdyba%+@h#R(6A@Ds=BBV-i}inFn}fj$#mjAFbz>NjvR z`13J=QTSgt-gwYuzWk}bq5Pi2{}}bdcX)53QM{+Ee@j`ZXsPL`S*Q)o92}|4tc`7G zB*g@Tq!om;vXI73wV>2cjh(_Bc?yMx2-BRZOA5lG)Ss228f{Z#vb^Uqwg55A575oym5mElb(Gic8#}8(5W$3KJ zHaV4UncDZ&km`Y}&Wi!t5_n30L3_)v&eL!CB)19d2eAnt#OMjo$aV*hr+SC788?=uNs>vnZ|fNZ%pgn$1jO+> zrCFaB^>ha}C-2j5d)8V7=4BiwU3uiP$Mf$8Cd4##pRXCe)i48)Cvby#5*3!HfH zeE7*frOx9Vi4cezfsVz*@is87W-Y_<6ryZ{atI`iTj`D)*p3dqxb)m5i#oCLf@p&O z2zR-q#n3q6OQ-6@=^S^jY|Xg^`ePaU|j z;X*-K4S0J&JiG-wKZQ~y5NR<^Nxh6gt*sN-E}{Fak}{u9KGz5ITv2{jP#HR7U-c@G zGH;34l1xe{T_WGNC(MFi#;J>`Y~DTJ-1iE7TDeBuToFFMXcVzTAGVhQMfRYTR5a|8 zsbygoR=$4O{4o}DP$>q=k{XnKC!BvZk5*CLR*g9NGPWZGJwIBALH&EPzZ7+mkUJJn zaZJfKwBnM8e)_KXHX0EmCjH~zM3rGymu1o;&CPF1WNR+tff zj_Xt_rB=to7o&2RmC()YTOOp&&l@2e&|@#;@)DA6O9FEO>hfNm&iwKOhuZUw4rWwQ znwJ+$vb1DXR%?>g_TSPh2;$Q_S<&1W60f1k_}g9h-?xuC6tEyR z?N5`wvMW%i()JjHh#M$<8XtD;C`x|@)A-ggyWA}a?w?;})(nZC0PB4qPW@$R^UXJW z-+;9v?7pO~cp7oBxKpFx+`M_hfw%_BQjsiaXY0c7;pKoRbgFK%Z`^dLOq*Tlf1ZiCi9FK!lL3Jb) zj;$;*v*x;=w*{T@R5}`xk{f-h7XChO>V^+%dug@dOV8mMBMy3$DY7RB=2|Qt2D-#( zf4HriQJ(o4>67(*V(;STP=MWx=L>@i$gmNxi76KPy6_p57^4j342DNRVy|)%f(Qr6 z{xQzDbn-aXrJxW@s5cp3$8Sn*(M?wz1zR9xs#4Mg+Vdt>GypUHKL2sR8`UN@13ode#NZk=mA*@e#@6+TS6y~+hI}9K zL3c96ROF{t0vz2EBz6TvMxaMmXGm-3KAte!E$Eb%?TyT>*V7G@juWQgJc$9Yj2_|uIOne}=trI^B-w<0u81+;@1@2H(EO~wvrYdsqbs z9W9Vprl=Oeiz?VE)4xm|hjKT@*+ZEa@i*}UcuuDPU+uE{vp~KOrNW_R&KbHrdQwN5U%M?_P#*Qvnz&FDB!Mesd#50%t*o^iftcO-mFrEc z6mPS1kt;bQPJji-KDMx#3yL&8m%Nv?W)c%?JOy>^vg%v~NZ6!8!QwT7IUq)bO$pfK zBu%}S@CEtm60&wWwW-T+7e3Ida(XzremBA-bmV%7vGT%#j1X+wXm~sO*UP&HiTtHv z3DRqMPPow%Fh;Hq7^uAsSvTD?@Te}3^)_VRPvCBexMu=APM02wcsw+4)7*wF6DVS* zi+cAh*PJpfWUvdT%@T^6sp4KZcDo$8xXgrG_7*NL&- zg;^N8HLhi+h4QpmO(kgKAALg)!295V*tixz`ItG}(lzKrll_rClA`R;GSZFpxChsR zn3@39(Yn_JXC3Q)tEpok5%WX%5hv36I`{t9scGjldd}{8MI5G0PNttT$@c7ig<1%= zP{He{?suY6i*@|PW#q@>`JC1z433YqIm$P!59XGY*l0t3B<{n|>qH-p@LSa&&bEz1 z_Bb@j?+8-}Cf)`yWtuD*29Akv%v-I+83+8ySN-SMUQV)|tI9|vf-+jlXmTFEqFW^m zs$8Xz4c*tGdy%E}Y^k%r;+(m`z*2Zhze$SB^sGf8Wa`0xKh+_cm;AEGmNv#N)na`f zw3FoJQopP%^c`<85iK(4Ynip6tH1idU?D1r7ur{yb^U$1pS-JzWe=nE^lQ||O?f5x z8|`ZKHu#|U4G(F=c|su_%RergR1#(^~C~|v?v#GrzCHE zVskK#xQ=~!*5YJ4DH^=PYZWy1gwAC_$kV38Zi&;hk}s(xC2~S%LbTJddeK?z)G?gW zaaVEGTDeQ(Lx&UYE)O62#vdQ{GRKP=k!_TM+TH}N;1EP`&t?8IfCN*3+C{`v(^*8Wo zQ|ONWdotVip3D;dSFpU0fQ-Cg`SeKSH(n(0O)nl8_Ei{^+D&47e0!Kj(gIjVf{AUUPPJbBK7&2&Be`d?vKt zmG)Q_83-1M7k2WRp$$9eI3g-}CHIaIAZ8}K?aXAxaGR7*O`pRMR8!_^qNh}DW|1*q zA4o*Qq4Qzb7<5}=JiJY|KStxuUCn(4oD_?-a5{hAbe7qdc(0u+}X`KOJ-= zS|B+(y;8n{(X<{9)7bNWaZF%1t8_-$_F*I7?F)^M!e?Qi5Lip`H`BxFVbD35sJPC{ z(Ec%fKd6dvI+_=Ms2B2FH;c(|rh;I}ICSMVV0lPQ+RzK13mEgNLw$(V^fO9kJjExo z-m5GpCgad>Td*)mrED2VS7ej~%m{v3P_B*9mn*fn?%tO6ECESxS4S7#q5*rze6Lm4Ft;Uy2|P@;(*>rtIV@l);7t3Wqj%&32ap3Rr{w*v?m3FJRd$-eL8 ze_eULe|-GqZTa(j*Pk)}Zf5p>An#2&U$(zt{%?Zz&yasNX!Z*t_TKONYb^hM?Cf{q z?_+1bh+qGS_~#+CKO_I$EXXgU1oS@y`Pa#iKSTfB$^S2C&4+)0{_h;XpK<^0wCopd z?7fKjkALL`qn!?7eRO!+SpgEdQ{{KMWY~{{VmA=okP1 literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 968297c..a7f35be 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setup( name = 'whiteboxlayer', - version = '0.2.6', + version = '0.2.7', description = 'TensorFlow based custom layers', author = 'YeongHyeon Park', author_email = 'young200405@gmail.com', diff --git a/whiteboxlayer/extensions/losses.py b/whiteboxlayer/extensions/losses.py index bd2ea03..18a998c 100644 --- a/whiteboxlayer/extensions/losses.py +++ b/whiteboxlayer/extensions/losses.py @@ -1,25 +1,39 @@ import tensorflow as tf -def loss_l1(x, reduce=None): +def loss_ae(x, reduce=None): - distance = tf.math.reduce_mean(\ + loss = tf.math.reduce_mean(\ tf.math.abs(x), axis=reduce) - return distance + return loss -def loss_l2(x, reduce=None): +def loss_mse(x, reduce=None): - distance = tf.math.reduce_mean(\ + loss = tf.math.reduce_mean(\ + tf.math.square(x), axis=reduce) + + return loss + +def loss_rmse(x, reduce=None): + + loss = tf.math.reduce_mean(\ tf.math.sqrt(\ tf.math.square(x) + 1e-30), axis=reduce) - return distance + return loss -def loss_l2_log(x, reduce=None): +def loss_log_mse(x, reduce=None): - distance = tf.math.reduce_mean(\ + loss = tf.math.reduce_mean(\ -tf.math.log(\ - 1-tf.math.sqrt(\ - tf.math.square(x) + 1e-30) + 1e-30), axis=reduce) + 1 - tf.math.square(x) + 1e-30), axis=reduce) + + return loss + +def loss_bce(true, pred, reduce=None): + + term1 = true * tf.math.log(pred + 1e-30) + term2 = (1 - true) * tf.math.log(1 - pred + 1e-30) + loss = tf.math.reduce_mean(-(term1 + term2), axis=reduce) - return distance + return loss