Skip to content

Commit

Permalink
Game state management
Browse files Browse the repository at this point in the history
  • Loading branch information
Nir Aides committed Jan 25, 2020
1 parent d4fef24 commit 6244d68
Show file tree
Hide file tree
Showing 10 changed files with 463 additions and 248 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -129,3 +129,4 @@ dmypy.json
.pyre/
.vscode/settings.json
jpl.code-workspace
tmp/
83 changes: 41 additions & 42 deletions examples/pong-RL.ipynb
Expand Up @@ -87,8 +87,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 3.95 ms, sys: 0 ns, total: 3.95 ms\n",
"Wall time: 3.52 ms\n"
"CPU times: user 3.26 ms, sys: 0 ns, total: 3.26 ms\n",
"Wall time: 2.43 ms\n"
]
}
],
Expand All @@ -105,8 +105,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 4.71 ms, sys: 8.33 ms, total: 13 ms\n",
"Wall time: 722 ms\n"
"CPU times: user 5.71 ms, sys: 5.79 ms, total: 11.5 ms\n",
"Wall time: 834 ms\n"
]
}
],
Expand All @@ -123,25 +123,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.3 ms, sys: 1.19 ms, total: 2.49 ms\n",
"Wall time: 117 ms\n"
]
}
],
"source": [
"%time _ = pong.step()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.58 ms ± 216 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
"2.41 ms ± 204 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
Expand All @@ -151,17 +133,17 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAIAAACVT/22AAAD3ElEQVR4nO3dv25TVwDAYbu+GVBKn4CtE1KFVGBoqUQeokMnHoKpS16A52DqwENQqWqH/lk6MfMGgBjiKB0sWZWN4mDZNz8n37fFOopOcn46J76+saenz99MoOqL654AXEagpAmUNIGSJlDSBEqaQEkTKGkCJU2gpA0bR/zy6sXxnXsjTIXb5sPHtz/9+PPlYzYHenzn3lfHX+9oSvB5HPGkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNI2f5gsh+L1X8+uOPLk0cu9zmSH7KCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESpq7mW6OA7pH6ersoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0ra5WeSTb7FyI+9UYDs7LMQOSppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNJGene7pyffbRzzz9//vnv3foTJcLm7d7/89uE3G4f9+vqPESZjByVtvzvocLT6/c/m89Uxs9l0Op1MJrNhthg/P1sdwzgWv//ZMFt8eXFxMT8/XxlzNAz/HzzZ83rtN9AnTx6vPPL7b3+uPPL9D48XP/ODB/cXj4xzdrBuZb3m5+fr67X8a205eK/r5YgnTaCk7feId1gfluB62UFJEyhpY38MzSVX7F2oL1tfOBfqQaC0jX3Er58Lywv1y9d/g88lb5VPvhZ/XYtiByVNoKTt94i/rqd+bGdlvc7m8/XX4kdmByVNoKSN9Fr88uxwof6AHA3DVf4Vwu123F4CJW2kC/WevB+E4DLZQUkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEnb5o76k0cvdz4PbpIdFmIHJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkbNo748PHtCPPgFrpKWtPT529GmApsxxFPmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJ+w8thXYc3bPVNQAAAABJRU5ErkJggg==\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAIAAACVT/22AAAD7UlEQVR4nO3dv25TVwDAYbt2BhToE7B1qlQhURhaKjUP0aFTH4KpCy/Q52Bi4CGohNqhf5ZOzLwBRQxxlA6WLHQNcRrim5/t79tiHUUnOT+dE19fx9Mnj19NoOqzm54AXESgpAmUNIGSJlDSBEqaQEkTKGkCJU2gpM03jnj2/JfjW3dHmAqH5u271z/+8PPFYzYHenzr7ufHX1zTlOD/ccSTJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGStvmT5tgbL/786f0vTx48vamZXJ5A982gwl3niCdNoKQJlDSBkiZQ0gRKmkBJE+i+ufzl9524YipQ0gRKmkBJEyhpbhY5IDtx+9KAQPfQLob4MY540gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKRd5Xa7D77Zap9u8eITXWMhdlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSNtL/B/3+5JuNY/7+6583b/4dYTJc7M6d2/e//mrjsF9f/D7CZOygpG13B50fDb//6WIxHDObTafTyWQym8+W4xenwzGMY/n7n81nyy/Pz88XZ2eDMUfz+fuDJ1ter+0G+ujRw8Ejv738Y/DIt989XP7M9+59uXxknLODdYP1Wpydra/X6q+11eCtrpcjnjSBkrbdI95hvVuC62UHJU2gpI39QV4XXLF3ob5sfeFcqAeB0jb2Eb9+Lqwu1K9e/w0+lzwoH3wt/qYWxQ5KmkBJ2+4Rf1NP/biawXqdLhbrr8WPzA5KmkBJG+m1+NXZ4UL9Djmazy/zVgi323G4BEraSBfqPXnfCcFlsoOSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSdpU76k8ePL32ebBPrrEQOyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRK2nzjiLfvXo8wDw7QZdKaPnn8aoSpwNU44kkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGn/AdnJfCCSO2EvAAAAAElFTkSuQmCC\n",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=224x224 at 0x7F537E6F8490>"
"<PIL.Image.Image image mode=RGB size=224x224 at 0x7F3294A929D0>"
]
},
"execution_count": 9,
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
Expand All @@ -172,10 +154,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": []
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"68.7 µs ± 2.79 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%timeit -n100 pong.get('WIDTH')"
]
},
{
"cell_type": "code",
Expand All @@ -190,7 +182,7 @@
"metadata": {},
"outputs": [],
"source": [
"gl = jupylet.rl.Games(['pong'] * 8)"
"games = jupylet.rl.Games(['pong'] * 4)"
]
},
{
Expand All @@ -202,13 +194,13 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 5.66 ms, sys: 30.2 ms, total: 35.9 ms\n",
"Wall time: 799 ms\n"
"CPU times: user 1.02 ms, sys: 13.7 ms, total: 14.7 ms\n",
"Wall time: 805 ms\n"
]
}
],
"source": [
"%time gl.start()"
"%time games.start()"
]
},
{
Expand All @@ -220,12 +212,12 @@
"name": "stdout",
"output_type": "stream",
"text": [
"5.17 ms ± 561 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
"3.14 ms ± 174 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%timeit -n100 gl.step()"
"%timeit -n100 games.step()"
]
},
{
Expand All @@ -237,13 +229,13 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 2.2 ms, sys: 1.7 ms, total: 3.9 ms\n",
"Wall time: 5.49 ms\n"
"CPU times: user 839 µs, sys: 840 µs, total: 1.68 ms\n",
"Wall time: 2.99 ms\n"
]
}
],
"source": [
"%time al = gl.step()"
"%time al = games.step()"
]
},
{
Expand All @@ -253,9 +245,9 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAIAAACVT/22AAAD3ElEQVR4nO3dv25TVwDAYbu+GVBKn4CtE1KFVGBoqUQeokMnHoKpS16A52DqwENQqWqH/lk6MfMGgBjiKB0sWZWN4mDZNz8n37fFOopOcn46J76+saenz99MoOqL654AXEagpAmUNIGSJlDSBEqaQEkTKGkCJU2gpA0bR/zy6sXxnXsjTIXb5sPHtz/9+PPlYzYHenzn3lfHX+9oSvB5HPGkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZK2+bM6OSCv/3p2xZEnj17udSa7YgclTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNLczXSjHMo9SldnByVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0ra5m+mTbwB08+6jYWs7LMQOSppASRMoaQIlTaCkCZQ0gZImUNIESppASRMoaQIlTaCkCZQ0gZImUNJGevvFpyffbRzzz9//vnv3foTJcLm7d7/89uE3G4f9+vqPESZjByVtvzvocLT6/c/m89Uxs9l0Op1MJrNhthg/P1sdwzgWv//ZMFt8eXFxMT8/XxlzNAz/HzzZ83rtN9AnTx6vPPL7b3+uPPL9D48XP/ODB/cXj4xzdrBuZb3m5+fr67X8a205eK/r5YgnTaCk7feId1gfluB62UFJEyhpY39O0iVX7F2oL1tfOBfqQaC0jX3Er58Lywv1y9d/g88lb5VPvhZ/XYtiByVNoKTt94i/rqd+bGdlvc7m8/XX4kdmByVNoKSN9Fr88uxwof6AHA3DVf4Vwu123F4CJW2kC/WevB+E4DLZQUkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEnb5o76k0cvdz4PbpIdFmIHJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkbNo748PHtCPPgFrpKWtPT529GmApsxxFPmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJ+w/nlXYcY/+SLgAAAABJRU5ErkJggg==\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAIAAACVT/22AAAD7UlEQVR4nO3dv25TVwDAYbt2BhToE7B1qlQhURhaKjUP0aFTH4KpCy/Q52Bi4CGohNqhf5ZOzLwBRQxxlA6WLHQNcRrim5/t79tiHUUnOT+dE19fx9Mnj19NoOqzm54AXESgpAmUNIGSJlDSBEqaQEkTKGkCJU2gpM03jnj2/JfjW3dHmAqH5u271z/+8PPFYzYHenzr7ufHX1zTlOD/ccSTJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGStvmT5tgbL/786f0vTx48vamZXJ5A982gwl3niCdNoKQJlDSBkiZQ0gRKmkBJE+i+ufzl9524YipQ0gRKmkBJEyhpbhY5IDtx+9KAQPfQLob4MY540gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKRd5Xa7D77Zap9u8eITXWMhdlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSNtL/B/3+5JuNY/7+6583b/4dYTJc7M6d2/e//mrjsF9f/D7CZOygpG13B50fDb//6WIxHDObTafTyWQym8+W4xenwzGMY/n7n81nyy/Pz88XZ2eDMUfz+fuDJ1ter+0G+ujRw8Ejv738Y/DIt989XP7M9+59uXxknLODdYP1Wpydra/X6q+11eCtrpcjnjSBkrbdI95hvVuC62UHJU2gpI39QV4XXLF3ob5sfeFcqAeB0jb2Eb9+Lqwu1K9e/w0+lzwoH3wt/qYWxQ5KmkBJ2+4Rf1NP/biawXqdLhbrr8WPzA5KmkBJG+m1+NXZ4UL9Djmazy/zVgi323G4BEraSBfqPXnfCcFlsoOSJlDSBEqaQEkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGkCJU2gpAmUNIGSdpU76k8ePL32ebBPrrEQOyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRKmkBJEyhpAiVNoKQJlDSBkiZQ0gRK2nzjiLfvXo8wDw7QZdKaPnn8aoSpwNU44kkTKGkCJU2gpAmUNIGSJlDSBEqaQEkTKGn/AdnJfCCSO2EvAAAAAElFTkSuQmCC\n",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=224x224 at 0x7F53E4933450>"
"<PIL.Image.Image image mode=RGB size=224x224 at 0x7F3294A92790>"
]
},
"execution_count": 14,
Expand All @@ -282,7 +274,7 @@
{
"data": {
"text/plain": [
"(8, 3, 224, 224)"
"(4, 3, 224, 224)"
]
},
"execution_count": 15,
Expand All @@ -295,6 +287,13 @@
"batch.shape"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
Expand Down
Binary file added examples/pong-start.state
Binary file not shown.

0 comments on commit 6244d68

Please sign in to comment.