From b0cb823f163cc9e81f21873ec714a593ac428567 Mon Sep 17 00:00:00 2001 From: BakerMara <550165764@qq.com> Date: Wed, 23 Mar 2022 15:45:24 +0800 Subject: [PATCH 1/5] simple replace torch to oneflow --- __pycache__/basemodel.cpython-38.pyc | Bin 17970 -> 17976 bytes __pycache__/layers.cpython-38.pyc | Bin 12824 -> 11191 bytes __pycache__/model.cpython-38.pyc | Bin 5277 -> 5564 bytes __pycache__/utils.cpython-38.pyc | Bin 6467 -> 6469 bytes basemodel.py | 10 +++++----- layers.py | 6 +++--- main.py | 2 +- model.py | 10 +++++----- utils.py | 4 ++-- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/__pycache__/basemodel.cpython-38.pyc b/__pycache__/basemodel.cpython-38.pyc index 24c509d3338695ed29c3e5c9beae4e6c9932f2de..ec3ad6387eefc5b13994468aa54403f7b7d891fe 100644 GIT binary patch delta 1093 zcmYk)TSyd97zgk@d*9Vn+qKN-s)jAdF409OQ<0<|%8G6> zseMXx6XyAqm>LselUb>g`IMqfu2n86AO(9}Qcw=HPwnvt(|8h+!aNDfA-@xq?kffxM(YEVZSxc&&$@MKQNvqz|JBtX`-MJ-%2y9~B0q)j{uO!FTRIVc3 zY_L-FALARN1MGVx?__0FU8Khvth(=6GK~BbCmy7=sEfc^kmK0F4k}AxN;BwXWDVdF zyW@$GG3)Gt$L?Gg5&{lz;^nqi-jh;j0g_%&1rCDwU@bTV4ud{$1S|sm;3)8L?0}|= zZ8Rm(K}1VIIXD4=AUOg@!D(=Y6EFC0E7%3S0M2u4Hm7Dr^;HZnas>Zg(Uc97=8+VG z2q*#L*0!1pUUJi>_R70Ws{~`4T{5$d!3iHLwbjqR@3`rN_%)rhuN3rm=#@KOvnJM zsB7}SLOS3qHo>~ZolzGK@Oc9-HFY+rV#Oy#(ne!>cQKD~_nY^d{p#_%JnZ>)|!M~U-|`~Ivn%(9IM z^3poj*g?omwk|P~Eo$0DZdoHuKq9Txe?ni(pKB6VW|1Eav%SU}h09g3cHJ}o;u zIZ9|6P4FIj>c1d?8#2?nmQw8SznZ>BU-WNZ#!M@vMnX!NDcgsEL7lI!k6mrv{~M`y BG1veA delta 1083 zcmYk*TSyd990u?`dl^U9)orzlSYTeL)simQMKsM4d$9-%VUdPyXEbYeW;?rP7emSI zp|nI#RG?*6U@r+ZSY{;EQ=kPslsY|kdFTd3PZgc-*h4=2_@D2bt?Pyr1ULp1epbxk> zc8XytEi|ms%ZN6C9B>85pz{X22}ZyzPSE?`R=SXmfjgX#H=!AElPYRB5k@1PP;@h_ zYLq_07z<;hV+uOxIFd}@1AZ{cSj5x7DtAF!vCrPrt^8DHXbY&=zL+03} z%8O*&D%rM-WWVQQLMgi0f-kXM;kF3#I0Od4Yw#A#f;k}8pGWnJgO_T?G@3Y0|FEf@I$6p}YIB2^&@Y~ccyoAU twk&=_rG`OE(aaJ})=`^V_z`XYLU&uDRgahAo!A~xQ}NV#+2h)ie*uKhDKr28 diff --git a/__pycache__/layers.cpython-38.pyc b/__pycache__/layers.cpython-38.pyc index e50ee19812e90d2109a707b3542d8972dc1df3dd..f75a0086f0e57be12e64dc529d944d2d7c8b8abc 100644 GIT binary patch literal 11191 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 literal 12824 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 T7bgqF&rV*S{LqC?C#-+Zrm ze2?KD8-Mvq`6sq*DQH`NU2pwn@ek#t@u!$kg_2NlNj9pkmW_HZ=jOPXTibn*;c<9ebd+MarXonP7< z>+IK;3eOnIgl3C9x|DgwC}eUU!dtisqsa(1`{V-c6CyO)={=DI;Dwm`jC-Io47LE8 z$nidF?~D9yxZ-mjL_%x(Tv+XXgwfj_Mq<9%=bODj81#aO2lTs)^;tttZ`B%OQH=*a zi*c7xpiIhM^ zSJ}&uXiKqKlfF^xbSbxf9}e~{%r_&PFybAb2eHHV180l%>9EaLT7Dc*rx^^HA7bE# zeRkmZIC_T%Z9Zhds+GQD@HEOF=rjlh>BwA2|CO&2C%wpj|M5qrLsHv%b3DXpJ5dy{ zb*I(uhs%fi0hVD7=uSpo8BA7m`pk*?eARN$)^SaKPYQYcA+GshCNIkuUq#? zIos|h>XQ#}wd|Gjf;P5l~7iUY?TisFEmM z6J~PMp!rj6RON-FnpCNIU8yUy@CD@LXbv(u`(08==3ZAu6>cRqwN9}K55~GV_UR?3 z1YMy2))JN4iwX)-j+Rfg zv-!k6mrK-P@EU)PR%rDhN<_DMws4NqCpw)wRdH5u(d*soSComatb@qd+9YEedDjl_ zc`VrTLZpb#L>1HY2ll zXW1jHs~lnXrLk{F;7DDq6LB%ODU)xS)j#x)0wzkC<}~d@?d>eVW)drzNIB@W0!lm4 zo)>qH17S~+WTvCtZ#GdUqbU7*c`-FBuaq8O!A4E!aS-mNckOF0;iW>2+wV}+H*bg| z#Oy7|xYpER;7;!4>*;3|XUw+1WIvMN>J-_PeM@RprYp;8Agi&k;L}M3jYUD?1HZ#! zS+PB@9r|(Xc~?c0HDO~DJ>CIO^cqo>>33mhCNb45gJd7dXqD7egP5e0K^3C96uvOE z>P$_JpPRZ)jErNDNdc~9g}A03m*C3ZRu{&ylwZDw|G)$}gY-sd%dVbl@8QiGX?I?txF zkP2nQyM@aq*|j7JVLZPuSPto#=)y7#&O delta 2510 zcmZWr%WvF7829+KUhgCBZqk(UGELL6B@HDKDnx)pQvyM-NKjr@kmKx35^wxijc41Y z^0G)R7f=q!hzqKeT#(>^sCwamI3Vsw94&#wjUq1m0Z_gf@3tv;<5u<10xu!;>_ zzJ{F17bR@s$~6gBNb{=VOkwnf)T-V1^))m*hZk30i^xV0UpoDEOt)8iJ1nN1t%bM{ zuHsI#dUHko4Ovdjk2*mg6Bm;xAx^fauAw~pTOsqyv1#Zr>R&$DnisZ^G&EY`cVq9X>HP>W7PVFHU^sUnI64F|tY6oY2{Uw?n867VCr_j9Ga8cdm~J~P*Zs(& zJGs*7_1m4sfu?8z&oQIGo18+D#3Y7N>8jk7QsNiCRy-K8CC{bc&pt;s^252cblm(mK13?>H)IVcFV{Q7oF;E5Rc=; z?ZiPpjFP;GqlgQu2c_9hwX;J#H}CFft`{AV>%oFc$!1=~H15TH=2CzrorjH~PjCX8 zBi*_U&n?a^w@|LG`(Dyg^NKGL@jOXh7C7KY$*uo3y$ICFZqzqxAM%hEkSh}D zW`>iwmh^jsQX8bX;kth0GuO>6zK$&)!y)7LK?ErZNI?q951O1ef3AQTo#sOs7)>xN z&Q0!JR46x=IEdkJ$qf+!@Z;R)Va%7^&!(-`@LBFw+9ot2LDFjGYC?hy`WQ&*94AXa zoWn)>|1ItuSJsLuj#ARoTvi>)gr8%MMtr`ax{q_43ZG~8sWrXeh$$DFLeGG%DE|Vt zn!39hD9?Dyv%jn(!{hl%jn!kby%0WC`F5 z7~EG@<$*F#naYuIRUT*@!d)G(i2$3IfiI1@JtNg10ta_la3yATD{vs_8#0!$vMUb^ zI3T3GYHIAGvqNbhN3YxyZV!~>Acdh0hTQJ>okTz04L=H28rkqg)cC0~D5qt>n%Wi! zpl4xy(EAGZ!&W`7j=&cVV@v|)s2}wJIU6(%$D1?8qiCSKPT+dL7%njv`yG}yI&lbx zBf&1;S>Y|3nDS;4?M7eV+{-|6P29wAio(_P5*H`{)0RnJ1>VfjJGmCbn?B3V=&e&u z`A$H`z;Ly?VC#&KBUre8JKG@5cAAe2KY|d+aUc@xzlqe_hGNP`L|-(JB|5|sBTF&S zl?v|#xEU^a6t^bmBj84laWccn?7f7a7W4!sCpi(rM}b?WEj~U4q@B%7p3!*+)79+V z$p>fJoULH#$MFZ>j<82|tP diff --git a/__pycache__/utils.cpython-38.pyc b/__pycache__/utils.cpython-38.pyc index 6e5f4c145aefd2e78dfe283951174a80e81aae9a..e5a8deaa557bae48a4a651b34718b1d1783e8158 100644 GIT binary patch delta 328 zcmX?XbkvA9l$V!_0SMgATP0OaZ`xGV}F| zQ&RMcOY@TQ%Tx38b1U@&{QUGcS26G5XS_ApTsV?3aPvgrI!4Bj$&Kv7Twy?8%m?D4 z@X5NOQy3#A9}=x*jGSyI=E4>W5{{VMA!flCGx?xcFk{AKQSq0IQIr3Rm+%IGeD78i z45TzgCpSpQDBNPt&r40q$uBQ*1PVrRL3w(4c}0;Rfyo;sOxXf~tfGv`ZzRG2=EqlR delta 363 zcmX?Vbl8YDl$V!_0SH1ZER%93^4iFCDYc&CF3eDdH&-Eeuh-DUvBtK$M0sP5#ddYp-ieeDONH5d8uhR z`Q^Id`9;|=1(hZFMadaP`4GXFl;pga&4tW+_!*-n>j_6P25jySu49x7270839ZpDt zSfM~-K8O)ESw(aTWBBBqqScHMlTF23*kVA!;gjpdEEuCF?+^=SOrOjn{*v+5 Date: Wed, 23 Mar 2022 17:13:37 +0800 Subject: [PATCH 2/5] create .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0c7c32e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/__pycache__/ +log* +*.ipynb From 690b403f594ef90f366839dab36ad6b145f8fd9c Mon Sep 17 00:00:00 2001 From: BakerMara <550165764@qq.com> Date: Wed, 23 Mar 2022 17:15:38 +0800 Subject: [PATCH 3/5] modify .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0c7c32e..dcb016b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /__pycache__/ log* *.ipynb +*.pyc From 31b45c5e60643460c2dbf2dd9368469a8225b406 Mon Sep 17 00:00:00 2001 From: BakerMara <550165764@qq.com> Date: Wed, 23 Mar 2022 17:30:44 +0800 Subject: [PATCH 4/5] rm *.pyc --- .vscode/settings.json | 3 --- __pycache__/basemodel.cpython-38.pyc | Bin 17976 -> 0 bytes __pycache__/layers.cpython-38.pyc | Bin 11191 -> 0 bytes __pycache__/model.cpython-38.pyc | Bin 5564 -> 0 bytes __pycache__/utils.cpython-38.pyc | Bin 6469 -> 0 bytes 5 files changed, 3 deletions(-) delete mode 100644 .vscode/settings.json delete mode 100644 __pycache__/basemodel.cpython-38.pyc delete mode 100644 __pycache__/layers.cpython-38.pyc delete mode 100644 __pycache__/model.cpython-38.pyc delete mode 100644 __pycache__/utils.cpython-38.pyc diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 5ecada3..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "jupyter.jupyterServerType": "local" -} \ No newline at end of file diff --git a/__pycache__/basemodel.cpython-38.pyc b/__pycache__/basemodel.cpython-38.pyc deleted file mode 100644 index ec3ad6387eefc5b13994468aa54403f7b7d891fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17976 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 Dvg>%J diff --git a/__pycache__/layers.cpython-38.pyc b/__pycache__/layers.cpython-38.pyc deleted file mode 100644 index f75a0086f0e57be12e64dc529d944d2d7c8b8abc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11191 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 diff --git a/__pycache__/model.cpython-38.pyc b/__pycache__/model.cpython-38.pyc deleted file mode 100644 index 9e9fec7ecaad085272a91b3672f4403a5c544902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5564 zcma)A-H#kc5udO9n%lkITc5u|hz2K7veEhM7)ZiloRAnJBXbyh1eheu&2IPY&3Sfa z-P7yKnK^`FONkJdzkml@;sL+pjlYBUe&B&1MHWwp7sNx3U-iu1tm{Z!ay4eoZ)%JcH%2YLrC~dsUn4#zZjai2yX5Hj9pLPEL66z7tN$x;cXZ4@ zHd^!-K{wCptZ~ouk29Ce-81|XKQvgAweA_L#TW0|{z+!uFnaArShKO(GnIQel;O2B zWL%(UzJ$h+x7es>sp_>T;h|8CH^YqoIAuIuyE33%PoD+=>c53I`xuQha^tQko|2}t zn8~br)VJ=Mi8VBKopSUwJ!&5rtw>us%+c5i@$6P}Tf7S%2XHOvN}E+!6%w7xn1gVv zwp-6l@!Pzf*IqRMTjKYCs~WCjm-W?wiB(M>f@!%o@MiO9XhF1?4ePFT!+2<}_H5-w zS(IclOa@%JH^!mJ_!S;X)pc?fO2|IiRE2>S1{=SEQyrROrn&SjINpKkNy z+-T?A_0`pLBhuXRct_PQ#^I>X!b``%@^8Gxoo5H>XgrZTh!Xq-EE+9ejMG6FXO{pJ z)KBce2B+Qw*=Ml_TED2F+p|O+f2whrC&kLe9Qt~dMME1GZ8Rqc=%9IG0#cNopb8*2 zw$Lero2r2&LUNQQUn&>A@&$4&VCl{1T||=`?=^SL+}twWhF{#W*vu>~KI(JEqGU)a zfhk(c=asX8b2zdQ)wnq134ebqE`6N@)A2f(=gxCqrPwKpppEt_%8q%WoH)v)s%}KF ziQKP_y%-r(}xsX!K+>VPXG$1X68*ttO15&maw^HNps824Q4TW&w^`L z_N-mP6?lY)89banw{m+3$G0Ez2pm|ItXeu8dAR`b|SM^ap+Q$RG zwP93`=Me96i=9jmq%qh;6i@T|ah!jVTCI^r2C-uDv^)FSN1+=Jp}h~SzGy)cgTR3&}pO=znA zj>kA3dypr+bVE}VG56>^n-Rld1d}9^*@{PJu|y3qjngcW(QWQUIMN{(UMf638q1x6 zObd;}9SkHB#3tc|3G=idaCkf%YXktzSt()( zb3(OVSez`4Mq!NQVRekO^;HYXIES368fQcas4N|MG`>7LIavS`={TLpsaBxUcg`=p z+*{ImAB(gf_M4T^oBUL#KVqYDyhJw0h4@Uf^dM-4JGa^Sl0pU z!JW}b6Vfv67!w~+4X|+1go_ogpQiEB_9ln5i;^1nvsfM(K3PnX%Ex9VW-Jn>`~}>_ zz*n)~q6aE=u+WYa(JDn3oG-dTpagEF%PBkI0w3s~g^Gn(!r0 zOrV#t42*PGSTNu1zZoN17Q%1(!RZFIFNr!WG$zcYSA#?gUSV z6|APn56eLI(0cScgi-NLG@t!z^V5(1@}GZP()Z10XWx4IpMQVlsn;J--l-hHzA`QJR-6;hK_2QYnw#LKdCldd=;;l2`L)-pc2hwbw9> ze2&>SYvKZOWMs=9n0X^N0w;ITR`NNtL~R5$X709;&mn83T$ZgoF zgEhW}+-T~-p&`0OSh$)x0t(!H3X2gRS};Yj5NV(Y_%{)i_PshpqQ6!j2ibb z#{=`EflIxfJ9&*&u;vzP?$trlkqcYh++wZM2C9_`o8PnVAIn=0Xof||J1$SKHtSIJ zu+_PL@&WdqJ8WUk!cH-YcX8{~A*SG^8VOfax47ziHNREH+_

I!8mWs!zk7awsUF z?tvSqYGE|WA(QFZ;x!zDvf)6=hU45hGwXw+32qOV5)O0;6l9~Ixw3{VoYGN2_p^8o z%_GX8dZu`t{wy^&Bc#Apm3tVXRJB;EYL;;^5Qu52O5voRh>IkZB#Ccmsmkd`VK$(I zX8I6J_M@}-QvhH!NT5y|H>>Fhrjs(jHR#J(Rn=`C4L7AWS!H1YN)Ns?y^m>-%7#17 zAQxB;5FK%O1W(p2s3fiULhrPyWRo!$;$`rt`jlR|Z&OC3lPA?Uh_cE(jG5vxO?8PH zk9ci_0kv?If^nH_T%#LVHFbP0!?5c9L5wtH!HauZUnD`PHmY}2CqX1(fzD|-;(aE51az-UrWJ3fV1^vTN)}xi=+M?VdsdrGzWj4I*0Zmu7g7Sl$t}8X#;tKSli`3=_;an zO1Uu7BJ<2tgWz!(iHwrrAQ;49mIXm!1G-jRg^a6svvo9v(={y=So*hLwd-cxs+#(T z?6YGoqE|PYx<$RAi!p1zZg-|!^#6I?am*^o*sr4cpuDxK^VhC*r#Wj>kCh%|l?SEA z-_SvnK|Dk>px1g}zl-u>*OvB{BP%%y3Hkzok^@m`t18|kJUD8(^F4A=%? z@x_7qQqxP&yNFzfv_l(`P{QCV#A}-3<8rJzMABT2Jfpe(Jms1hadKz3Cg<|n5RvJq6fY3-i_}o6Ul__7LE2h=K~RqxDig%7sCgHSvSBK{miRTn<}bw(4V*=T zpsJ%O+-R7DF;%|s#-KDXpZsdJJ2gC=8v6~hTD<{ZyB3J?(W5{kyNIN!6o1tnNaXBj z6;wkyvKbRI7Bf0gvOUv+1bYClc*;6fS8!+0$rHjxXXX$>B4FKc9b52iBgw zwsxg=N>$*__|#-2V^u>cgd$^G+ko$uy=6odA9DQThlu5A8jKTlXJGS+>Q1R9GK#Zh zhL44+qG9FejzixM1zm5do!yM_y)aoGaVerfCXnyh|kgd2@Qb>=syJk)8FjwFH diff --git a/__pycache__/utils.cpython-38.pyc b/__pycache__/utils.cpython-38.pyc deleted file mode 100644 index e5a8deaa557bae48a4a651b34718b1d1783e8158..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6469 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 From f4d6862f6844b7dc2ec3c650192e3f2cc157eb27 Mon Sep 17 00:00:00 2001 From: BakerMara <550165764@qq.com> Date: Thu, 24 Mar 2022 14:08:29 +0800 Subject: [PATCH 5/5] runable code, and delete some useless code --- basemodel.py | 44 ++++++-------------------------------------- layers.py | 5 ----- utils.py | 13 ++----------- 3 files changed, 8 insertions(+), 54 deletions(-) diff --git a/basemodel.py b/basemodel.py index f7ced18..3ead359 100644 --- a/basemodel.py +++ b/basemodel.py @@ -1,6 +1,6 @@ """ Author: - Weichen Shen,weichenswc@163.com + Bowen Sun,550165764@qq.com """ from __future__ import print_function @@ -33,11 +33,7 @@ def __init__(self, feature_columns, feature_index, init_std=0.0001, device='cpu' self.embedding_dict = create_embedding_matrix(feature_columns, init_std, linear=True, sparse=False, device=device) - # nn.ModuleDict( - # {feat.embedding_name: nn.Embedding(feat.dimension, 1, sparse=True) for feat in - # self.sparse_feature_columns} - # ) - # .to("cuda:1") + for tensor in self.embedding_dict.values(): nn.init.normal_(tensor.weight, mean=0, std=init_std) @@ -66,7 +62,6 @@ def forward(self, X, sparse_feat_refine_weight=None): if len(sparse_embedding_list) > 0: sparse_embedding_cat = torch.cat(sparse_embedding_list, dim=-1) if sparse_feat_refine_weight is not None: - # w_{x,i}=m_{x,i} * w_i (in IFM and DIFM) sparse_embedding_cat = sparse_embedding_cat * sparse_feat_refine_weight.unsqueeze(1) sparse_feat_logit = torch.sum(sparse_embedding_cat, dim=-1, keepdim=False) linear_logit += sparse_feat_logit @@ -100,10 +95,6 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, l2_reg_linear=1e self.dnn_feature_columns = dnn_feature_columns self.embedding_dict = create_embedding_matrix(dnn_feature_columns, init_std, sparse=False, device=device) - # nn.ModuleDict( - # {feat.embedding_name: nn.Embedding(feat.dimension, embedding_size, sparse=True) for feat in - # self.dnn_feature_columns} - # ) self.linear_model = Linear( linear_feature_columns, self.feature_index, device=device) @@ -116,11 +107,6 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, l2_reg_linear=1e self.out = PredictionLayer(task, ) self.to(device) - # parameters for callbacks - self._is_graph_network = True # used for ModelCheckpoint in tf2 - self._ckpt_saved_epoch = False # used for EarlyStopping in tf1.14 - # self.history = History() - def fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, initial_epoch=0, validation_split=0., validation_data=None, shuffle=True, callbacks=None): @@ -202,21 +188,11 @@ def fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, initial_epoc sample_num = len(train_tensor_data) steps_per_epoch = (sample_num - 1) // batch_size + 1 - # configure callbacks - # callbacks = (callbacks or []) + [self.history] # add history callback - # callbacks = CallbackList(callbacks) - # callbacks.set_model(self) - # callbacks.on_train_begin() - # callbacks.set_model(self) - # if not hasattr(callbacks, 'model'): # for tf1.4 - # callbacks.__setattr__('model', self) - # callbacks.model.stop_training = False # Train print("Train on {0} samples, validate on {1} samples, {2} steps per epoch".format( len(train_tensor_data), len(val_y), steps_per_epoch)) for epoch in range(initial_epoch, epochs): - # callbacks.on_epoch_begin(epoch) epoch_logs = {} start_time = time.time() loss_epoch = 0 @@ -231,7 +207,7 @@ def fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, initial_epoc y_pred = model(x).squeeze() optim.zero_grad() - loss = loss_func(y_pred, y.squeeze(), reduction='sum') + loss = loss_func(y_pred, y.squeeze()) reg_loss = self.get_regularization_loss() total_loss = loss + reg_loss + self.aux_loss @@ -280,13 +256,6 @@ def fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, initial_epoc eval_str += " - " + "val_" + name + \ ": {0: .4f}".format(epoch_logs["val_" + name]) print(eval_str) - # callbacks.on_epoch_end(epoch, epoch_logs) - # if self.stop_training: - # break - - # callbacks.on_train_end() - - # return self.history def evaluate(self, x, y, batch_size=256): @@ -442,11 +411,11 @@ def _get_optim(self, optimizer): def _get_loss_func(self, loss): if isinstance(loss, str): if loss == "binary_crossentropy": - loss_func = F.binary_cross_entropy + loss_func = nn.BCELoss(reduction="sum") elif loss == "mse": - loss_func = F.mse_loss + loss_func = nn.MSELoss(reduction="sum") elif loss == "mae": - loss_func = F.l1_loss + loss_func = nn.L1Loss(reduction="sum") else: raise NotImplementedError else: @@ -482,7 +451,6 @@ def _get_metrics(self, metrics, set_eps=False): return metrics_ def _in_multi_worker_mode(self): - # used for EarlyStopping in tf1.15 return None @property diff --git a/layers.py b/layers.py index ba5b77b..3db8bda 100644 --- a/layers.py +++ b/layers.py @@ -260,13 +260,8 @@ def activation_layer(act_name, hidden_size=None, dice_dim=2): if isinstance(act_name, str): if act_name.lower() == 'sigmoid': act_layer = nn.Sigmoid() - # elif act_name.lower() == 'linear': - # act_layer = Identity() elif act_name.lower() == 'relu': act_layer = nn.ReLU(inplace=True) - # elif act_name.lower() == 'dice': - # assert dice_dim - # act_layer = Dice(hidden_size, dice_dim) elif act_name.lower() == 'prelu': act_layer = nn.PReLU() elif issubclass(act_name, nn.Module): diff --git a/utils.py b/utils.py index 38a3abe..09c6dd6 100644 --- a/utils.py +++ b/utils.py @@ -150,8 +150,6 @@ def get_varlen_pooling_list(embedding_dict, features, feature_index, varlen_spar def create_embedding_matrix(feature_columns, init_std=0.0001, linear=False, sparse=False, device='cpu'): - # Return nn.ModuleDict: for sparse features, {embedding_name: nn.Embedding} - # for varlen sparse features, {embedding_name: nn.EmbeddingBag} sparse_feature_columns = list( filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if len(feature_columns) else [] @@ -164,9 +162,7 @@ def create_embedding_matrix(feature_columns, init_std=0.0001, linear=False, spar sparse_feature_columns + varlen_sparse_feature_columns} ) - # for feat in varlen_sparse_feature_columns: - # embedding_dict[feat.embedding_name] = nn.EmbeddingBag( - # feat.dimension, embedding_size, sparse=sparse, mode=feat.combiner) + for tensor in embedding_dict.values(): nn.init.normal_(tensor.weight, mean=0, std=init_std) @@ -178,12 +174,7 @@ def varlen_embedding_lookup(X, embedding_dict, sequence_input_dict, varlen_spars for fc in varlen_sparse_feature_columns: feature_name = fc.name embedding_name = fc.embedding_name - if fc.use_hash: - # lookup_idx = Hash(fc.vocabulary_size, mask_zero=True)(sequence_input_dict[feature_name]) - # TODO: add hash function - lookup_idx = sequence_input_dict[feature_name] - else: - lookup_idx = sequence_input_dict[feature_name] + lookup_idx = sequence_input_dict[feature_name] varlen_embedding_vec_dict[feature_name] = embedding_dict[embedding_name]( X[:, lookup_idx[0]:lookup_idx[1]].long()) # (lookup_idx)