From 576a1ffac543f8b37de4e3205af03cea09804ca7 Mon Sep 17 00:00:00 2001 From: SunAhong1993 Date: Tue, 22 Dec 2020 11:48:09 +0800 Subject: [PATCH] add code optimizer --- .../__pycache__/__init__.cpython-37.pyc | Bin 346 -> 0 bytes .../__pycache__/hierachical_tree.cpython-37.pyc | Bin 10036 -> 0 bytes .../layer_code_generator.cpython-37.pyc | Bin 7765 -> 0 bytes .../__pycache__/module_graph.cpython-37.pyc | Bin 10913 -> 0 bytes .../__pycache__/parameter_tree.cpython-37.pyc | Bin 1908 -> 0 bytes .../__pycache__/subgraphs_union.cpython-37.pyc | Bin 4091 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 x2paddle/optimizer/code_optimizer/__pycache__/__init__.cpython-37.pyc delete mode 100644 x2paddle/optimizer/code_optimizer/__pycache__/hierachical_tree.cpython-37.pyc delete mode 100644 x2paddle/optimizer/code_optimizer/__pycache__/layer_code_generator.cpython-37.pyc delete mode 100644 x2paddle/optimizer/code_optimizer/__pycache__/module_graph.cpython-37.pyc delete mode 100644 x2paddle/optimizer/code_optimizer/__pycache__/parameter_tree.cpython-37.pyc delete mode 100644 x2paddle/optimizer/code_optimizer/__pycache__/subgraphs_union.cpython-37.pyc diff --git a/x2paddle/optimizer/code_optimizer/__pycache__/__init__.cpython-37.pyc b/x2paddle/optimizer/code_optimizer/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index c2d1476649df3713e5c39781903a61e92134f832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 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 diff --git a/x2paddle/optimizer/code_optimizer/__pycache__/layer_code_generator.cpython-37.pyc b/x2paddle/optimizer/code_optimizer/__pycache__/layer_code_generator.cpython-37.pyc deleted file mode 100644 index eeb2d3e682accd0aa94df3688a3c41615693c524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7765 zcmb_hZ;Ttqb>CU;F8>^l$D??EEz6Xw#>YgVWZ98jRdympl9fh2sInRb*Qf-=*}J32 zTk>Z2WQy7a+??z?p;p7D4xGkr%4^Y7X>BJ3n!r(9=UYGKbFd$Z7SWxgFD(!RK_L`q ze{XjA=TzBAfs)wa?3?%Aynpj%=JD9@a6-W+R{gi))^m#Tb9(81#?bj39$TQ{3THKC zj(*h|TTYxXuk8MH|C6&J%oyC-EJY-xMFgdzz2Fot=xAni=Wn8_Fu6l`+&P`vvX!-G4 z>53_=x>)kHa^1S@$IYdSCg&Av!8d9Z%Pa|B6J~A2kJ|NlXQ|ZmW7KKXR%~B$O4g#U zHR|=6A8C}hALXLnsING_wm>99HM3N$T`3ZMKHJ&>6kan6mQ^@ba>|Rdm~{|%nnaPn zbRYBc5bEIZL9`QH0b2uTr=_T^sRs$qiIQbE>bBWR^@q-yr+>dSviz_q z)8xB^db)(F%}Gb27(A|ANO}fm>k-#DqAVXeuW)@$Sz~MJT4YUI)7OmoC`I?R_;q95 za3ij^ig)N_HA3Pb_Qy-Bh7@XbQBV^tzP)A zuc%(c)0$^p?Gg*17mfp_dxmSQv#KGEtuxn{QfS=Oq0S!8I;zWHlBmnL`i$Z+H`*O_ zql8UZ=auFzKqD|l){8;S*d-14Q2R#2W6R>a;^-JRuweD7D&BEb`<->Q6XgcDM>fEp zLB3|ji3M0vS{0JTy@Z>PlKl#EC8T7A8$Y7BamneI;Pgx46pRv|);>d(Hp8aw61lc?hx@?*SS)SgZj(sdM6dY zqz!<7L<#ul$`q2>Gl--kN}E{+LJ3rHoMz#%s@g_>9b@93Lw+i3t#?Mc^TNUdb9SNb zP%&+}-M7vtk8i+&Q;L^#p+PkYe*eyO$dEjuSZVqll*CO+J(E*Nl%!>E=4U@O46(na{ zk>*wJ9<7{n*brhByLhoyFIVMSY7NQFpjhGiuX=gakJW3uXqA>sKW3RP2R&n{&R1&Y zeYU?fW}CJ7LRpw4$1FBV0*KgI?z1QISzoU>=929j6|1r0;CCLWzU26ZoDA=BBHNGD zOv{gA!w9fSjfQD)Y(dt_k}1H}H>%j2%$lE?oh^Rx#M#*sr;D>kUp(P!Rr3nSZASXB4$#I13Cn|QuvXLUoW`4v^*ee%{p(J{_zG69o zl7}Dbn!(p)Z!Rj;C|0|j%OP*6jn67`u|S35Wj`Se5eSe4vpIui25InnIUn`YFuE|w zuEoHZeq6rrO4&g-w6yIHTUJp@Rg@zsy!M$xm*B+_rs@ip+9#*+d) zU}{>v5ySu&!Xkb#&}*_skfg*OM{km~W^HV(qpt8$dBH)`qEm7exIlz`!A4;N&6&pKE;Q<(Pm*lmmG9qZW>!o#?1gL zRgHk-hkV2vJ%cTD`9n~Tic^v+Ji*x%&TQEDPvPvvyd7<$c?=eiJ|r)-jSB~0g>2wS zZqUqfqjd1G#i|$w9JdgF|4z)WDtdUT=LxFbggd0UfMa0|a#ll_;@jO8iLE0R+ zpieTlBg>Z`s*CY!b@@*>3Z6Y5F~!OPlH4ve9V?epd^e!vb4|##)=Bd{{BhWQ3irpo zwb7-FHw|0uaHriV94j>Oo#vqdy=J!QrHR>4FY5L5YHQ20IOb*p9^NDFBknMtc6HZ4 z?uhW;x?w=~P(HGQm3GGXC!{^~4Yta@%1Ba@lRp7}7~%k*>02A{1b+g4P-QG8I^+Ba z;_`orE?w;V4Wdh1{?$W0@^R5c5u}T2kn;aCf^_jOp{1$Uv-ATIq%Xh!PW# zL)%#X*?Gk}7RnwKxlnfM^<)S4eULgTo_5FFiI2!K#_~-ZzXjPNT;KfHWUr{W3F$vg z(s#30kdt@;Fyy!mbuc%{T)927MVG(yP+!uj*bj+gVpquVfIBv!403a&zxk8f)=ZGU zx6hglFt_K)Ze&OsVjV&X&5gN{RrMa>q<1Cc)R&i@ZfGx>~Z(t;_;c4Mcg@ZTb&Gpr?4cz-* zly{5UKmO}Goj>Z{^5s?ks93NM%U%wj1yO1&=4QI5)@p=TeJOG?bo>K0Y7jtzAQis(_18CF{b3-PJXGHK@imBwvCVhi z+h73MR_mD&Ctn{NdDp5Td(}>=K7m=H*WsN z2e04#$)Df8^;Q4`Wb2!MvibJSyMOifcfY@S=Z%|NZ~pM^5B~V}t@YdQ-`H%wzWK@r z-6`a4u1psr`sm^F5`OJdXgG6OR`FDv1|!Jzbb=~)nyb-8ldCwD6x>J$1q_OZ#&=rbo-gDu0htg1wyl0Gn11di~ z(-ZeWc0^aPIP934saRydt?zw}2)=u3tMdVTwe^kf-&_0IgCspE&YI4Oum&QF7{Ymn za}SlirO~*r_$-0ju@1yaL*!tAyza+)^3$c4MDmltFD}?6tLo!|$xXY5hdUJA5`sqF z0^+z>$$Oc79Rqd>jgpAr^iNlvq&m)8y9uLz6YJk{dXzn%Qz4A}PWM^cLW5O`qSrc# zO<1M4AE3;Gn*lsa<*f)t^$vV0M-3VUB-+D|5d^DRlN59w(lH(f1$J-nlN2bUAxd0B z*7Xvzt?6>DWZSu`-b`@0q_Xd6s_^Cy%lOPQaU6oR)P1?u1UKh%#bU*(IK|=&)fM)E z5QrJVn6_6MrkJ_v?aR?nzR<(W-=iRJjT1Ra3@@YpIY6CP#UmK@wM+Gih5Ohvy^K7t z_Iz#8MCCdz7h(}U^;1%e`4y{NltUxI?Vp#NQcwdK4W}yha4-`sEPte*R3z$vdr_CL zB)_+T7DkU6a z;yIPNRjP$xN^|F0!xF_tnS_coC;eo3#dhjTL1eX}vZ`~{YmGja>t@&@Tn9hiXNT|o zH$E*R_Z<1PrC;@mz>Hq?o+IawEAO+s_yRNxy(=AfpY5A%4S^d;ZT%Nk?tP}PQB=umR-kx9^~#;9Gd;XRqp}`Tf!dHN&*m) zLf_;dmyf82wRDL@lzj`d;`kQ^sRvSv&p{qoi%N3&N%1^>#1tA-!T5q{7g1Rfy9xLh zHB??e-O4Em$9}ouEXwpFqg>3;c%GVLgk+dasKUiAg8VKuGW?^$Y}86+)6aLETc|gR zOH_Fi1%5?tttjlEyi;Bbt3u)e@ry2&Y+56J6a_ZfiJxeeO%#mk7XJLHH^e7_mVeyW zB@gi_n)3IkAxDX`)cheeMKp6mL;+w_ORs+%lPCh-y`#|obtLXE8(;dAlc(AVzA8Pa(NT;zycb*`)cj7I8A!YQga5)TsoAamm$RGiEB)53CJixJt#;Kfk|Y- zPi`0Ahy}A!ofT+xs#aCq+^fdIS7)B*E6{WHm-uFr@D!5U3Eh!6W znj8y?W<;a0T^LOPnqoUqWXno!8SE`oT+0H20v*wUn!Yrr904?=PGXd5P)RvP#W{80 z3t3bZGY|%0KEONRD=7#0PNGB@%tG_h>{-wT+Gc`cAj*N`A-6Q!70OC;WY{DyGLTwk zQScE>STC>6p3KL^@1W}+7zpyPvWe5;U}du)BaRB!MXIFAYI0Bllq+#BaT)6upU;2c v+^OQ3qi2u4_>wHc$r%TBa=E8V@5YV<#lh#(U}003!DFz{Z}KHyB+ma2HyWc+ diff --git a/x2paddle/optimizer/code_optimizer/__pycache__/module_graph.cpython-37.pyc b/x2paddle/optimizer/code_optimizer/__pycache__/module_graph.cpython-37.pyc deleted file mode 100644 index b54ed8775aa51566f5b5ce7cac2f34e901b6fadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10913 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 -- GitLab