From 21558202134d649b29fb700481b15963e71b1d1f Mon Sep 17 00:00:00 2001 From: Francois Fleuret Date: Mon, 21 Aug 2017 13:59:35 +0200 Subject: [PATCH] Changed the font and node colors. --- agtree2dot.py | 8 ++++++-- mlp.pdf | Bin 18158 -> 16963 bytes mlp.py | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/agtree2dot.py b/agtree2dot.py index 8cc9e8c..0f787ac 100755 --- a/agtree2dot.py +++ b/agtree2dot.py @@ -103,20 +103,24 @@ def fill_graph_lists(u, node_labels, node_list, link_list): def print_dot(node_list, link_list, out): out.write('digraph{\n') + out.write(' graph [fontname = "helvetica"];\n') + out.write(' node [fontname = "helvetica"];\n') + out.write(' edge [fontname = "helvetica"];\n') + for n in node_list: node = node_list[n] if isinstance(n, torch.autograd.Variable): out.write( ' ' + \ - str(node.id) + ' [shape=note,label="' + \ + str(node.id) + ' [shape=note,style=filled, fillcolor="#e0e0ff",label="' + \ node.label + ' ' + re.search('torch\.Size\((.*)\)', str(n.data.size())).group(1) + \ '"]\n' ) else: out.write( ' ' + \ - str(node.id) + ' [shape=record,label="{ ' + \ + str(node.id) + ' [shape=record,style=filled, fillcolor="#f0f0f0",label="{ ' + \ slot_string(node.max_out, for_input = True) + \ node.label + \ slot_string(node.max_in, for_input = False) + \ diff --git a/mlp.pdf b/mlp.pdf index 52dea893faf1a73c9f251ef3f33838a02d40583f..a950b22de8734bb9d2664dc6c2a74faf97c99a6d 100644 GIT binary patch delta 15327 zcmZvDb95ljx@~ORw#|uc+qTV)?PS79GQlJh+xEn^Z9ADH?|05w@4dV3z1^#-tM=aO z`*wHz)3vJVDjswo3^Yj*7){vVLg_lE_r8E)W2HVcgu#}F%o?V z@%gbJYKt51y8va6Ai0woQ~aP^`JA2KaeU-AyEj`PCzpy;EeXV3&?3Bx?WV3+0Ij)6aHo2YvMEF^f+yx2hwuAY) z9g-*dpENQfy7GAL_}MY~GCxZ~(7IR=`&v1S87H)C7Cmb{#e_`U20XhypA&stT@o=G z8GCi~^pj}y@ZS_I`#(<-&0Xyi-CeB{k#9G2F#8Fg-JiWQ`uSfBBhM~-e7mmd+kt`dnY*~wTq^PrM&F%3A#P5HRV87vW4a#dz6*oP+qmW~Ixj)xy) zMtOAXYDe|k_A3S)ou+J=dm`*i1h!KO( zyHY;kK&PqYtFbzj#3>Hn;qBhD-~mGWsg+iKzHHo^-`;A0@9L4tk(9b!U2&S!9y=nY z(eyYg;hS0|_rwvvy~Iw(*h`mR9lw&#ZHlD`+G4@AS#OMiFj;g;5>~($=$JaZGSE6aO2@Hh<)UK=pIN7V8L+ zs6HtHi7azQKw|Jcwtf0bvh&YusV4CiMnxDS&vkho#Q2m~Y;>Zs?6f;In9{YRE^u}Z zgz5IQ zd!w%AgxAG;DNK;i@Y&&?aKZo9nt$R}IRSG9T2DMD(B#}PUH6R-YH}!sDI1kE zKgR_)b)zVX{Ac93%#1O=u~Rc04OY7D1;b@{LsA@C2D=uM&Z3q$ki(t7iHEA`SQPD8 zFIl@xvLq3t?#WE%llB_Y7KHG;nS0lhC`tp*Pb*B7C0Fh&EIiz(W(Z7ET#3NiYZENS9#o|sBb|Oki3U6B%)Hdl$vCk5|+Tn zIPI$&b>Zs6>jbN_0nO<;&n0w*Sua)$-3C!nTrOrgQ)I3|D7|0UwW~sQBM_~pf zBbx+sczLhA@t^`_#Z`=(y^OwrUhB=xR0od+lOdehL~V_0me)(oKAMrzXFJ1{ zNT@?+8W^=oZNEHz5V$@m)CFmev_1cVfN<)sa;|$HkmHmMRCmjKReU zM?ylvEN|gx#whIMs>&~k%V`2Kpg4ZGQQ>FXA*k`yc7vCkrfpYN?x#*~%9lC6oxuNI|op zj-s18*gzgZ z|Mh_Xxv0EYXl88um%o2_WCWV!@h>;{3ygbRvpb0LS7fi=0;2Wti8-=62t3H(cE6|R zk|l^7zY;Y)c2IO1@62ChLFume)KAlr|J!{v8GpPz_aS)R5 zjGi3e_}5H3C4oe4C%>!quGS62x~kWhIuHvhmV0auIc9YzWEB*~(r3On#hC@$tMRJ{ z51XP`hzn?h0-fB-el~vP)P$`lC_@;c1esofmpO^*T85$fOfHgKf zJ_M_+t8V~*Y2^VC{33;T*%p*$7^7PHQri-uupnR{0QLVm+jH>$nuiS^8ff@JswRV+(qG3j-zxPho$~xUYCmcsK9E0|*FS~afHPv02Ejmoq~ASK3BM?y8QN)LHO0A3jb2m@CuYtfOGkri!AibU2TU# z)oOQ0>-vFAey{4Y)ci7A0#Nagj)aqPo4}PE^8(zPzd{=L=85D95*wR3y3QT||Ao7I08yLSm8+ZDL*5CJt|XkazYQt~5?eH| zt+y3p2HNp8>E;HiE&e6B0fJT6GrMjW-GhRRA0z>sIXyJ1emV_;8>_s)-@1ZmFMLWm zNtAzuzig??i%?lM_qKR7LB3q`j2PVlS$E8P3UAk+FI#WyANXCE)=$``W&!7ue~E7x zF>n5rFlJ@+QO;sYGXXKi_ zUo$TNSq>TOK2fuRa3HtWS!WVJS*i6@1pgCo>Y_K|gd#|lq~I(bp-Z4@nwB;^eTXic z1|#}O2F|WX`>@)5WSU^cA>oMDOoVN;>fnvlS}TVDv+kxwvqF}wpEi%1*$VjNbCzyd za)3~AoWIxWdw%w5%tVq>;kjC^3z2bwG_h!4+Wqcu2za(y)w-K<+L!`1Q&{$>BXd~_ zHJ>fUa@Tfr;P+$wWD9lCbtx)jhkY8o=Fpel{!nthJu(!SPyOt-M6?ZHgKVR~%`1D3 zR$w&g^bg6w?SN7C)6N~5l6}XvRBPH|6*CSQ@#ba;)XDcZ4J48q>$3C!Jvk4AE0w%8 zptSDQ$>oKY$DBlw5TXZC)?YlFb9FujseJ0~2n(kE)QwXH&@WWwVDD-CvEPAB+8HYO zaPuA9+n+T+NxpnFG4QSaJqWs5ejw6+w;VcS{(-tD#of#pM9b?c6=4Dz$6NZzxb+ zj073M!n)8W^*+c$^Rr_W#q5F#`9qE@0!;C@)rTSV!5gEa!<=X$=`Tn&fniAxu~;+i zf#Ewk$;CCY)$_|lc%g~cJy`vG+i${FFu|yB zdTrEYLy^!(m^=QX@#_I@Sj`x132J9uXPrv=TWdM@rmAU-1$qXdQQWv^bIt5{B3j>M zPoSZ$_l~W`kk>pS4;DlKn$A|=dK8YyaV2f*pE4H&As_5-p(avJ&jNSmCAuD=Np0SZ zKE@!awQc~>SQkf4cv|aD4hdVTs>Q?gB@1XzW!?asHqIuJd;%6ZwSQ<)8a#x)F)s@L zI~bfOlIeMGbbshpxi%*0liLGFzVc>OTm;MA)-nlwPolc}2{!+aycj+UxKOYK?A*gU zs3*8FL3lMV6LTK8#>t7Q61Lvlp=jnGFn_sHw66f==GwLX(GJvH?}|iBrXpY5Ve@jL zyo_yh`1PAAcD|Yf440G{7zTaA~i~jVkeo$>6l6p0*Bf@Oq;4rb(Y{6yT*$cz&3(fT%iKTW)MZY5p6Imk!KuwkovyC~&*VsT5WghB zX8aL_y^-;*HCi{W`@tK}^~yEsuTdPT!2Z|6cd&#zpb`>h3 z%SB&``bST*dL-T-nstSCI!~L`F9cWZxCwvAwYDW?*5rR^{fRWs6=+7pxP7x5vbh4_ zJGr7r7OtgzUq;DGou?xor;U>9LQUM(La++q7aefKEoK(~NW{&=SYOQ7#X_jQvq!iM zhKN+VM45%Z1mN$dv8@Xt3yrmT5PEihmowHy>I*N$dG6~}lck7QY9Q^N{qpYAB&#Y` zR=q^b>CT8-{+Pd=ZTp3j-Pu`<+K&s+Gbr4N_^8b;U630!f!jwzn@FmR|Jg_E=dQjy z95bn+EF!R;doYmfjBbnB26g1hX#c<3MUdav6S`J4Rr&g0UaX7EiJWZ%-K4+TluEJ}%5nRY6GCz&#= zxN7)U*^Yl+L}5S(z1I|>Z9(@hpY-xVTC;FsxKN!4d%_{FHMqfKuVhsA@LS z)nQS@JLtz_Z8GLefZD$i!t#m$tmiTSq$H+|$Ss?{c)RAYqVDX)ErwF@GKyi7)sqsa zeslv2u`_`%!_pV{=K}xytBr~?U7Hku$JPn(@WJ(jqx+8^jM9B8ZRm*fv0q&)_6g?@ zERS|{9)@0A6y9D`rwiy69oTZen2V>h|4LyqCEQie=RWqTcAVvJKM#Qd+@v*Ik5Sr& zpTc8vlz!r8^(gAMNbu?`e*MIX6+M6_KXCz!#YoJ@&( zgBMne*M%oLk|@Ogo(TgnHqLT}=>c|jICWJVOd{*)Jw4n!F)W__%OZ*8Q*+HSlz0gj z1FA!T($9NGm4tYHo&irCc$=7vtP?iZNrn3I+=;`gj&9X%;Nr^jORrPPaq``@a2{5t7q^WE3GIX3q#VzL`zP|LS2 zr*Rj7!so8Y(?Gl}8$fG(ZJyn7)9g>?PP%!FP@aYiHF?C2fqb`gxNpt%t-Pm=&TfIY z{;pBo)BzI#8#zA@h#9-R@N3aR-u2_~8t2sY$2K5hQ)ZsxR)oRVp`cv~Gj>1mS?whJ zKDhnm5giWOQV2ul)au>t9Pba0ou8su^~<_kLwD4bck{dS48(6XN_t#O)NQIN9N`ZVqdBsgJvHo4@^3 z%s{C?#zR-})&Eoj`wrGr5+TAb%Ym(4&NK+hkd*}Sx^a5)Tg4QU4-_Q@P6nY+S21GY z2lrBr(DwW(pl6aHh4j12Bgp#jZ{JVw4xf+P5lzyLcey?ZPvfT-`H$b=J9dfDm&=e` z!?ocj79aNO#L9eQ1(@;U0}7X(t3r)Gs?cZg3&F{J8WBAAM@OyI=7WT{oe=5exR$!T zyoqp5y+H{D>5WELGIGy#BjX9G^5q{kc(G6ix@LY#7cz+5RqKc^ zqXu3MNau!BzH#oEj~DfBiQA~!6!48-?SDS}kbYm7Km&iXN#~+y@|%ol6IA@Aqh@sN zsGtr3rf$PZZtI?UUsiaayAP%qb`d?&5$>gGqww4CC@1_6E$+s(d(uFZ?sGD_1(nWN zV^BNcTpzLQg!>U{XN%e$0SwK4sbmN!JUMm+fEAzo=&qyofilwc#4jmhIoCkjwMohf z%D~rE(=kOaG6}cL`P!;Hk^I0y?WIl=d39n;|_-}4U@M=^DAl?Gnm|>_BH## z-Q9mTFP*%@XhpISx$PcrK+vD()!>+vE;M!dp)HVix#uSlZTMlvBDh{ED(>FAz#&a0 zaQ#P@1rM~$ZEZ*)#rtXt%&9!gA>=pQ4vJ(?Fy3J=WolQ0$@F+#c8mWQ{QHF`x2?C% z6-;c^OPew>Hc2jm2)qI5zTK)DhPs{OdoHp2bKj3PwFGVC!X0w$g_oFAmP|1cmJ ztI$tWMj6LI)FDi61Ro;q5(%2S?m3;@Q8*!+js&)TU0BpA10{4UY^t<3qISwQfYXRU zSjnp>(aMLwRk0+B@mvFbR&kR55Y&H*oDy>~5ZrEHIGs_p%mk*0^w0*H#Oz;>x` zv?OB#>ACnG7KvP2$p_DDP{m5PfZ=PU2|dIqes#0}EoG-2JSN}Uk}2K;bb978F@83$ zEDm>qu{{1JgJ>(8rC+%xD`x*8&5V}V@rRsk(jf1V5I4~?^`>6m?W`^5?~1FKaO_$N z>9Xe;Zv+PS$0=9u#ej~-<;)*F!H2=ta98(QQ@`2vYa8yCa(3N3L{HSOf#^RH?78@8 zd_!240Je>W>~~BWP9siHiPzmHDGmwwWNDJ72-d(jxnQMKRw2QKKG^4sl#(uVW^2!H z6Xr_8ym(MSe#;}=wT04cl^KLCB}APS?=v_Q=0|q%Y&+8iLt^ze3}Hfy zZYDF2veQDPPxF6Yo~~k_1(>oB#OzB>wU7~2uN3VFw0rvBLFd?R2di&Aw(~pWAhc|6dg~jo zAdC8$;WF~k+~lc*0sK2gP6M~ReTa`uqWz8qiK?S~BQTPfRlKPZaynfu*gG;7J8+H#um%wG0Erdy=~GY}W}22B&wQbSj4Ys-AP)8f^4;y?Zz=^ISM? z+^mdJ``lz~h3tPsaA3(AehryRi8|jz4z3ED?L4?1yy&v_1L(E0w*2N_l9h*T>$sph zOV6=jb_QYcv=0Vt(M(MqkqEkj8(!tFS3Y?l7w5P_rueNy<$Y)QdB#%qW=<4s3nh@( zofJuN$$QyP7X8S&D#&340cpswoRn&$MW4ETk!?NFrzC0^Fa) zAy$dCwL~Q$fS{3CyWvN)bS4z<KaoX@+GK~KWAy_!nWVM_}$6uy_v#uDEEpde#Qb&QYnEz1m1MBI<`g8#kD z)iU12hlvT^?R_N|3&~A>)p$3{Fhl)U^^q%(yhwD{q@`o2`p(=^Z-IH*h$MQGep*4= zNh;QhlXupDS%LlisxohQ7^B(}@+|~J$%G@fSE2P+(pBD3)*zL5Ae(eW*USwY*-Ls2 zX}3!`(C;GEFKepoRXz9t1z+?MSf5x#y@tD=gnB0VurM$$!dc(+Yu(SESe%f=BBS2= z3j82>J8^3JR|K9aTqPBm{l=xxA@|Nz?u7a;fI69<*^%x@QC2G@Z<9Q;u>?!F9mS~4 z5`X)rQ}(7YgHv${Z_2kDNM)F+SY7?$<73MlU@i$m!odZjiyQs^rxQ&7$$B*s{DV|R zULV7!qp&seg+ql`o47me4dk_)1n$yGQv0d}z z0_twWO?tK(`?12yzv2E~$<^DXFYPF)%v&$WLXZ~I4fqk$WRvzx{zsc%FhgV*=BY29 zOzqY4X7O~M(^VwUons+&;>_;W6XXjlv$ibWQ5$AN@Mmfs+blZw425P12fre1bDDV& zFeGHQbofVApBMMKEf!BBtez;8Cu?YL3@{HK1Gkh4P{S2fHv_}^7_}^-)`gXyo?80) z!_Fg~TVC_SlCXimH*eYZ2`;!8X6bfO4{GC?FQtZ&)&ReoJ`pGpwbS__@3Xz!RB06% z((s!A#@G+9-8^(}c}zGBwVPoY>cgKoQPcKw5O%duLeEaoD9$-OVkcPor_M!p7;qC+ zC_R=o%@~Fwv+hmmYbk*_VA`OTaHBzDYOuj>#p_eZ@$==?<(;yjNIghi|9rgK$BwoX zF)Dd^CW~3rGNRAH_yPgfQyCLq<8P}HcH;8}2gt0Bjy#Y4CN1e3f3@+W-(7J$<8`(? zC?unrII97$z92ygY|zLts7L-F146|eEXSsavFO1Z*4vYNEENr>2QW`j$pHQjsuwse z3MRDk6>54*!E!Cr zRM=>p^T0$+_lDzVuz5?FWh_;)MDr79r#4xOMavzib}>~;qA})eouA+u;7-knDCQZ+ ze1YBW>^0W)GNL)4J>`xPwFIe>3PncD8yoCBguNsiMZ`us#~^zh+N{a>E33K-( zVxYsOH)0KO^kL^V{domS9NresIMnSUS`>xQgj}l?aEM0FOLtf!?T8Z7nxX~z2RP&cUksbue;YVF z1zvdr!f0og+EG%iaJXc?PJW%i*ifKJpcC(6vzM!$YtQR=`f4rGo+utulZcl_et6W3 zJ02MySjiV0i=>1lb1!mImqKl*E+9!Q7v(<>bqRChT{qSPJ9Qk`eTtJ?Q5~|}ckb0B zHKcMcWqsfzjeRwyK@2TP*O;L)Wi{(faVx}CNA^2)MS8R#Q!tn1>ddp$SLBjx@JaiA zW%3QtQsILMeIu5!CR;305r})+jqpZm2*zyFQsIBH>CJlD(+6?~&L<=dEHaI4VzOBf zgd0w9<(SR@A|z9m;wG4mV4#rtnCXw1o`R4N=7;+H#h5 zRT8EjHZ}~NT%G?Kwgn_T$zz1t?bu`&K>A0+ktH)aRCH~&ASb+D3q~&2_;uFtVU7U4 zcdXl-CIEP(7$YGYE+YkXS{OGJ#aZIlUBg2pAwU2E?F(O~#88B^W_n;CUJ>>RB32=) zM3#Qe(1OXl+*!szFXw`F8lyVaiC%DDbyb_p#d5<(p2bZIjX%>3WtL)zd5in5D^WOe zN^Ya2TqRXPOGy%$Jx0-LrJ+Ac?Mmn?$d@c^oo^IF_>GCW5GK!k!`qVw!7<364{S)5 z3seE3qb<+cAMxUnc)u^16DlIoal%CZ7>}bP+rS@1_y28Te-;sp#1GFry^m3Pzrx2r zu|NfpYqo#0EhXN_gAk+abHQ^i-OKTY2HOgAPc{(zxz zj=oZDIYnxfZ7g`|iR+zByxUkxdd4K+#`xZ~!-*Rxlkns?)Tj`fyVGwp>+ve^Xt6}q zxi@6r79i8)JQHIU@X}U5=^$u91P12LODXP>9<7ONCOY!0<5~QaDY6+6SB9#gVe4cJ z_1#r~vi0n!sA9;9SXY^hCrFmbI~CMa8ZK-+XYO`1PSZHa%d?*?tdMcnQr7iqTAd0q4b@+<* zxKOq+Kpr|ku1q+)yAQgswsemA^|vp3=0VCa$ui+ykv>Td8@27O6f6Fh87ey8u0I{+ z_a`#yB8ic~dv_Pn07AHQwzKgu#t2M&D!Sw=nnL z^vlCc*^s8*B#cc?;Zr^!39r?FuL|k9WRhct!eUCm5 zXKJH;9K&0HQwgMiH=i%zyK}MR7o$v#)|Bq3_MgFGvNo3^49gbaX{Pv_zNbU77Nv00 z75EOg-UfrBUkpQ)u_xSj?Oyf+v=V8=v@=@-+5CP+pM6pVi z?wo5v^rBjak7xx(E}P*1=|kC-K{eKku0sUvBr5FkjV=hqhcZAg(o~_9nZZ89+>S=R z?v9y|2cf@@6hG;@jrIkil9)dCY}ilVvA?E!%&h@Bv{apd?o8zL#lYtDgUEujx)A5O2o$)XhiRib(vr5ucGzpZQh8!QDXT?99Fn3e*5co^ zPDG9b3^;nL8$Noc{Z8UmFM9!pCd=h;cWvjZjM((#e6lBEeCOZ2SIbk9**fIvjXS*$ zwJSC1sWm!*$So?|64T_KK`Mb3T&7v?i4=4)hD1-XQ7{H_yMQomgiwQLa`)!lH3n8p z34CmQ89Am5Zl01{7!?sG+};C&U_YEQ`z^K^eEJX5_mj@(T&^IOwR$fz`~v|wI}Og< zEOzLIxV|;zy?!nHIHnNNv|rJ(`{>}AD%{Zi|7@27yaH_OoHDSSZkC_i{!m`ckx435 zM^g$j*41%dU}q$hIe`tH%xE36tYuj*$b4%=zPU;Y1I1Qq)?&I-1F~#e@{5{N%!e#o)e6?)t01X6FOHqF>I*Uh%TfYZ%{s1XQq|Npg z5^svYXyc|CccpsMYkv*8n?P~Iw0DuXUmfdM0>O3*1QC2uS;#okA^LdzcL z)htT+fa})p9NmvwWJFf}Ht@Dl6=KUvCx)58djkpt0%mAY!VYJ+kTU+9f0S^~ z8DR*|mrv(XGrsUtC@L#1NH|#1-@u{dGAt7^1#3g5OPsmTOxsWRGD@Yq#Y69GQIcj@ zCCHkDS zk-?fzw(jH8YtQ)~OzM=DZ=^Wijo&?BjNY*L6Z4~~w?hy&+IH3~#oh6{!+!XK-RQ2* zxf6UaNov%7C(12-NRl5Av7XOBNlT6eR$qltjJVjQKt9wrqXR`$P zoCsJvP-vdTxY=cM7%SJh&Tg!m-^+0?uk<)LZps_FqkMsvQzLLF7CG=qTH82@9B|M@dx0jS7*kL0>K?LI#p$^<7oaIggke=gQCo@kR~t=4Tgdp z&A^dREAu@<`e%!>1eUV@9m9U%8~A;#{%i>0dpmUh0Nt_c85Jbx*1SB0ahH^qq8|22 z;kmIP((I$9+3k*Zyxi7-6!tO$#A-ngfV2>+so`bmO(pn2h!3)EscaN|i1 zTC^*;D*leJMtN=O-%-&!;f~tfyK?eYR&b^Z=*PYF^wTKpa<0@RjZWI(nCD*BAS^OP zv?PBj2pboY3j=CErSSXN3MRazs;m)tIJs}?L-avTAa`5 z4WMA3$^DJIIb_5y2#~5>P_oYMRy`fTwlY^6I)5MeMK-W(9F8mnR z&JuL~y=EcLbhKkWN|3AE8I+86_%F{=uDbY@NKRH$F%!->@I4=$U!F;bQ*mcV3aa@) zY$s`;b*;P+0ZpLU9)>dH4%!$jC4p(U_yU~Dr5y<8w!-xeL}y%GYbO>+=rpLTR`>sr zbXE_~=cOc|Givh?)Pm`Q3hXp2YObTwUGH0#@3;u^JXdvHFmArv4!^z+&Sl)@t~lg= z>keFp$epABlCcdmCwFR2{x-rI{T{XDE2o(!E(C`iRWL|o$AiyY0BLwgF=gx`Z~YlI zVASf2={=L=_=&uKPyzE;O)6)*SA)e3j|`&L`@H}xor1fP=GtPDS17LgZ>-pLbv~z! zCPn1!E0w-UHw*$CYJ}JxC4!v<8vg^;b7ySwCgs*Kz~R&;TTwHW^8KO64+q~ul9cF9 z^Z7t2KVEm*FvSDoF!rjg>qj%M_mG{i-RDtu(umaqIk7)_-D}xL1*X@fD$3{*Q^?fF zSz2I*(aJxQ>s3+{J{#OH`58-PP4NYqvf_-`FyKE>lGyf zJ5XFWKoS9C{utAyX;69MDHWy{N4!C2?KG09&UL6Sn|QIf9Mz`ePX;r3IVKh#=m9t{ zKhfmYS?FhvnSrxCJW7g*ss(DbUXJPLK2!4u0$v{dWIvr-E`@XXe9z=-c>e+?l`2#r ze7&`7#YsRhiQ*!8(6%aVv)KtJ9K!|XJheC`&h_u-Hvt(Jt6^U%yU zi(QMpw2)XCE$zvc=6%wEC|GK@a>E7o37~$bpz8B7msQW34$}yIl6fntcX6oOQ4C9j zMzykN?r=1uIo;W9wl`zzw}_Nmd@;s_o$`ZA32+EpQnTox{8APuUH;Uy!?4Jv3ny9y z@;g+T_L&NHw$0sB&cQWXw4nmP&JOSK4Xq+dq#0~jYcL@NP`7s&Cijlu!tG;e&VO)o4PT=|${NmPtaQ8GL8%IV?%VUR8#_Nb%XADH&L(2A>R(+JyPgWAa!_ z>dpYR4eyQlmPU2Z!quLUt)s+HVv+BJp-J+flXXXNSvIzZ3K zWGB87FcZEdfq>L2gM3XeRV8#Aak5h7umY8;m$#b8hTRRAn+G)mEW^J{{Yp z_Q=m=*e93_hoj%WM;MzKXs=IGQp80#x(Ikq@EnMj9{{ADOw|vFA*7 z-fsD>^YROIyZ)A=2)xmlcPuG2r}RLS4Aw{L$cy7-dm+pl>dd8;YKwFLrKj+f+vy=_M z{*n)s^^fVzqXMsQR}8YA*_+qkGq5*69KY`UKrZ?az>{r5#Gu^3qA?g|C@AMTR2UGs_)Kn+*uMoTjIdUD{f%ZF2Juki zf2wfxr6l4$;N|Ur}Sp}+hrC`;v*8__sUg+iCN&^w~?dM2pRgVNoB!y?hg~37uKm*p`ZLZ+@CFyNm;{r1$%AF zOZQDK$C}(KSuE&1^k1u^3zlLF^ffuFp`s~C@TYo)*MNe8w*T!0E*M>k-FXwGgFV@# zC}-$BO|HV$(&FUKfeNHBso0cK(@TfP@4l%&6D3M-BGx0d10>r%VJhca>AN6&ynb8D zO4dE60$G^tJ1O7>7j{>Er*jK3PB}JhbxQD?@iF|3+{Io24$k*$u0tK!I?mjR;fpEr46q z(14C5ijR0zpq_p2J&6@PSUyn5`RUH2EDgu3s zzhwaHV{ECC-I`HiPDkCWAeGG5-e&MIiNW-s*u$9QzPh<6-y3wybK>VGY|$1h-!y)< zxYgbZ$d6U&j6kg?LabvYntJTLlgF+)(B^v*#MX}=_oAx^qQ2~7pP0HrQg|V=jeZN& zaKCNm1{7#VMbp@s0cLE0xoM)>Tm}*7IWFLn<$RKkOC1-2t|L&{ZFu?x>x6dA(qZuJ zu4Rc-X8IK05IX}C;|UT5Utei&l3XAU&!!o(xK1E0%zYUtwLxlx%$+?h72OK>>zxLcGcTxav8~cPHWq~0D%F;SsM8r8LiT7)n61RdmI4I z0fBmtf5TOhxOrMG%pWZXR*Nb73N4Le1l>|4`#9T*v5VF@!a73Z#yG#% zDP8{Hp`dyNjXYf-hA9S<``1!3SP+mZj}Q_oDoyHx6(aqbi6Y0&HTRzH`!(ERMiu{O!J7FnmFC${AG^a-NE!M{S9rf%MV=)%2j>q{|DGf zhriAe&XjhIHs7BjD|}2qE^5Pk38x8 zLHezC?8soQZ%X!Y%|2CMbxvS6NoeW?*Tsk$l6Fkq0y}l__AJWAN(<@pQVY0OUu)B1 zTgV1--mEF7WreS|B>Vij5N$u#u^yhF`m&V2)d%n@^7aM!DMV^)3C#f-On9jv+$?QK z@)Ldq^@S{L9GyZ?XOJA^z$8!~LuEukioZ=znzV|3d!7{$u1H zq`^d76cmSxo%0`y|GG#VN#Oq7U}5EEXG`snpai&Cc>f#6%E`m~kH`O}=i&Gt7#j;G z=YP|&a;Fi?#mT{*njt9<&&A2h N1xHCKp(F|Se*k;cCR+di delta 16535 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 Lq@*HpqR{^jI*GWl diff --git a/mlp.py b/mlp.py index 3c5f026..21a772c 100755 --- a/mlp.py +++ b/mlp.py @@ -61,7 +61,7 @@ agtree2dot.save_dot(loss, print('Generated mlp.dot') try: - subprocess.check_call(["dot", "mlp.dot", "-Lg", "-T", "pdf", "-o", "mlp.pdf" ]) + subprocess.check_call(['dot', 'mlp.dot', '-Lg', '-T', 'pdf', '-o', 'mlp.pdf' ]) except subprocess.CalledProcessError: print('Calling the dot command failed. Is Graphviz installed?') sys.exit(1) -- 2.20.1