add notebook, support interactive output to enable visualizing results #1
Merged
mm
merged 3 commits from feature/notebook
into main
3 years ago
5 changed files with 190 additions and 1 deletions
@ -0,0 +1,86 @@ |
|||||
|
{ |
||||
|
"cells": [ |
||||
|
{ |
||||
|
"cell_type": "markdown", |
||||
|
"id": "71383e8d-63f1-462c-bd77-688d8d34a60a", |
||||
|
"metadata": {}, |
||||
|
"source": [ |
||||
|
"# Demonstration of `gym`: Visualize Interactive Results in Jupyter Notebook" |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"cell_type": "code", |
||||
|
"execution_count": null, |
||||
|
"id": "eae51654-4ccf-44ed-aaac-f1d993d7e4a1", |
||||
|
"metadata": {}, |
||||
|
"outputs": [], |
||||
|
"source": [ |
||||
|
"import matplotlib.pyplot as plt\n", |
||||
|
"from pyvirtualdisplay import Display\n", |
||||
|
"display = Display(visible=0, size=(1400, 900))\n", |
||||
|
"display.start()\n", |
||||
|
"\n", |
||||
|
"is_ipython = 'inline' in plt.get_backend()\n", |
||||
|
"if is_ipython:\n", |
||||
|
" from IPython import display\n", |
||||
|
"\n", |
||||
|
"plt.ion()\n", |
||||
|
"\n", |
||||
|
"# Load the gym environment" |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"cell_type": "code", |
||||
|
"execution_count": null, |
||||
|
"id": "be872e01-e4fd-4940-874e-d46e97fb3519", |
||||
|
"metadata": {}, |
||||
|
"outputs": [], |
||||
|
"source": [ |
||||
|
"import gym\n", |
||||
|
"import random\n", |
||||
|
"%matplotlib inline\n", |
||||
|
"\n", |
||||
|
"env = gym.make('LunarLander-v2')\n", |
||||
|
"env.seed(23)\n", |
||||
|
"\n", |
||||
|
"# Let's watch how an untrained agent moves around\n", |
||||
|
"\n", |
||||
|
"state = env.reset()\n", |
||||
|
"img = plt.imshow(env.render(mode='rgb_array'))\n", |
||||
|
"for j in range(200):\n", |
||||
|
"# action = agent.act(state)\n", |
||||
|
" action = random.choice(range(4))\n", |
||||
|
" img.set_data(env.render(mode='rgb_array')) \n", |
||||
|
" plt.axis('off')\n", |
||||
|
" display.display(plt.gcf())\n", |
||||
|
" display.clear_output(wait=True)\n", |
||||
|
" state, reward, done, _ = env.step(action)\n", |
||||
|
" if done:\n", |
||||
|
" break\n", |
||||
|
"\n", |
||||
|
"env.close()" |
||||
|
] |
||||
|
} |
||||
|
], |
||||
|
"metadata": { |
||||
|
"kernelspec": { |
||||
|
"display_name": "Python 3 (ipykernel)", |
||||
|
"language": "python", |
||||
|
"name": "python3" |
||||
|
}, |
||||
|
"language_info": { |
||||
|
"codemirror_mode": { |
||||
|
"name": "ipython", |
||||
|
"version": 3 |
||||
|
}, |
||||
|
"file_extension": ".py", |
||||
|
"mimetype": "text/x-python", |
||||
|
"name": "python", |
||||
|
"nbconvert_exporter": "python", |
||||
|
"pygments_lexer": "ipython3", |
||||
|
"version": "3.9.7" |
||||
|
} |
||||
|
}, |
||||
|
"nbformat": 4, |
||||
|
"nbformat_minor": 5 |
||||
|
} |
@ -0,0 +1,74 @@ |
|||||
|
{ |
||||
|
"cells": [ |
||||
|
{ |
||||
|
"cell_type": "markdown", |
||||
|
"id": "2e848ca9-c915-4aa2-a7cc-a5654ed06863", |
||||
|
"metadata": {}, |
||||
|
"source": [ |
||||
|
"# Demonstration of Training and Testing" |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"cell_type": "code", |
||||
|
"execution_count": null, |
||||
|
"id": "a9506e99-a947-4f69-8355-a3ce696793fa", |
||||
|
"metadata": {}, |
||||
|
"outputs": [], |
||||
|
"source": [ |
||||
|
"from main import train, test\n", |
||||
|
"import pickle" |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"cell_type": "code", |
||||
|
"execution_count": null, |
||||
|
"id": "de500d9e-40d1-4b6b-900f-96c2ec69e464", |
||||
|
"metadata": {}, |
||||
|
"outputs": [], |
||||
|
"source": [ |
||||
|
"data = pickle.load(open(\"data.pkl\", \"rb\"))" |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"cell_type": "code", |
||||
|
"execution_count": null, |
||||
|
"id": "39ca7791-c844-4231-9f3b-e8ae80fe8103", |
||||
|
"metadata": {}, |
||||
|
"outputs": [], |
||||
|
"source": [ |
||||
|
"mud_point = train(data)" |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"cell_type": "code", |
||||
|
"execution_count": null, |
||||
|
"id": "8d8c70ab-d055-418c-b67e-ba5109d989f3", |
||||
|
"metadata": {}, |
||||
|
"outputs": [], |
||||
|
"source": [ |
||||
|
"test(mud_point)" |
||||
|
] |
||||
|
} |
||||
|
], |
||||
|
"metadata": { |
||||
|
"kernelspec": { |
||||
|
"display_name": "Python 3 (ipykernel)", |
||||
|
"language": "python", |
||||
|
"name": "python3" |
||||
|
}, |
||||
|
"language_info": { |
||||
|
"codemirror_mode": { |
||||
|
"name": "ipython", |
||||
|
"version": 3 |
||||
|
}, |
||||
|
"file_extension": ".py", |
||||
|
"mimetype": "text/x-python", |
||||
|
"name": "python", |
||||
|
"nbconvert_exporter": "python", |
||||
|
"pygments_lexer": "ipython3", |
||||
|
"version": "3.9.7" |
||||
|
} |
||||
|
}, |
||||
|
"nbformat": 4, |
||||
|
"nbformat_minor": 5 |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
#!/bin/sh |
||||
|
sudo apt update && sudo apt install build-essential xvfb swig |
||||
|
pip install box2d-py pyvirtualdisplay |
Loading…
Reference in new issue