From 2d5688c737f8612973e2c493c62877233c2df9f3 Mon Sep 17 00:00:00 2001 From: Itai Caspi Date: Thu, 16 Aug 2018 20:01:35 +0300 Subject: [PATCH] additional benchmarks for a3c and dqn --- benchmarks/a3c/README.md | 19 ++++++++++++++++++ .../a3c/half_cheetah_a3c_16_workers.png | Bin 0 -> 67813 bytes benchmarks/dqn/README.md | 16 +++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 benchmarks/a3c/half_cheetah_a3c_16_workers.png diff --git a/benchmarks/a3c/README.md b/benchmarks/a3c/README.md index 8fde621..3a2769a 100644 --- a/benchmarks/a3c/README.md +++ b/benchmarks/a3c/README.md @@ -34,6 +34,25 @@ python3 coach.py -p Mujoco_A3C -lvl walker2d -n 16 Walker2D A3C 16 workers +### Half Cheetah A3C - 16 workers + +```bash +python3 coach.py -p Mujoco_A3C -lvl half_cheetah -n 16 +``` + +Half Cheetah A3C 16 workers + + +### Ant A3C - 16 workers + +```bash +python3 coach.py -p Mujoco_A3C -lvl ant -n 16 +``` + +Ant A3C 16 workers + + + ### Space Invaders A3C - 16 workers ```bash diff --git a/benchmarks/a3c/half_cheetah_a3c_16_workers.png b/benchmarks/a3c/half_cheetah_a3c_16_workers.png new file mode 100644 index 0000000000000000000000000000000000000000..de931b46b8065db92663b605a418f5744080ebf4 GIT binary patch literal 67813 zcmc$`bySsU_dX7ypi%$YV=c zgSL;9Mi|X-qId5a!5oSh_wtj6KAIGoxckz38x9_QDB*d9f$Xt3W&N%jVH=I>Yfa_Z z!~)N1fpLh&r#Yp1WhYhDMvnf&I$D@ZYnVwSc;99nCY(S27l5YUZha$kpTzHx;O!sp zNK$-6{`xBtGBVw-e}Mi>&%{Ir?XSNI>A!?C?+hpWo{~cHx35fczC7J`FIjsAzH=#% z1UV0rR)yT{et?dN3Du;~6I(ym;CqnAh?~?{BZ_oiv()Iak}kI&3BFSsXkuZi+xYz- z$ckpA)z6kq$ z9P`lgB@?&ZTX>;7KMsA8S5eS!rwG={lBu0=Dv4{(?^mx*LRqf8Q%OCJLC# z=BNL<*Y`RmIuBs}o#wX_(1@CEX@B8j}?vcS=o1f9~I@R zs^xMoK0cn)^1Ya`MAmv?Odmf#fz`5u6(#`1`OGcN?@W3{g&<81*)NAiG{S_@<_&r)O))urL`J8C2BN zk;(nvzBNO(#-9lkVBx7rzB}*@qx);g;2ufWH}+j@ig)?D^Q5WRIlfrxF-;0dK%X&= zKu1-|z7f6!C+mboMB;ZB!w%zQa8TZ2s_X$DA0PPk7pA7!moq2xUJ*GtG<^}d{_tby zq?bBmvcLHn+L4A0kG!5~G;(P7HHvfnoB=8=^*~c9)X|&QS&C?AY2hTU8ZLhFXw*6) zuk|N)R?d6U3S5t>YNyR~ILNyeC&D^JMh&$Yf+>!PD!zyPf#f zb!g+Zrp;@IB($`MxVX4BwX?7hanaEW8F5-Ih>UgKmeUm}g@ud@XWiWrb%)=1oEQDE zi(C$kE-w%J_s-nqPqI%w*4EVQttMD^d)*uj%c?bc@`0OvW=$)<<^kCp-E-!BFk9Kb z)*49cNmcpe!^e*wo3ORreag+pms(K;+S0@#?01D2!@|N&&$kNWJQ|x%-T5^d+;Mm7 z4pFq+_eBhhjP&LkJiza%9T$J*_rR;Po=3q+z`8OsGqV8?c)ydxe|}=kR)SDWhJ)0zWzj=3+uKc50QXpsB{ARx4x-z z-U2Km9eQTA=<}PUmr2k64yL5*lPqH)3XMp4f{J{us~u5%dFe%;U2|qtX>irF3b9oS zG#)UeL!HJIVrDT@#oTnc?^^GCwh~ut)c5Htd~BbQkcUV8PuuoxUj)=5+hx(Z<0*64 zsO_;a6{sy;U0r=lO6s`2y4Y{W*6!+8RZ?02cQ2x-hyh(-Y%EsYK{qX@$GQE8M@LVS zIyheNuxHkkvCP6`gYYWm=CsGV^ATlbWiW7UYln;VCv!p~BKN>&_Ln0B^nlIO9HSwM zGD8imShp1(YGvU5tL)ZLj<+X$>0ehgt-PV1=KL%}>9{>XVtlpAV$AI&*0BO4eRE?%A;9w5@v((aGFwqD$+ zoEMdp4Efoqj2sM)1;gxF6iNAa^bw(R#Y>UuUpq{p30<_UZX}x&l6=TkbcCz+!4?8c z0BWF`nwkf8QBhGZWo0|PuExFYeH1v^o$t&__6!aUMG6fKZL(lr2G$dud~(Ax(fc(& zUj#tjSpMrk>xQ$ZPiogY!tkB1Amfpdkv>9!DBmz_Gfsq;!LPT-3S9Z6rjl+?SIT<2 z8yMVG$;ISPMrBVx_V@Si`t}VLrnj$8ceci1{pU}Vi7@~jk%@#Ak}@#hn!38X1zlXY z*exc!f!W+sLRMB$Sprwp{^^Cz|EFgp!id6Alh+#)eZpZ&gxNXr10Dpuz$rBwpSjzs2kI(cvw~l7cl4{A$(`FR5i!9nt6Q z27Eoe=+_ClPK@)7P5Afl)TWT=3dchLmI9Ny7ro-gTEw8;5bAZgOnk5`aD7VlJ&`AC zvI!3txA`2hWxMvB5PDSr84eyE!ok6Hb#-}vGice{W1922@zAJqmfz2#CtF^^={bK^^n+2J6tI*F9C2ZdtmDbD1mS* zD=QNfmiRC_APRb&wh|AFjRnNV;{wY;ML;2ddBhKAZfh%Vs~!10VF<^_*cf`n9UY=z zQHvM5jh&Rq?&uJ%1#$S;AzP}Q*YqGp!@_s1^u+B$#Ars5`DU((iOD-x zaJ{z69msY29r!rlSXu*70p{RI&uasS>;T??sf|%5o1q_Sq?4~zkGJ+cvGwSP?cm^G z?>oUjXA3Hu*@#sQHf)dw>CEgU%yURa!VyKYx-DsyL|8}>4%wY0koTB%W(g*!Vt`x1cNjs)ul+&!XYEYpsG_2xM=YZG=O8@Z z+oq(Xgc@ek2cMXvBqEzoU{X2#*vNFS3#c}KC-_nf7{@MUVV#Ahg+zR_TBzTTEAHWm zj&X-F^tM}SnBkU4rwu4!vtz6&InmB&IUR-F7Y3JhQ|E?B8{)WhLv@LCV>~D`yYKbb zGayEUXTQHT1v%0u!y@fvN6ZJGdoamf*IYkms(rtImvO(`?}T|Y*u)YqrHh<*d3ouL zxdQuykB<<5H>dO76B-&C!H&G6Bop_Ws}pcU$WZh|#%I^*`}Az0)``(OqnF|a>HXy7 ztII`HFYlg}7AS_Y!}VBIF8}xzCGW;0NnwBOB?%u6!jP>kbA{DxFu3){0EY~v{p z^6j-C9=J>v>B0>S4>L0}r<@Y(wKXYlqhxsGQcS>b*{vc0jAXdkvFC<{>E7O6DyvSb zO8uRwavTDJHsG%j=jX2OhkYEJ4x7;ym((5|05SHa%nQFoaImwJf{=7`KHm5Psla57 z%^4qreQZXpHlE!&UvRy^OnHB>I-DPwPUcnHZzwd`m6w-0uO&MDXq>g;5ET_=VqtkZ zGo$es6Z3Bf8*p^#x?6u@vpdH}M@OgA8i1_ZU#oHj$jVrOCSv6@a$qZ(PKBX?!Iy>x zE&dLGu%Y4M0khVex5>(H0Bd|;Q>Do{2%&u_1;P0^-ax9#d9==DRhiPHL9B<9xMdmG znL9JVIael)^krh^QSs+(1uulm#KRu$OoI>I@MCWbb%4d`++1I&)w`A(!EG(Ihj7{~ zz&w2T@Q3K?HT)PjAI8RA5L3}ui!LwZq-AA$0$z%XKk&TV7dzvM`sN2fyZwY}(Xn21TN`+EWIwUvNWkNWByhRsdwE`5%$)bC6ds%*D=VurAU*qg zi>=<4b2Sc#z@X(-Ns)eDtXMB-Gj2z`W*(ozvW{@K zHZ~q`#sbXd;<1Ltk&Ec>ulLyD5fE0|Q2{LPH6su&fKZdu-`Cc5SIc?v-bbm-+jz-; zxhFK)bTFSa#7v{v*o>=26oKG%KAgO_K1e1Fuflc(xWM`Ox%Xi+x?l_O!rQ-6j%Thl z^;UGw1U*cjvO<2wcT%1Aah_-7KHL1EjO<#_KdtXURqppm^ej_dYQmB^LLBj#@7Pzq z$cH=$dtI59hl_7`AZEPe4rzNVY ziVb2?G5AOk{Mf+2BPcflj1xpB5`ZFJ7t`}FFtf9>(5N|S(E*|+|LFqUXHHweeLe}m zC83A~YZRp<>Ug*+4Fx)2p8&xCe7%s7k$G;N4=@0?uX){ZuYPfwR47Hv40`1rz5`A=b>*(Hp}A1?dtn>h62eSLi(2#aWG5%Hg|r+w{* zeJ_oWvHa4{XXQ=x59JfE0Vs!s$03!7j*TS+sG?fPVEEK(vgF>@cwt~)#ZhAZ5iX*! zjySIP^71m2ECP!CxF1|1z?~w8EtR9=V?99fps56dR^8W)%jmc`eP9BByWok6i4Bg9 z`dc?%VFAo>RfCiKll(y49h!*s_96in*gKxK?xDyqlf0j{v8FBPywC*u3Lgedl|<>a zqd1%-3}*`ZU;2*l@bHT5qVu@r3~>=S#QzW5$p?S58bVYEG2O8JGL574xcY{k>V5!Ohn`Gzo#d3OxJ zVo5-9a2xb)@4;Y&+=F^HfNE&Uv#_u4aN<)@!47EIH;)7q z0?tQ60<=TMQs0{H#P$~NOjow99g6T;H&3f+Xta%MdxZf+aanm;`TF%YXkG~@RWZ2g z^sFo>P5zpb16HR0x7%FmVQg#zKm-*vE>{@69t?FdJC`GS+$mUC zSXzuiBmxZBpa4s$^q1ZfV&bZvB`R-_BbJ>3ORs+wTu8AQ|At}V9feJ*XGNvvA?meG znO1U$Rh-_px%eb@XZJzM%6*;YWx;HC{j}5z)ror?%BDJ|97W^+TlVK~uIArhiSj;R zXT497?dxS~!ubcYrdYj-j*kAyo?a&S-*!c{u>o=i1^xb!dC*<|37vRBih>o-~3&gM3IS(T+iM z2QeC`n;Xyt!NV&Va+s!6S94hi9jO7z**sV8*4p6%hp^PpXt2W*--&CDZc9g+NKA&_ z*Yt)vaiUmXOsY{^vRHC>sn8hzZTl*~cH-#?xNW;EXZf*u-E-mT33q$Ku(gzq=OQ?Dt%(rl^VE^m3!%uzsb?9=8T&Sz8)-6HwJjKX6fW^o zUzk3sRcj&)#?ko~OaTFtx2;h#%BZF~?N&PN34njx=EiQv7A1j#_Xl6F!6B+`ZaH2Y zTh3m5&CV8AJH~ttCwc!j52f1RGD#4Xmy4B?48;{h#|Xdo_~WLWNp|NK`i4m~QRBg7 z!62>@QzdYA?<{4;E6O#JiJ%V5{kYE;T@ucUQHYo>u+twb%bcC#K)U>+O1v?IQjMFK)gLM!KY~oD)>^r4FPPtSP02eMY3| z7e75T2$7oT19^%QyeBVbess7sXuevZ-XTqGh2Q=G&HuL@&fY zT4E*O+juE#_p6*-;ym1)A2J;`2VpIZ$F+R-;Jr#d`@c4Ef(o^-S~{F$cGZq z>D$c@$^16i;MmKBJ;1{gL^fumfyqLXQu6 z*ov=$1|icHH)?ChaM$j@{8v78B}l@eZ$rOWkBRk!B`|SRXkAF0f!a{V@Rt+|`vO1; z@*nB3vDw1mna!Cz!gokTijyPD(pJj`kPHLKXpq9qFexn2CHdmY;?YH7MITo%LPBZS zM)jE_lGA+7CeEKwyiM`PeVpCJt%whhW6@rWU3o+!S<^1UAtJkL2Bs&v0+S5n5Z{kG zI@>~=wQ6=ZHwRY^oWWk~%->_?K*4Zk?9 z>q>PJ5cp@hBGKSDm=*MYda*-Ga^Bg_Z%HdU=fV4E=n3DPJV-gVxqCB7rls0SRPfXm ze=Wx!ltgRKe#)_4W#@tA8Q@A@B5{hY=)=XyaGwx}KgyfLqEQGu?LqC5hi4ZTNJ?X>C7{3-Cp)RQXa^X*`7UX|6}oXcC0|wX6E2PD4h&#yoMA`R9b6moTMQDj3CE` z7Onnf4q;)PTR~MV8a~x1Q7>}4&bBs=s%+~dT_7)RsMyC_S@_T$q(ZDftVz&krw*n^ zUjK};-S`98HAxo%&-5_7>_^X+P8}EWJVW`1y=I-dLp&M-WQ1gLVJ*lz@|V*N^+Qq##6a0}JKlzcQTj_%-CGPKUK&iJu$!K5VoB&b-D^c%IYGD~G{yg$f?8Ht ziC~~JIyOcMDj0wOwgLj`yRkuGR}L~Eud6L>d3kxC-d?F&(ah2k*-ZmvnN?l_HX>ut zY8l8cVsEUhtvdk|3<0u>I}mH%IF11-Z78&Jy1(pveYUn}&kYO1JewAfBkC>>dQO4d2%^IW;r~KtHg-fSN{JQ&z{xm;c3$$dV zVl(gg9%PVy%Brg^ry2Y8aYigWTf{NEh1*p5BRzD?*PA*hW^DW$MT_ssaqkg2;0%1s zPK%prMtHz#Awe(w(LTTkdiJ>pdW%5KU}SBVU26lGFAipPHG=|@#D!8 zA5E&HdXl?lg7WkpPG1wZ(@%ni^G({b-3b2k`wk8cIQaOj#MgTWW##3%Mn>>pbFF~? z!F=T?imrh5V zC+WDa_fQCaQhMZGLh|rEznTGSubOZoPNG7tUyct_nsg)PKmB1@$@>%WqDC8Vi#^Vj z@n;c7ypy6{Vg&up&b<7L495=SBW2l}9D&=a8|U_J^_&>`H@OR(Q!e-*VwP?#p*@3B zIdyM%*U31@G?s7X##YnL0(ApaP4iw?q9o0q9|4P70Qvp>ThoQ+eBk?_A}2_g z7QqQd3M_*nR5M6%R>r4y9HCm+o@;%T#|3+Z<{Mi3ppeoPfCFQ1Zx3QUdC-5+DN~CAUKU!JZbYea9IcNr+Kd~ZWNIra z*18{Dz#~t2#sSZ>Y@|TowP)ZZQwg}_CEnx!j)r>qz@jZeG!xcqyrP9SG{{^=1VkJ( zL^+I|BN!QD9q)}cCC0O6w*;$4af}p6mkd;CXBxVYF9~H3Xf8%h^wI$6rQxcB%o4DGApR2WlHY zVgOZVGFn*T6h?!BSR~lK$Yx@1iu&*^Z@8p zd78CYzP`TBK(>_E){X#C1U^e9v1PF}Fzxp6wA^-{xzGW`dSPgoaan2b7+vrK98`++ zlYsVl+!nk#+5tmKr7cMz6PX=|QlJ&@zgLM!fmd1xEjBZa>I&+La956pl-g}&=H>_1GGJN(px!_R>5)8kc&hEhpF_}`s8(!4p@uie4&YL>V?(wvB)8aX*`jLIQqFFy(-A#nAVUqGu})!c$XkdRf>TG zL6ofsq`2?nNS1^ep}eMI&mZf@?qPJwGQP$7iY z#6fXV0xsk|`R_zK35(BohCOt`D6Mhe`3#=II2-T05<-Gowx7&UsUxSW;?_%BE-A*R zLB~Na+LJWSr4m%iWRXm)ICqILQFog*q(5`n?(Tc*v0gcgc#07|C6rZxQ>x)#o@|E=^I~MMaTh-3xhyyLHY#rvu>|x3wHP8Nn?Q9O<)&(Kp=&Rb;`=hu<)@!Z~;C5 z^%KyhfX`t)7mZApVF@Fd;Q%xq*OFbxW zX4lSnUl1J*-h^PLu^|mUs5pq`oFS{pInGH2W)pUPPbAywcpPXDq}q zG=Qeb=_v;JC5>=E1r!nz`e;x0L?GZzB}foQQ23$sjv`B}u(a8#XC}=-Ki99SKH!!M zp<<-^cW#Lo?p_)4gm1!bMfJb%+p-%f_P(R2=k^AdgyC+!f{R-j4~gBj`@M-0a)E#APD}P(!zBL@49$F-D-{&njdKfp;!tx&mNZe3 z@xqdg9|twI3<3P6zdzqa5W*&S+dToEUm@!!b0A3<_NF>f-qu-@s5J;|oS4`y z9Kqb-#rQ+7Wi_NM89oO=SP! zG&59B|67jnjyDB#65RH+2`cgN@uPl+1nj~&q+}6l6>>}pg}yxL{g?@a3{E-ic>7_J zNn7ggPsfIW!-KSaS4xF=5Rc61`h#A*uXw?DP^seZ8HCg+imf|w+{ z(~i~bQ6rX!E7mBS81i;(%)D%V*Kn?5L$F)pJ6LTREnqTMA2yyFyyrzY>5ngjx^!GU z0HO$JJ8XtVVR=d=S=wLyQ15b#K|0!I)PFCNJCt!sZ?1E_g+SDDUvt!^c||b$RpTo` zICE;6nx9Q8VfC*X``3h&8!J2w_U~s$y6r)@cGQG}D9+ZLs+Y4ait`oDdIx9KUX?|` ztKj@4W~9n|O;Y*8lI3MVU}Bv;A(b%-p+{yuX~wJQ`%;vKb#GNYl)ksq^hZ$(D8q+B#HSid2(grTYjLm2HfQT+NyLr8xMo$|Pw%ba4f`df{(}gL(dEN{Ven9l zo87@#IufMYeTp-%72SQ__F!}v=~s^<=_c2%{gXnW>WyQ_Jd4KB0%%_-ZWNkRF`V~s z<}Eh9sPeG-y!BwdQqppuNj+G>4o`FQ$L!&pLZ*)N0F7@o`2ik{Hz03QeHm!2d_Z@qUMqlZE?BNDv+YIw19C zdd1}n#BCyvu$ip@;sA@?xWIgy7hd|O3waFnFW`D)m%l%q#gkM*b$n`h3G}dilXWzh zFGkOA9=Z>b_A7-LN9?wDrzXD1<1Rs*wo)e7Y*i!6f;?2g+G%55ndF=tmH5voq(}S2 zBqoM|j@7$&(d>Zd3jOk26DV>h+0O=X7x!_D>VDrCsPo9`42wc@B~?cL=n&z?M3pOP zJ<#Nees7flbmbs3mmj*_Qb{5C;pU{i+rCSyX?h|T zIsU6jdh8Dc`gG9K$)lSJIywwA)e-TAcAS#OMY9w^+gbfgz?l&KaVEpRVDAXCC%6}~ z{&`I6m}61xd5U1X_OeOkswIP=wn#soA_iO0oixYw6eB)z3kC#rpzV($OeYwXnH`50bNH>4Tc;3Hlw$xSbO2Sh4>M5ve zj!rwe%y3TU7o^k8+hh2zzUG{FleHxVl}1oZ%JN%`43-CaO+_bM4Zo!F)oOZ#K%}e0 zibH?m1op8@w$}(S0_u4GmHC^T-YKxm|FPBdtm&=h$t3nsj2XpQr^TTn^hH1`?+~tN zjKYn*nOd zuoM)BwPRj^8-06wqfimz$&g>Loa`V7*CZd3fWi>YZ=%B2Okd2V)4Zcpf3-TuuZgkY zZbt~eW-M5-=2*M@$s@+3l`JN$=nCum(QIql8MU(dNpDyhl|=UX8{yQW=#nUvn4b#n znvOm9sZVA?5u<)A%}fGbBz=8fi+0pk1^drhf03Cf%6i;tM7%brt&B zHspQ0|3Z11Nd2Qo$}6vI?Vt?UkfbJy!jO7GYJKN-SYi5_XysbnKZdPUGT$ck6V2ln zySUlB%y2d}MxnTJ{~ES%t!fAaHqh#w zrd9Fso18$Q3fv!*UzpjE=^(bng=BeS^>!FkBZFIXXp#5%?51;+V^Ad`jdP@{jea&? zfqVq&2!848zqNJyQ@NhI^8=(YOIlCbXh4YQ&#kho9QU=u`_w8He1Jgj%ml$14zc4L z9R0)+5ct)$ZRlOa{s87f^T3)9{1w8R)jKNwtD!jyo(iH7Ycku2xQw@F^k^TA!vkt>uP_Onl-yD>XLPic|U^+D6d1hiZd04W@?Jo z^n*yKgUhknrpCi2jNxi{QT&<0n}5Vb46gjmO8Pj$%qBCxq3$5)W$$tRkF_6KAw0DI zC z3Dj)5e>a=d^+_I%0v^fD4jtpR9oIUo&pYAuH_AD9L`cO)p<_2WBLpsJegMpLK~SsH zQjR`4Ont0yliQCkgTO2EKaRk~>@LN_DC-Q)>1nLu$cxlz|1@q13=w8t9K8+dc)7)M zZ9fR64XkCrkEj}HPjA=5xn2vYub*_D;5@#cb+mg`j<++~I0uoP=IsBRl0X9`WL{vnIc`I*Epo&z zPIV?M$B~_I3yM$PfTOlOQtFnWsbJHaGmR5CNgPh2V)H+amINTD_aJp{|E2Uw#?8EA zuHXqf8RUNgz`E&4mE0i2Tq6=#SW}^Kczy?~2lEosq%4WnRe>jck&TZVEDCk=e_6+S%qroQ% z{UOE+(Qq)xmSW_r&7M#|-8wSqa(KomKv)qfN8KZC`7)OT-q?2~-fZPfi;bbTM9K&V zQRfLhn7YLQE4P8;zlTpq*P(?q+faCw$ZVpq>?ZNc0m0J;b&8M`jJoSrr?tt7DcK4Ew$K5hVV5Z~AAh#g{^ar^Yc{Dr@EK61GJ_W? z?TrPP3LS{iyAMap!-G$&l6U`pOG3dPGZQ3llTL^P1WgI>@)6?XXYq-j2T?evJPFNO zY-SQ|lay_rQ%RcDZVe|Qt>p3u3stlBd&^tmAAti zXRe0u$G2sY+aaId$9MeiyQ-l29d8a|K#M^KbdctQGxx7}MdY(hP@B1ZTE-|`|8Ye# z;mD123sB)xztFX*;aBInG%BHdt-y{g>w^OAg?mFbik)XJ-BZM0JNtdqC%q;~D;ZT; zw?z0z*r%EZqcKK-i`VM%fT+6HLu;No z{`of^^deB9_aAdf*#!XK1w{y0Gs4vp7Hn$e_;8X-+LYLMaXNyW*Uzl_28(E~V_qeI zy0cjSOx4me6^vDN=i>=2&9Ir#qs9+{JHdW~-3UE-(qHAfSYFHA4)y%k+*IVI>(q=4 zF!lCPw$o}_`;~H~2Y70FBD_aZJa+d1z0;e{4}QOPz_ZD;`-VzO-%=NgRc zzI5Pw-2sR*;AM>9((~Ra%Tl{h4{f@exe8VD{(SF`{-a}0%*haJq|NF~x5fn-%Yvhqp1BywpphuLI!J$;OCAB5t zCy`5%69xhz*-kGBuah3}P(QKCsPMH^Kc7(E^ZU0mPpQPe(J0aw$dPkB=dc~)##7(O zw@_RONdk5e0+Noz1UZNN^3dZ{@~=v&;M<3shrSc2kJ+hNzQ??O%j5-*ekUF2B}tBz z7+G&65|WNVbBsz`>RM^%2~EM{kJiBrcT)Tu%*fNnKaa)S9|j9kKEUp$Vg{;i8Aq|U zFy0>nfWHwj5t=PiJFfS{Muz2CTWlyOqy%%D&f_b09 zDADnUm|DRDXR`Wm8tlwQvPeIi*5joQP{x*VHDZhzFg5 zZySR~{@td>N-ZztU%nb1Cfa8&^1OK+KLMgmNe~3&4(Y^e!|1LMCB*_&NEZ_E$TJQn z7d{eNv~!N22==7ELS$Xu8Y3wAV$FR2KXzf<_eAwcXxt(iLpoA|az^d@X%+f}N4eqK zdR!^Z5ck#fpI=v8)juV;)oW=G7Ww_m;(e|B>dQ!kd39fZ6v%&+;teZ6;~n5-sUUgz z8_ypoJTp;u;25*C397#^D?y|Hlripe=ihzyk7#B7Wgew?o&XWzgwYIe6u#vOny z5URG4X}si%e(Q$iF=yktv7c5O00%cd6qxpsPuakBqwdU0Dk9#0>7Hk zXzc&q3qeWWmp$qYFA7|A1)vnr>U~qGL!zU;pwTc2n<`-z-3I&l#^hR`L$zf7P}%{f zq|c;gl^Y<3K>_MS_-9QAa(72%fDBq5a^IY#g&!wu>Bi%U4{*Ha|5wz>fwn!Rj*vF^ z#DELIhbdIWB#}1D@ib7K@D$u}b91*I>W^3l2e46^GGfv=G4sX6 zp#ean3t`H1sDVkh^o`f+yE@hVnm|vtfLHf<^vh)h{(WXQ`|Db?9a;uF6E-@bf{RMk zK`zv!l{X5!hgzV$^^FqOv|mQ#%wwayS}iHygr~$x`Xk4>08cj3F6m5tT85{_m9P4^ zbS<58(gRzj@b$36+Fp%q&V^Q+$9bVlJV4{?P`Zi?v`{-F*prFbrCbqMB|+Hir1JgdF);?;3Hz2_uqVRO*X@~%B5Ch)#G(@ zFZ^7MRcL8dtLy`GC1s5uS!fn50Xy{_-=%}srR?{>wD%}DbiT=$rXV64I331fZr4KDF!a#< zLr|1)PE21A)Ea>->|D8O((=jMxKg7jhit0*Iu)0wgxbkKwe4hs`ju3M=+EoEzC)>U zTm0Jen6fM9I5e|oMI!{N#nnWy8)%y2x@$*N!M#DxBA3xt68qHb@pJz{5PjR~egEtQ zxSd%KQ5qa(;R;1J*B7L$m!RD2u=h z$F!Ei_bK!T1ve)tVvr@&J6IfV`X%F)JY z1*=aXJ+S|JATMMi`h83JPSE)`VkCN^r9K1l(9_Weh{=+k%FC;Ca#r%#j`c_+R8!(b zmH8gvobkfyc-E2ueQU^BQC4cgh}rIP-2B-`jIqU%@s0wLPEi*j{T8=yj&U+sRsPa+PvwA+g?8E7W*bZ$G`o{|Z(%&Y5n$Uyfqs@&F@_026G>4RfV}WU~ z`Y!2eiLmmL`?d-oN_OL^E7wTcwK{LqyY>*q(UK=#_7{J$s5K#pp*T;_8R808#frs( zqn&YX5oyTAVy{#jFE=@+OpL|~|4D_#nSE+wwK)@o&R{mvA)FYn2j_j zFiisv=wuxFiP20QnJr8p!ZW7ZHvU?b7%P?oo*HO-rL5h3s;Qa*#=do4tnE|a{oA47 zXhQGe-fCMMow#W9Sj^3VR5>hPu@(>k2SPPnd8_E;t>?2%(E9e?hvMH1B>0oZ3rXbS zKjk5hVw(6Ejh{q3o9{NQ@XgfbSQ9K{l1c*QvB=IK zYbPM8EZ7=cK1?k+@f>nc4vx}nY}sMef^+&;91|TsJO;(3K4frbIf<8IEKkz6v2TpF z0dYWdo|*spAvDI>m@%7~x8ya$lV4O=yBB$)JXVvz7^n%fpZto$H8-w6czN%*`rg9e zp7Huw;OF*}1hma$`potw1vlQ?hTC-xXEXRb@o^PupvTx=!Ur?{Td-v+0WzNPt8RqW zXJ=!ziJ+)ew4);8{c3TZmbPCBf1rvlX;M`kIl|fRyrg^ul^TOVAt2s>!F1;eg!Fk< z`pSHD2I|m}H7S-uxy*^9rVE>U`y)Sw=+|{K>K>4lcXGx{_(_nWq6pID|ibIi!B18)6In%*MkY+qfY~)Jx?3l3uoe(G zMaO-E`Q!?j_2%HkMsXQypn;-fev(;4#>mh+eBVT7&0$m{qBIlS^C5Bhk(BEi-cb+i z?>Ogfe|i?Wj?S4oKeS^EI;8@p$!vdgp`H1I`N%dfLH*-n{Hya~kLybp=zKhMI95mq zOpCpY$i;h%Ob7GlTTtSmjBjD>I}b@z{Tp+P8X^dV{XDiC_hZV>8Ho;6Tm;-HKa<=- z--fpp@>c-^oKW6WcosX|H1sJbdVNoOkWpReS`CSgZ#QO+4A*?fSeAx3y5)v7TSd0~ zl^;c{=*O%8{hCbUM90UUw&FzkLp)Awo$`o9o;qCA4p|3h^Rf*7itKSPaJis0?RAAk zb4$w|FtZvN6XOpiN}7#IbwQ&Ci8T>ussjU@OdK46Uvup?lbNY-kD4Cxnc5#{3`WPnO9y0<`RN5*z{EK89Sn(y ziO`oN%(-sSgQ?qls)btjU^J?1U_swgq;?~ix&aL_qV5`yFD5#$3(~4=(CTsjNb^s} zl$ohK-hK1>`1hgy0mXrzDDx;1>8toBf)rQF>|Z%*I) z(02FXX#q)=hV=X28y@n9k27L*Mby8xdkpZB$|5%A6DAtaX{cDn)9hU7GR@tZSA+*y zK$<7bvh#uj)9m=yX_R;J{635GMpKyOZ4r!p$^eG7B;BEC>oC57w` z1ZNbrRGG)9?8+RvT1FAr9V^#8KQK!4@Anv@g>=TfuD+y0?mfo>bh0m z#Rq<#L5X9%2j9q}TwU{NW+_ev4+Q4b@w%};ZZc!1eOo?owP9(7AFG~oth)SE>;`HS zK?*AF+s&5MKL)=3$31#>9G9V^R|41js1p{l*X>!Qr5K>4?f|rMo-{(cdOizy5zTvE zlzv(G;ig3ZkAd8SH=E#QzW4?z{GOJrIxBSUH+sG5R&YI$ z$lg48Y4m=~W5Xjk_O#$9-SsY+c2Dwfp;c1T;wr84^~eioWqM7PaKwG)#v-q+^?L4O z!Qr(J?Bm&N@d?{C_JA81?%}cY(+0A}xweG?ouNjzF!a{e;%8fw;I&b7caZWxE7YR3 z*Tw6X#P6Zg-(V^dI=TjC@2@Y{1oZ9gAOG_uB+@gjd2TkHgUJqFz4=D<&|<}KmX0C=c71-m?J*NDXE zf*8u#aTZTiqXRhHL@#*g0RI>k`#1W;?EajWxs$t&)R(O2C&sb2FPR!XyhmQtXSOZ!ArKKF8*B6oO&$j zhGf$%LrXmJlU6bqrv}|olSvhZe3{N|!)7|-`f|ev-2z8!`VkptZgoe|{H=?hYG~U* zdd#^zK$&Azg_se0YDgXHRI#w?jr&X}5$$9Hv`>}Ly2lzvRuhE~UCrzE-1}!{GJFa~ z3Px9Z!0l79jHVe|X`EaKSb)B9+QLV%(<)&=Ng&-)f52amKQOz;<1A7E+9@Kz&$nX{ z)c{A2i97)L9Gc`DpiJ^SM~`6SIHK`#sdJcl(Q$`@UA}4b$y?*<=isRUxfRr)^0>CP zg~tm4(PH-MRLc~T*9%Kp%zhfqSLKU)QI~Ti%CahZG858c`)54=t*EeH?507rYa!3~ zf}xx()ul}JtqCkDgC z^sNRfPPM&QkVphZJ6c8Ju&c<=XXQEe*g!Y#04l?q8zSnFXpb{vH9j{BYvDA(Zixru zpJy9Sl+&dW?sl7}@>O`v58*1tI zvX1lqJzIlygFgagJ3Ho%DOqGNxv4 zZvNK7saAe0oA;YnChzM(n{Ly3(!#sg7JAUyUnmXzQ(pshnS64c-7*Hdy25S`LvXG03TXL|- z=i&Yzhp+m!o#Ol{mp{(F4oWwZ|yM#UJuDTj)3jJGa?Ay0h*D1{%LqqZz6SQ1VLesg+6*vh+ zwNf>%TLf6b&rYnE$?=4=1f6Jf7}#0de+H$YW;}@!vkK{%&|ej-dN!$c3D~IUfxR96 zNJYsEFNKs+OS2C>QZ{>OQ6!Wd5|JNpq}DWMuhJ7C4B-YBSR9L!3yK0oZ?^qU?tfZD z|J8poHFXjRFZ>|%_W11HQ-pY>7QZ8dUYwjSn`h+noSRDkrM*&Jou&hbU)N7Dfm4Ht zZJ<>gN}!!elc;1KeViN7H0+_*uJqYIDkp33onCjq_C|l{FD{x1Y!Y|jIabqUQn%DR z3Oi$Ke&aBzzm&wLX)Z3ek1sd|m0u24<7G6!ZR`<^1FSg4nVIiR7s(BAcNW@DmHD4O z8H975SpuqyP4@7OkxZYpyk}7+zG*1IUTt%vjGOduj%_# z=E|GzdM|;I+20M=|LP<13l8R}UD5BiAl_4bN2IbnA5TYGW0=)<;WffnNi89P$HHB! z)->k}dr|n|%a%4`PKpm%)E;H;N(!f{x}JptK44L~K!z6OxZnGh4#TA`!!tn?FKRn_*@6rjRDOjE-d ziG2A%%Day@U_1gOdh10CEoCw^5z>Q643kSpxXGJcSizL@Z>`E{GrcG8pGjYi}eDeKcrv19HTLmZBw0>t{uj?-I3EX zpTybqT&{nMR;d6k-eNdCq2I-Py(+21@P)%DH{OE%T{$L=oWh6cTr z-Rhh}%6ELs6XOki9!kxArlZ>;p?^PD&UXN-h>yo9@79w(H&NT5!qELR->BV4owabQ zGjl6oF?M7r7c_vx(6k>%zULqwAaZj_Nz5MzL);VQpxj05bx%~sjYC%>7X01%+rQOYbH)r+Us(1?lOj2*f z(EBU5_=yZjZb+t5h+f{{eB>)DBlDoRk?iU@!>Ze=;KzaPCi$n}7*C#7t{X6(%)J;= z31~d`bA-LG`R{~Z1UxRa>Z z!fu=Qz{Ej=smEDt+ini|7I*oO8D>-wQJ;Iw>)oDvbySTfR!;>po9hhc(z_Iys6=tN zrt%y%?%+F+8J4710HZHzWMpK_(lxmd;#Xi0mj!+*Cs-a^svj2AUPpnm6%iv~(gOLj zkALHEQ&WY|S4!tN0**eq7;-j&t|5B}lk4m&P?=Dd)8J!9P!H+&=D5PF)vndibzEcK zVxmjAubT8emfNK77?pt$EnE0p$@@Kg&ppxTNW$1|b~qpZgU<85t>{C#(c?M=un1I_jlF2 zx-ij;#-e(1LRD2~k;TJrT2#d$M!JR!OI@5y%Ew3>_jdD)&8LKWe6Ufib|c1sZ|_P^ z=Q&~AWrd<7Idn}fUk=xhx}wWk+$h?7Plvlx1N<0}7gF^+cFNJmt&fZ0X-~j26PBmr z$IYWcmdW&NSnnhQ3ET7J_%XV};^RFZ^Gf)Nj-J}|#EU~SBnB6#+= zofGeRZE3hb-s&#zx5%A{2_lX-fl!61$U6SUk36CKCI0cKhB7Cn9}1aRHW2J z@&r6Mqz7lam_>j-vJYKj)>=gMTSJYUZsDzr^HzV{ZOS31=qoMiEiLTT@$lQ*n$Tt4 zaTgvGxa0mOa0zE4Fw>Km|J?_zH zIQN;iMv*46ucd$BR{qXRI>bFz0$v=ka>A4nsbQowlIhhXLqx1OU zQFT>qZ`MR8z)Mi<*1TJ@?g@Bb56zpeOQJX#!dSAfJyFRebfEYE~4=#u^d?Q4}43!mqc==>hhbxHB6XQmBHTY%v? z!B>roPlplH3fk=c43q++JALT{w|87ir*@nuPe!J=ej%Grs@FMp@I~r8*LNN7q)_J1 zcQ_tDo-9dM*KvD7yFtqr8ak@_tw)#{BcU6eSRCmSxf0aHyj%96_IPwlLO0{7D}3T= z9VJ$gg!6T{hudbd74*6Aaqo7mb+|>a_U?<9j>00ssdr`ycY^{g@QFAX86Dr?$25ZA z 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 literal 0 HcmV?d00001 diff --git a/benchmarks/dqn/README.md b/benchmarks/dqn/README.md index 97f1c5c..8b28c83 100644 --- a/benchmarks/dqn/README.md +++ b/benchmarks/dqn/README.md @@ -11,4 +11,20 @@ python3 coach.py -p Atari_DQN -lvl breakout Breakout DQN +### Pong DQN - single worker + +```bash +python3 coach.py -p Atari_DQN -lvl pong +``` + +Pong DQN + +### Space Invaders DQN - single worker + +```bash +python3 coach.py -p Atari_DQN -lvl space_invaders +``` + +Space Invaders DQN +