fb09e66d09
- 将原始单环境训练代码重构为模块化结构,添加向量化环境支持以提高数据采集效率 - 实现完整的PPO训练流水线,包括共享CNN的Actor-Critic网络、向量化经验回放缓冲和GAE优势估计 - 添加训练脚本(train_vec.py)、评估脚本(evaluate.py)和SB3基线对比脚本(train_sb3_baseline.py) - 提供详细的文档和开发日志,包含问题解决记录和实验分析 - 移除旧版项目文件,统一项目结构到CW1_id_name目录下
444 lines
130 KiB
Plaintext
444 lines
130 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e940562a-f560-4e30-aebc-e45f0cb743aa",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 01 — Exploring the CarRacing-v3 Environment\n",
|
||
"\n",
|
||
"### This notebook completes the step 1: understand the state, action, and rewardstructure of CarRacing-v3 before we start implementing PPO."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8fb31fdc-63d5-450b-af3c-0881b490a440",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 1:Verify GPU + Gymnasium"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"id": "8bf88494-f116-435d-b70b-e31b4f4b21f6",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"PyTorch: 2.7.0+cu128\n",
|
||
"CUDA available: True\n",
|
||
"GPU: NVIDIA GeForce RTX 4060 Laptop GPU\n",
|
||
"Gymnasium: 1.1.1\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import torch\n",
|
||
"import gymnasium as gym\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"\n",
|
||
"print(\"PyTorch:\", torch.__version__)\n",
|
||
"print(\"CUDA available:\", torch.cuda.is_available())\n",
|
||
"print(\"GPU:\", torch.cuda.get_device_name(0))\n",
|
||
"print(\"Gymnasium:\", gym.__version__)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "50b52118-0cf5-4bc7-a7ca-c7923f954b22",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 2:Create the environment and view the state and action space"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"id": "a7b00df7-904b-43be-ad36-25eb0034058c",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Observation space: Box(0, 255, (96, 96, 3), uint8)\n",
|
||
"Observation shape: (96, 96, 3) uint8\n",
|
||
"Pixel value range: 0 to 253\n",
|
||
"\n",
|
||
"Action space: Discrete(5)\n",
|
||
"Number of discrete actions: 5\n",
|
||
"\n",
|
||
"Info dict: {}\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# continuous=False switches the action space to a discrete set of 5 actions\n",
|
||
"env = gym.make(\"CarRacing-v3\", continuous=False, render_mode=\"rgb_array\")\n",
|
||
"\n",
|
||
"obs, info = env.reset(seed=42)\n",
|
||
"\n",
|
||
"print(\"Observation space:\", env.observation_space)\n",
|
||
"print(\"Observation shape:\", obs.shape, obs.dtype)\n",
|
||
"print(\"Pixel value range:\", obs.min(), \"to\", obs.max())\n",
|
||
"print()\n",
|
||
"print(\"Action space:\", env.action_space)\n",
|
||
"print(\"Number of discrete actions:\", env.action_space.n)\n",
|
||
"print()\n",
|
||
"print(\"Info dict:\", info)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "77b997c8-f5f9-48ec-b769-4e4b81138e44",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 3:Visualize a few frames"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 28,
|
||
"id": "44f4a504-db59-4f41-93c5-7859ebf5cb09",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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9k//9E9200032Ve/+tWGaWvWrLF3vetdNnfuXOvs7LTZs2fbAQccYGZm69atG5rvox/9qN1///2233772cknn2xXXnmlPfbYY4XbNdLPmZktWrTIHnjggeQhZfbs2XbooYeamdmKFSuS+Q855JCGZRx66KG2efNmW7lyZVPrBIDJjvpidOqLwcFBe8Mb3mAPPvigfetb37K99967qc8BwERBfbHz9cXcuXPtpS99qb3uda+zz33uc/bKV77SzjrrLFu2bFlT2wuY0UcCAAAYZb29vbbXXnvZ/fff3zDt2UzTxx9/vGHahRdeaLfeequ9973vteOPP966u7utVqvZOeecY7VaLZnvtNNOs+9+97t244032jXXXGMf+chH7Dvf+Y69/OUvz92ukX7O7JkM02OOOcY+8YlPDDvdd+oGAGgO9cXo+NM//VP74Q9/aF/72teG/pIVACYT6ovR97rXvc7e//732/e//317+9vfPqbrwiSyu7OVAADA5PPWt741M7Ps17/+9bDTFy9enJlZds0112RZlmVr1qzJzCy76qqrkvkeffTRzMyyK664Inddy5cvz/bZZ5/slFNOKbWNw33ula985bAZpq94xSuyffbZJ6vVaoXLNbPsBS94QcP/v/71r8+mTp2aDQwMNL2N9JEAYLKjvti5+uI973lPZmbZpz71qcJ5AWAio74YneeLZ919992ZmWUf+chHSn8Wey6ijQAAwKi7/PLLberUqfaWt7zFli9f3jA9y7JkvKWlZdj//9SnPpWMDw4OJs2QzczmzJlje++9t23bti13e5r9XFdXV8N8Zs/8tdHTTz9tX/ziFxumbdmypSFf9LbbbktyV5988kn7/ve/b2efffbQdwUAUF/sTH1xzTXX2Mc+9jF73/veZ+9617vCeQFgoqO+GFl9sWrVqoZ9YGb2z//8z2ZmduKJJ+Z+FlBEGwEAgFF3yCGH2PXXX29/9Ed/ZIcddphddNFFdtxxx1mWZbZ48WK7/vrrrVqt2r777mtmZtOmTbPTTz/dPvrRj9qOHTtsn332sRtvvNEWL16cLHfDhg2277772ute9zo77rjjrLu7226++Wa744477OMf/3ju9jT7uRNOOMH+4z/+w/7qr/7KTjrpJOvu7rZXvepV9qY3vcm+8Y1v2KWXXmq33HKLnXLKKTY4OGgPP/ywfeMb37AbbrghuQk/+uij7WUve5m9853vtPb2drv22mvNzOyqq64q3Hc/+MEP7J577jEzsx07dti9995rV199tZmZnXfeeXbsscc2eRQAYPyjvhhZffHd737XLr/8cjvkkEPsiCOOaMgGP+uss2zu3LnNHQQAmACoL0ZWX3z1q1+1z3/+8/bqV7/aDjzwQNuwYYPdcMMNdtNNN9mrXvUqIvFQzu5qCgEAACa/3/3ud9mf/dmfZQcffHDW0dGRdXZ2Zocffnh26aWXZnfffXcy71NPPZW95jWvyfr6+rLe3t7sggsuyJYsWZI0Pd62bVv23ve+NzvuuOOynp6erKurKzvuuOOya6+9NtyOZj+3cePG7I1vfGPW19eXmVnSDHn79u3ZRz7ykeyoo47K2tvbs+nTp2cnnHBCdtVVV2Xr1q0bms/Msne84x3ZV7/61eyQQw7J2tvbs+c85znZLbfc0tQ+u/jiizMzG/bfdddd19QyAGCiob4oV19cccUVuXWFmTVd5wDAREN9Ua6+uOOOO7ILLrgg23///bP29vasq6sre+5zn5t94hOfyHbs2FH4ecCrZNkw7VsAAAAwIpVKxd7xjnfYZz7zmd29KQCAcYz6AgDQDOoLjBf0kQAAAAAAAAAAAHLxIgEAAAAAAAAAAOTiRQIAAAAAAAAAAMhFHwkAAAAAAAAAACAXLRIAAAAAAAAAAEAuXiQAAAAAAAAAAIBcvEiYRCqVil155ZVNzbtgwQJ785vfXHodjz/+uFUqFfvyl79cOO+iRYvs7LPPtt7eXqtUKva9732v9PrGs1e84hX2p3/6p7t7M8bM3/zN39jznve83b0ZADDmvvzlL1ulUrHHH398d28KAGCcoY4AADSD+gJ7Al4kjCPPFjp33nnnqCzv1ltvtSuvvNL6+/tHZXllXXzxxXbffffZBz/4QfvKV75iJ5544m7ZjrHwy1/+0m688Ub73//7f5f63I9//OOmX/aMpf/8z/+05z73udbR0WH777+/XXHFFTYwMJDM8+53v9vuuece+8///M/dtJUAMDFt377dPvShD9nhhx9uHR0dNnfuXDv33HPtqaeeKvzs5z73Obvgggts//33t0qlkvvS/0UvepFVKpVh/7W2to7yNwIAjLVm7s/zfPCDH7TzzjvP5s6dW/jHZU8//bRdeOGF1tfXZ9OmTbPzzz/fHnvssVH6FgCAsUZ9gd1pyu7eAIyeLVu22JQp9UN666232lVXXWVvfvObra+vL5n3kUcesWp17N4jbdmyxW677TZ7//vfb5dddtmYrWd3ueaaa+wlL3mJHXzwwaU+9+Mf/9g++9nP7taXCf/1X/9lr371q+1FL3qR/eM//qPdd999dvXVV9uKFSvsc5/73NB88+bNs/PPP98+9rGP2XnnnbfbthcAJpIdO3bYueeea7feeqv96Z/+qR177LG2du1a+/Wvf23r1q2zfffdN/z8Rz7yEduwYYOdfPLJtnTp0tz53v/+99tb3/rW5P82bdpkl156qZ199tmj8l0AALtGs/fnef7v//2/Nm/ePHvOc55jN9xwQ+58GzdutDPPPNPWrVtn73vf+6y1tdU++clP2hlnnGF33323zZw5czS/FgBglFFfYHfjRcIk0tHR0fS87e3tY7glZitXrjQza3iBMZxNmzZZV1fXmG7PaFqxYoX96Ec/ss9//vO7e1NG5D3veY8de+yxduONNw69eJo2bZp96EMfsne96112+OGHD8174YUX2gUXXGCPPfaYHXjggbtrkwFMAOO5LK/VarZ9+/ZS9eRIffKTn7Sf/exn9otf/MJOPvnk0p//2c9+NtQaobu7O3e+s846q+H/vvrVr5qZ2UUXXVR6vQAwlqgjYmXuz4ezePFiW7Bgga1atcpmz56dO9+1115rixYtsttvv91OOukkMzN7+ctfbkcffbR9/OMftw996EOj96UAYASoL2LUF9jdiDYa59785jdbd3e3Pf300/bqV7/auru7bfbs2fae97zHBgcHk3l9s6Qrr7zS3vve95qZ2QEHHDAUd/BsVpv2kbBmzRp7z3veY8ccc4x1d3fbtGnT7OUvf7ndc889pbf5yiuvtPnz55uZ2Xvf+16rVCq2YMGCoWmVSsUefPBBe+Mb32jTp0+3U0891czM7r33Xnvzm99sBx54oHV0dNi8efPsLW95i61evbph+ZVKxR599FH74z/+Y+vt7bXZs2fb3/7t31qWZfbkk0/a+eefb9OmTbN58+bZxz/+8YZt3LZtm11xxRV28MEHW3t7u+233352+eWX27Zt2wq/349+9CMbGBiwl770pcn/79ixw6666io75JBDrKOjw2bOnGmnnnqq3XTTTWb2zLH87Gc/a2aWRFA8q1ar2ac+9Sk76qijhqIw3v72t9vatWuT9SxYsMBe+cpX2o033mjHH3+8dXR02JFHHmnf+c53Crf9wQcftAcffNDe9ra3Ja1X/vzP/9yyLLNvfetbyfzPfsfvf//7hcsGsOeIyvKvfvWrdsIJJ1hnZ6fNmDHD3vCGN9iTTz459Nl/+Id/sJaWliR27+Mf/7hVKhX7q7/6q6H/GxwctJ6eniRC7mMf+5i98IUvtJkzZ1pnZ6edcMIJDeWW2TNl7GWXXWZf+9rX7KijjrL29nb77//+bzMze+CBB+zFL36xdXZ22r777mtXX3211Wq1UdkvtVrNPv3pT9trXvMaO/nkk21gYMA2b95cahnz589P6oYyrr/+euvq6rLzzz9/RJ8HgNFAHVFO2fvz4Tz7rFXkW9/6lp100klDPwqZmR1++OH2kpe8xL7xjW+U3nYA2BnUF+VQX2A8oEXCBDA4OGgve9nL7HnPe5597GMfs5tvvtk+/vGP20EHHWR/9md/NuxnXvva19qjjz5qX//61+2Tn/ykzZo1y8ws943jY489Zt/73vfsggsusAMOOMCWL19u//RP/2RnnHGGPfjgg7b33ns3vb2vfe1rra+vz/7yL//S/uiP/she8YpXNPxV5QUXXGCHHHKIfehDH7Isy8zM7KabbrLHHnvMLrnkEps3b5498MAD9oUvfMEeeOAB+9WvftXww8rrX/96O+KII+zDH/6w/ehHP7Krr77aZsyYYf/0T/9kL37xi+0jH/mIfe1rX7P3vOc9dtJJJ9npp59uZs/80HPeeefZL37xC3vb295mRxxxhN133332yU9+0h599NHCTqFvvfVWmzlz5tDLkmddeeWV9vd///f21re+1U4++WRbv3693Xnnnfbb3/7WzjrrLHv7299uS5YssZtuusm+8pWvNCz37W9/u335y1+2Sy65xN75znfa4sWL7TOf+Yzddddd9stf/jLJvF60aJG9/vWvt0svvdQuvvhiu+666+yCCy6w//7v/x72r1Sfddddd5mZNfRXsffee9u+++47NP1Zvb29dtBBB9kvf/lL+8u//MtwvwDY82hZ/sEPftD+9m//1i688EJ761vfaitXrrR//Md/tNNPP93uuusu6+vrs9NOO81qtZr94he/sFe+8pVmZrZw4UKrVqu2cOHCoWXfddddtnHjxqGy28zs05/+tJ133nl20UUX2fbt2+3f//3f7YILLrAf/vCHdu655ybb9j//8z/2jW98wy677DKbNWuWLViwwJYtW2ZnnnmmDQwM2N/8zd9YV1eXfeELX7DOzs6G77Zx40bbunVr4T5obW213t5eM3vm5n7JkiV27LHH2tve9jb713/9V9u+fbsdc8wx9ulPf9rOPPPMEe3nZqxcudJuuukme/3rXz9u/4oLwJ6FOiKtI/KUvT8fqVqtZvfee6+95S1vaZh28skn24033mgbNmywnp6eUVkfADSL+oL6AhNIhnHjuuuuy8wsu+OOO4b+7+KLL87MLPu7v/u7ZN7nPOc52QknnJD8n5llV1xxxdD4Nddck5lZtnjx4oZ1zZ8/P7v44ouHxrdu3ZoNDg4m8yxevDhrb29P1r148eLMzLLrrrsu/C7PznfNNdck/3/FFVdkZpb90R/9UcNnNm/e3PB/X//61zMzy37+8583LONtb3vb0P8NDAxk++67b1apVLIPf/jDQ/+/du3arLOzM/muX/nKV7JqtZotXLgwWdfnP//5zMyyX/7yl+F3O/XUUxv2fZZl2XHHHZede+654Wff8Y53ZMNddgsXLszMLPva176W/P9///d/N/z//PnzMzPLvv3tbw/937p167K99tore85znhOu/9lz4g9/+EPDtJNOOil7/vOf3/D/Z599dnbEEUeEywWwZxmuLH/88cezlpaW7IMf/GAy73333ZdNmTJl6P8HBwezadOmZZdffnmWZVlWq9WymTNnZhdccEHW0tKSbdiwIcuyLPvEJz6RVavVbO3atUPL0npi+/bt2dFHH529+MUvTv7fzLJqtZo98MADyf+/+93vzsws+/Wvfz30fytWrMh6e3sb6stn69+if2ecccbQZ77zne9kZpbNnDkzO+SQQ7Lrrrsuu+6667JDDjkka2try+65554m9/Azurq6kvor8o//+I+ZmWU//vGPS60DAEYbdcTwdUSekdyf51m5cmXDM6FO0+fKLMuyz372s5mZZQ8//HDT6wKAnUV9QX2BiYcWCRPEpZdemoyfdtppw/5V+0j5PhMGBwetv7/furu77bDDDrPf/va3o7aeZ+n3MbPk7e3WrVtt48aN9vznP9/MzH7729/aaaedlszvO5lsaWmxE0880Z566in7kz/5k6H/7+vrs8MOOyzpWf6b3/ymHXHEEXb44YfbqlWrhv7/xS9+sZmZ3XLLLfbCF74wd9tXr15t++yzT8P/9/X12QMPPGCLFi2yQw45JPfzw/nmN79pvb29dtZZZyXbdMIJJ1h3d7fdcsst9sY3vnHo//fee297zWteMzQ+bdo0+1//63/ZRz7yEVu2bJnNmzdv2PVs2bLFzIbvI6Ojo8PWr1/f8P/Tp08ftTfbACYXX5Z/5zvfsVqtZhdeeGFSjs2bN88OOeQQu+WWW+x973ufVatVe+ELX2g///nPzczsoYcestWrV9vf/M3f2Le//W277bbb7KyzzrKFCxfa0UcfnfS14+uJtWvX2uDgoJ122mn29a9/vWHbzjjjDDvyyCOT//vxj39sz3/+85O+C2bPnm0XXXSRXXvttcm8l19+uf3xH/9x4T6YPn360PDGjRvNzGzDhg1211132X777Wdmz9QvBx98sH30ox8d6sdgtF1//fU2e/bssFUaAOxK1BFpHZFnJPfnI1G0Hj8PAOxK1BfUF5g4eJEwAXR0dDREEk2fPr0hO39nPJvrfO2119rixYuT/hfGojf2Aw44oOH/1qxZY1dddZX9+7//u61YsSKZtm7duob5999//2S8t7fXOjo6hmKc/P/7fhYWLVpkDz30UG7Mk657ONn/H8fk/d3f/Z2df/75duihh9rRRx9t55xzjr3pTW+yY489tnB5ixYtsnXr1tmcOXOa2qaDDz64Ierp0EMPNTOzxx9/PPdFwrMV5nB9QWzdunXYpnhZlo04rxvA5ObL8kWLFlmWZbkvUn0822mnnWZXXnmlbdmyxRYuXGh77bWXPfe5z7XjjjvOFi5caGeddZb94he/sAsvvDBZxg9/+EO7+uqr7e67707KseHKqOHqmSeeeMKe97znNfz/YYcd1vB/Rx55ZMNDQ5Fny9BTTjll6CWC2TP11amnnmq33nprqeU167HHHrPbbrvNLrvssiQvFQB2J+qI1Jo1a2z79u1D452dndbb2zui+/ORKFqPnwcAdiXqixT1BcYznjYngJaWljFfx4c+9CH727/9W3vLW95iH/jAB2zGjBlWrVbt3e9+95h0GDNcoXPhhRfarbfeau9973vt+OOPt+7ubqvVanbOOecMuw3D7Ze8feV/+K/VanbMMcfYJz7xiWHn9T/+DGfmzJnDvsQ5/fTT7fe//719//vftxtvvNH++Z//2T75yU/a5z//+aT1xHBqtZrNmTPHvva1rw07Pe+lR1l77bWXmZktXbq04XsuXbo0eaP+rLVr1za8nAEAs7Qsr9VqVqlU7L/+67+GLYt9Xzmnnnqq7dixw2677TZbuHDhUIuz0047zRYuXGgPP/ywrVy5MmmJtnDhQjvvvPPs9NNPt2uvvdb22msva21tteuuu86uv/76cNtGYt26dU39pU1bW5vNmDHDzGyoP6G5c+c2zDdnzpwxa9317Pe/6KKLxmT5ADAS1BFpHfHa177Wfvaznw1Nu/jii+3LX/7yiO7PR2LGjBnW3t5uS5cubZj27P+V6RcPAEYL9QX1BSYOXiRMYmX+ivxb3/qWnXnmmfalL30p+f/+/v5d8iPy2rVr7Sc/+YldddVV9v/+v//v0P8vWrRo1Nd10EEH2T333GMveclLRvSX9ocffrh9+9vfHnbajBkz7JJLLrFLLrlkqEOfK6+8cuhFQt76DjroILv55pvtlFNOaaqi+t3vftfQUuDRRx81M7MFCxbkfu744483M7M777wzqWSWLFliTz31lL3tbW9r+MzixYvtuOOOK9wmAHu2gw46yLIsswMOOGCohVSek08+2dra2mzhwoW2cOFCe+9732tmz7yQ/eIXv2g/+clPhsaf9e1vf9s6OjrshhtuSJrZXnfddU1v4/z584etVx555JGG/3vXu95l//qv/1q4zDPOOMN++tOfmpnZMcccY62trfb00083zLdkyZJReymsrr/+ejvooIOG4gABYLyhjjD7+Mc/nvwx0rM/wozk/nwkqtWqHXPMMXbnnXc2TPv1r39tBx54IB1nAtjtqC+oLzC+VXf3BmDsdHV1mdkzLwOKtLS0NMT1fPOb3xz2x5Cx8OybZt2GT33qU6O+rgsvvNCefvpp++IXv9gwbcuWLbZp06bw8y94wQts7dq1Sb8LZpbEJ5k986b84IMPTpqD5R2TCy+80AYHB+0DH/hAw/oGBgYa5l+yZIl997vfHRpfv369/du//Zsdf/zxubFGZmZHHXWUHX744faFL3whia/63Oc+Z5VKxV73utcl869bt85+//vfh31GAIDZM38509LSYldddVVDWZ5lWVJGdnR02EknnWRf//rX7Q9/+EPy10Nbtmyxf/iHf7CDDjpo6K9uzJ6pJyqVSlJ2Pf744/a9732v6W18xSteYb/61a/s9ttvH/q/lStXDtsa7PLLL7ebbrqp8N/HP/7xoc/09PTYK17xCrv11lvt4YcfHvr/hx56yG699dak/4LNmzfbww8/nGS/jsRdd91lDz30UNKPDgCMN9QRz/R99tKXvnTo37NRF2Xuz9etW2cPP/zwsLGvzXjd615nd9xxR/Lj0COPPGL/8z//YxdccMGIlgkAo4n6gvoC4xstEiaxE044wczM3v/+99sb3vAGa21ttVe96lVDP2Z7r3zlK+3v/u7v7JJLLrEXvvCFdt9999nXvvY1O/DAA3fJtk6bNs1OP/10++hHP2o7duywffbZx2688UZbvHjxqK/rTW96k33jG9+wSy+91G655RY75ZRTbHBw0B5++GH7xje+YTfccIOdeOKJuZ8/99xzbcqUKXbzzTcnb3yPPPJIe9GLXmQnnHCCzZgxw+6880771re+ZZdddtnQPM8ek3e+8532spe9zFpaWuwNb3iDnXHGGfb2t7/d/v7v/97uvvtuO/vss621tdUWLVpk3/zmN+3Tn/50Uikceuih9id/8id2xx132Ny5c+1f/uVfbPny5U29Rb/mmmvsvPPOs7PPPtve8IY32P3332+f+cxn7K1vfasdccQRybw333yzZVlm559/ftP7F8Ce6aCDDrKrr77a/s//+T/2+OOP26tf/Wrr6emxxYsX23e/+11729veZu95z3uG5j/ttNPswx/+sPX29toxxxxjZs/E/xx22GH2yCOP2Jvf/OZk+eeee6594hOfsHPOOcfe+MY32ooVK+yzn/2sHXzwwXbvvfc2tY2XX365feUrX7FzzjnH3vWud1lXV5d94QtfsPnz5zcsYyR5pmbPRAX+5Cc/sRe/+MX2zne+08zM/uEf/sFmzJhh73vf+4bmu/322+3MM8+0K664wq688sqh///BD35g99xzj5mZ7dixw+699167+uqrzczsvPPOa+h359kHFmKNAIxn1BGxZu/Pv/vd79oll1xi1113XbIPvvKVr9gTTzxhmzdvNjOzn//850N1x5ve9CabP3++mZn9+Z//uX3xi1+0c889197znvdYa2urfeITn7C5c+faX//1X4/a9wGAkaK+iFFfYLfLMG5cd911mZlld9xxx9D/XXzxxVlXV1fDvFdccUWmh8/MsiuuuCL5vw984APZPvvsk1Wr1czMssWLF2dZlmXz58/PLr744qH5tm7dmv31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",
|
||
"text/plain": [
|
||
"<Figure size 1600x400 with 4 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig, axes = plt.subplots(1, 4, figsize=(16, 4))\n",
|
||
"\n",
|
||
"obs, _ = env.reset(seed=0)\n",
|
||
"axes[0].imshow(obs)\n",
|
||
"axes[0].set_title(\"Initial frame (step 0)\")\n",
|
||
"axes[0].axis(\"off\")\n",
|
||
"\n",
|
||
"# Press the gas action 3 times in a row\n",
|
||
"for i, action in enumerate([3, 3, 3]):\n",
|
||
" obs, reward, terminated, truncated, _ = env.step(action)\n",
|
||
" axes[i + 1].imshow(obs)\n",
|
||
" axes[i + 1].set_title(f\"Gas step {i + 1}\\nreward={reward:.2f}\")\n",
|
||
" axes[i + 1].axis(\"off\")\n",
|
||
"\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "33bcbb11-d1aa-4a5e-9fab-c0cc90631671",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 4: Random Strategy baseline (1 episode)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 32,
|
||
"id": "e42c181b-3b2a-4c3f-9a53-bbd64d46e343",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Random policy, 1 episode:\n",
|
||
" steps = 1000\n",
|
||
" total reward = -59.25\n",
|
||
" terminated = False, truncated = True\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"obs, _ = env.reset(seed=0)\n",
|
||
"total_reward = 0.0\n",
|
||
"steps = 0\n",
|
||
"done = False\n",
|
||
"\n",
|
||
"while not done:\n",
|
||
" action = env.action_space.sample()\n",
|
||
" obs, reward, term, trunc, _ = env.step(action)\n",
|
||
" total_reward += reward\n",
|
||
" steps += 1\n",
|
||
" done = term or trunc\n",
|
||
"\n",
|
||
"print(\"Random policy, 1 episode:\")\n",
|
||
"print(f\" steps = {steps}\")\n",
|
||
"print(f\" total reward = {total_reward:.2f}\")\n",
|
||
"print(f\" terminated = {term}, truncated = {trunc}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6ca4ebb2-56eb-41a4-81e5-dc307d22c2a3",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 5 : Calculate the average of the five episodes"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 35,
|
||
"id": "d3198496-dbea-4a10-8152-ad9fe6fbb75b",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Episode 0: return = -52.98\n",
|
||
"Episode 1: return = -52.73\n",
|
||
"Episode 2: return = -64.18\n",
|
||
"Episode 3: return = -48.34\n",
|
||
"Episode 4: return = -52.73\n",
|
||
"\n",
|
||
"Random policy mean over 5 episodes: -54.19 +/- 5.29\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"returns = []\n",
|
||
"for ep in range(5):\n",
|
||
" obs, _ = env.reset(seed=ep)\n",
|
||
" total_r = 0.0\n",
|
||
" done = False\n",
|
||
" while not done:\n",
|
||
" action = env.action_space.sample()\n",
|
||
" obs, r, term, trunc, _ = env.step(action)\n",
|
||
" total_r += r\n",
|
||
" done = term or trunc\n",
|
||
" returns.append(total_r)\n",
|
||
" print(f\"Episode {ep}: return = {total_r:.2f}\")\n",
|
||
"\n",
|
||
"print(f\"\\nRandom policy mean over 5 episodes: \"\n",
|
||
" f\"{np.mean(returns):.2f} +/- {np.std(returns):.2f}\")\n",
|
||
"\n",
|
||
"env.close()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9856d21e-685e-49da-acca-01b1f4e73e64",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 6 :Summary\n",
|
||
"- **State**: (96, 96, 3) uint8 RGB top-down view of the track.\n",
|
||
"- **Action**: `Discrete(5)` — `0=noop, 1=left, 2=right, 3=gas, 4=brake`.\n",
|
||
"- **Reward**: `+1000/N` for each newly visited tile (N = total tiles), `-0.1` per frame.\n",
|
||
"- **Random policy baseline**: roughly `-60` to `+30` (mean ~ `-30`).\n",
|
||
"- **Goal**: train PPO to consistently reach `600+`."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ffc7f3db-bb34-449c-b330-710f25300a03",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 7: Test the wrapped env"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "d0c7dda9-d5ce-452b-b9ca-3990fbe789ed",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Wrapped observation space: Box(0, 255, (4, 84, 84), uint8)\n",
|
||
"Wrapped observation shape: (4, 84, 84) uint8\n",
|
||
"Wrapped action space: Discrete(5)\n",
|
||
"Pixel range: 0 to 174\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Reload the kernel? If sys.path doesn't include the project root, do this once:\n",
|
||
"import sys\n",
|
||
"from pathlib import Path\n",
|
||
"project_root = Path.cwd().parent\n",
|
||
"if str(project_root) not in sys.path:\n",
|
||
" sys.path.insert(0, str(project_root))\n",
|
||
"\n",
|
||
"from src.env_wrappers import make_env\n",
|
||
"\n",
|
||
"wrapped = make_env(seed=42)\n",
|
||
"obs, info = wrapped.reset(seed=42)\n",
|
||
"\n",
|
||
"print(\"Wrapped observation space:\", wrapped.observation_space)\n",
|
||
"print(\"Wrapped observation shape:\", obs.shape, obs.dtype)\n",
|
||
"print(\"Wrapped action space:\", wrapped.action_space)\n",
|
||
"print(\"Pixel range:\", obs.min(), \"to\", obs.max())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "bf51239d-ae75-4ed0-b82e-cad7f385f202",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 8: Visualize stacked frames"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"id": "07648c9a-09e9-433b-8e7e-c1bd296c5973",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABicAAAGZCAYAAADioeLHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbaElEQVR4nO3debAlV30f8DMazfJm3jKLZtOMNFrQhsAQyyALYwQJi0ECY1sCUpUgRIhVjiElBwXHTgxhd3DZMYHEmCqX2EMigYlcCU6sWDgyCIJtgRGgIGOJsAmhkWZ5M++92W7+UGmi/vVhul+rb9/t86miinOn77397u17ft336P6+K3q9Xi8BAAAAAAB05JRB7wAAAAAAADBZLE4AAAAAAACdsjgBAAAAAAB0yuIEAAAAAADQKYsTAAAAAABApyxOAAAAAAAAnbI4AQAAAAAAdMriBAAAAAAA0CmLEwAAAAAAQKcsTjAUPvOZz6QVK1akm2++ua/Pc9ZZZ6VXvepVldvNz8+n17zmNWn79u1pxYoV6frrr+/rfgFQj3oBQF1qBgB1qBcwOBYnJthXvvKVdNVVV6Xdu3entWvXpp07d6bnPe956T3veU9hu3e84x3pU5/61GB2ckDe8Y53pA984APpl37pl9KHP/zh9A//4T8c9C61ZmlpKf3qr/5qOv3009PU1FS69NJL05/8yZ8MereAIaZe/GjjWi/m5+fTm970pvQzP/MzadOmTWnFihXpAx/4wKB3CxgBasaPNq4144tf/GJ67Wtfmy6++OK0fv36dOaZZ6aXvexl6Rvf+Magdw0YYurFjzau9eKrX/1quvrqq9M555yT1q1bl0477bT0rGc9K/3RH/3RoHeNATp10DvAYHzuc59Lz3nOc9KZZ56Z/vE//sdp+/bt6dvf/nb6/Oc/n9797nen173udSe2fcc73pGuuuqq9NKXvnRwO9yxP/3TP00/+ZM/md70pjcNelda96pXvSrdfPPN6frrr0/nnXde+sAHPpBe9KIXpdtuuy0985nPHPTuAUNGvTi5ca0XDz74YHrLW96SzjzzzPSUpzwlfeYznxn0LgEjQM04uXGtGf/m3/yb9NnPfjZdffXV6cd+7MfS/fffn9773vemH//xH0+f//zn05Oe9KRB7yIwZNSLkxvXevGtb30rHThwIF1zzTXp9NNPT4cOHUqf+MQn0kte8pL0+7//++kXf/EXB72LDIDFiQn19re/Pc3NzaUvfvGLacOGDYV/e+CBBwazU0PkgQceSE984hMrt1tcXEyrV69Op5wyGj9C+t//+3+nj3/84+m3fuu30g033JBSSumVr3xletKTnpTe8IY3pM997nMD3kNg2KgXJzeu9WLHjh3p+9//ftq+fXv6i7/4i/S0pz1t0LsEjAA14+TGtWb8s3/2z9LHPvaxtHr16hO3vfzlL09PfvKT02/+5m+mj3zkIwPcO2AYqRcnN6714kUvelF60YteVLjtta99bbrkkkvS7/zO71icmFCjcfTSum9+85vp4osvLhWBlFLaunXrif+/YsWKdPDgwfTBD34wrVixIq1YseJEf7xvfetb6Z/8k3+SLrjggjQ1NZU2b96crr766nTfffeVHnPv3r3pV37lV9JZZ52V1qxZk3bt2pVe+cpXpgcffPBH7uPS0lK68sor09zc3IkvzY8fP55+93d/N1188cVp7dq1adu2bem6665LDz/8cOG+vV4vve1tb0u7du1K69atS895znPSV7/61crX5dE+g/fee2/6r//1v574m++7774T//bxj388/at/9a/Szp0707p169L+/fvTQw89lG644Yb05Cc/OU1PT6fZ2dn0whe+MH35y1/OPv5//s//Ob35zW9OO3fuTDMzM+mqq65K+/btS0tLS+n6669PW7duTdPT0+naa69NS0tLpf38yEc+ki655JI0NTWVNm3alF7xilekb3/725V/380335xWrlxZmPDXrl2b/tE/+kfpjjvuqPUYwGRRL/LGvV6sWbMmbd++vXI7gMdSM/LGvWY84xnPKCxMpJTSeeedly6++OL09a9/vfL+wORRL/LGvV7krFy5Mp1xxhlp7969je7P6PPLiQm1e/fudMcdd6S77rrrpD+z/fCHP5xe85rXpKc//eknvtA+99xzU0qP9Bb93Oc+l17xilekXbt2pfvuuy/93u/9Xnr2s5+dvva1r6V169allB7pW/3TP/3T6etf/3p69atfnX78x388Pfjgg+mWW25J3/nOd9Jpp51Wet6FhYX0sz/7s+kv/uIv0q233nriv9i87rrr0gc+8IF07bXXpn/6T/9puvfee9N73/vedOedd6bPfvazadWqVSmllN74xjemt73tbSdWZf/qr/4qPf/5z0+HDx8+6ety0UUXpQ9/+MPpV37lV9KuXbvS61//+pRSSlu2bDlR4N761rem1atXpxtuuCEtLS2l1atXp6997WvpU5/6VLr66qvT2WefnX7wgx+k3//930+XX355+trXvpZOP/30wvO8853vTFNTU+lf/It/kf7mb/4mvec970mrVq1Kp5xySnr44YfTv/7X/zp9/vOfTx/4wAfS2Wefnd74xjeeuO/b3/729Bu/8RvpZS97WXrNa16TfvjDH6b3vOc96VnPela68847s8X9UXfeeWc6//zz0+zsbOH2pz/96SmllL70pS+lM84446SvETBZ1Iu8ca8XAE2oGXmTWDN6vV76wQ9+kC6++OJl3Q+YDOpF3qTUi4MHD6aFhYW0b9++dMstt6RPf/rT6eUvf3nl/RhTPSbS//gf/6O3cuXK3sqVK3uXXXZZ7w1veEPvv//3/947fPhwadv169f3rrnmmtLthw4dKt12xx139FJKvQ996EMnbnvjG9/YSyn1PvnJT5a2P378eK/X6/Vuu+22Xkqpd9NNN/UOHDjQu/zyy3unnXZa78477zyx7e23395LKfU++tGPFh7jj//4jwu3P/DAA73Vq1f3rrjiihOP3+v1er/+67/eSyll/5Zo9+7dvSuuuKJw26P7eM4555T+9sXFxd6xY8cKt9177729NWvW9N7ylreUHuNJT3pS4bX++3//7/dWrFjRe+ELX1h4jMsuu6y3e/fuE+P77ruvt3Llyt7b3/72wnZf+cpXeqeeemrp9ujiiy/u/d2/+3dLt3/1q1/tpZR673vf+056f2DyqBcnN6714rG++MUv9lJKvRtvvLH2fYDJpGac3CTUjEd9+MMf7qWUen/wB3+w7PsC40+9OLlxrxfXXXddL6XUSyn1TjnllN5VV13Ve+ihh2rdl/GjrdOEet7znpfuuOOO9JKXvCR9+ctfTu9617vSC17wgrRz5850yy231HqMqampE///yJEjac+ePekJT3hC2rBhQ/qrv/qrE//2iU98Ij3lKU9JP/dzP1d6jBUrVhTG+/btS89//vPT3XffnT7zmc+kpz71qSf+7aabbkpzc3Ppec97XnrwwQdP/O+SSy5J09PT6bbbbksppXTrrbemw4cPp9e97nWFx7/++utr/V1VrrnmmsLfntIj7S8e7fF37NixtGfPnjQ9PZ0uuOCCwmvxqFe+8pUnVtRTSunSSy9NvV4vvfrVry5sd+mll6Zvf/vb6ejRoymllD75yU+m48ePp5e97GWF12D79u3pvPPOO/Ea/CgLCwtpzZo1pdvXrl174t8BHku9aG6U6wVAE2pGc+NUM+6+++70y7/8y+myyy5L11xzzbLuC0wG9aK5cagX119/ffqTP/mT9MEPfjC98IUvTMeOHav8VQnjS1unCfa0pz0tffKTn0yHDx9OX/7yl9Mf/uEfpn/7b/9tuuqqq9KXvvSlyvCdhYWF9M53vjPdeOON6bvf/W7q9Xon/m3fvn0n/v83v/nN9Au/8Au19un6669Pi4uL6c477yz9BPiee+5J+/btK/QffKxHQ5O+9a1vpZQe6XP6WFu2bEkbN26stR8nc/bZZ5duO378eHr3u9+d/sN/+A/p3nvvTceOHTvxb5s3by5tf+aZZxbGc3NzKaVUaqk0NzeXjh8/nvbt25c2b96c7rnnntTr9Up/26MeW1xypqamsv0CFxcXT/w7QKReNDPK9QKgKTWjmXGpGffff3+64oor0tzc3Im8O4Ac9aKZcagXF154YbrwwgtTSo8slDz/+c9PL37xi9MXvvCF0oIR48/iBGn16tXpaU97Wnra056Wzj///HTttdemm266Kb3pTW866f1e97rXpRtvvDFdf/316bLLLktzc3NpxYoV6RWveEU6fvx4o3352Z/92fTxj388/eZv/mb60Ic+dGLlN6VHJtutW7emj370o9n7btmypdFzLlfuC/x3vOMd6Td+4zfSq1/96vTWt741bdq0KZ1yyinp+uuvz74WP+ok/Ufd/miRPX78eFqxYkX69Kc/nd12enr6pPu+Y8eO9N3vfrd0+/e///2UUir1IQR4LPVieUa5XgA8XmrG8oxDzdi3b1964QtfmPbu3Ztuv/121xZALerF8oxDvYiuuuqqdN1116VvfOMb6YILLmj0GIwuixMU/MRP/ERK6f9/WZ1S+Wduj7r55pvTNddck377t3/7xG2Li4tp7969he3OPffcdNddd9V6/pe+9KXp+c9/fnrVq16VZmZm0u/93u8VHufWW29NP/VTP3XS/8J/9+7dKaVHVrXPOeecE7f/8Ic/TA8//HCt/Vium2++OT3nOc9Jf/AHf1C4fe/evdlwpabOPffc1Ov10tlnn53OP//8Zd//qU99arrtttvS/v37C6HYX/jCF078O0Ad6kUzo1IvANqkZjQzSjVjcXExvfjFL07f+MY30q233lr5XzwD5KgXzYxSvch5tMX4Y3/xwuSQOTGhbrvttsJP3h713/7bf0sppcJK5fr160uTe0qPrKjGx3jPe95T+PlYSin9wi/8womf6EW5fXjlK1+Z/t2/+3fpfe97X/rVX/3VE7e/7GUvS8eOHUtvfetbS/c5evToiX187nOfm1atWpXe8573FB7/d3/3d0v3a0vutbjpppuyv1J4PH7+538+rVy5Mr35zW8uPV+v10t79uw56f2vuuqqdOzYsfT+97//xG1LS0vpxhtvTJdeemnpJ3wA6kW7RqVeADShZrRrVGrGsWPH0stf/vJ0xx13pJtuuilddtllre4fMH7Ui3aNSr14tPXVYx05ciR96EMfSlNTUxa2J5RfTkyo173udenQoUPp537u59KFF16YDh8+nD73uc+l//Sf/lM666yz0rXXXnti20suuSTdeuut6Xd+53fS6aefns4+++x06aWXpiuvvDJ9+MMfTnNzc+mJT3xiuuOOO9Ktt95a6mf3z//5P08333xzuvrqq9OrX/3qdMkll6SHHnoo3XLLLel973tfespTnlLav9e+9rVp//796V/+y3+Z5ubm0q//+q+nyy+/PF133XXpne98Z/rSl76Unv/856dVq1ale+65J910003p3e9+d7rqqqvSli1b0g033JDe+c53piuvvDK96EUvSnfeeWf69Kc/3eqK8WNdeeWV6S1veUu69tpr0zOe8Yz0la98JX30ox8trJK34dxzz01ve9vb0q/92q+l++67L730pS9NMzMz6d57701/+Id/mH7xF38x3XDDDT/y/pdeemm6+uqr06/92q+lBx54ID3hCU9IH/zgB9N9991XWmEHSEm9aNuo1IuUUnrve9+b9u7dm773ve+llFL6oz/6o/Sd73wnpfTIcfFob1qAR6kZ7RqVmvH6178+3XLLLenFL35xeuihh9JHPvKRwr//g3/wD1rdX2D0qRftGpV6cd1116X9+/enZz3rWWnnzp3p/vvvTx/96EfT3XffnX77t39b69lJ1WMiffrTn+69+tWv7l144YW96enp3urVq3tPeMITeq973et6P/jBDwrb3n333b1nPetZvampqV5KqXfNNdf0er1e7+GHH+5de+21vdNO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",
|
||
"text/plain": [
|
||
"<Figure size 1600x400 with 4 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"import matplotlib.pyplot as plt\n",
|
||
"\n",
|
||
"# Show the 4 stacked frames side by side\n",
|
||
"fig, axes = plt.subplots(1, 4, figsize=(16, 4))\n",
|
||
"for i in range(4):\n",
|
||
" axes[i].imshow(obs[i], cmap=\"gray\")\n",
|
||
" axes[i].set_title(f\"Stacked frame {i}\")\n",
|
||
" axes[i].axis(\"off\")\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5037827a-8d11-46d2-91e2-47c101806f2d",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 9: After a few skipped steps, frames should differ"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "e44d97ed-54bd-42b5-ad85-b4b42f2c31b3",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABicAAAGZCAYAAADioeLHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTu0lEQVR4nO3de9QkdX0n/u8MM/M8z1xgBpkRFRxuKjdNFA3gekEhuIAaE93oxnjZbMgedxddA5usuQgkZg/IWUkEJCpnxZDJgptg4m7iJQqs8XKWqCvxEnME5SoBHB2Yy3MZZur3x/xmpD79nemanurqrq7X6xzP8dvT/XQ9VdXfT1V/eT7vRUVRFAkAAAAAAKAhi0e9AQAAAAAAQLdYnAAAAAAAABplcQIAAAAAAGiUxQkAAAAAAKBRFicAAAAAAIBGWZwAAAAAAAAaZXECAAAAAABolMUJAAAAAACgURYnAAAAAACARlmcmCA33HBDOv7449PSpUvT6tWrR705Y+Ooo45Kb33rW0e9GSWOFTBK5qA89QKgzByUp14A9DIP5akZsG8WJ1riAx/4QFq0aFE69dRTs//+ne98J731rW9Nxx57bPrwhz+cPvShD6Vt27alSy65JN12223Nbiz7lDtWk+QTn/hEet7znpemp6fT05/+9HTxxRenxx9/fNSbBZ2hXkyOSa4XN910U/rlX/7l9IxnPCMtWrQonXHGGaPeJOgc9WJyTGq92LhxY7riiivSS17ykrR27dq0evXqdNppp6Wbbrpp1JsGnaNmTI5JrRkppfTOd74zPe95z0uHHnpoWr58eTrhhBPSJZdckrZs2TLqTWMflox6A6hmw4YN6aijjkq33357uvPOO9Nxxx1X+vfbbrst7dy5M/3RH/3Rnn/74Q9/mC699NKUUur0Tf8//dM/pcWLx2cdLnesJsUnP/nJ9JrXvCadccYZ6aqrrkrf+MY30nve85708MMPp2uvvXbUmwedoF4MTr1ozrXXXpu++tWvphe84AVp48aNo94c6CT1YnDqRTO+/OUvp9/+7d9O5557bvqd3/mdtGTJkvQXf/EX6Q1veEP69re/vedcBIZPzRicmtGcv//7v08vfvGL07/5N/8mTU9Pp//3//5fuuyyy9JnP/vZ9PnPf36sjgM/4ai0wPe///30pS99Kb3vfe9La9euTRs2bOh5zsMPP5xSSo38OdbWrVuH/h51mpqaSkuXLh31ZuxR9VgVRZFmZ2cb2KL6XHTRRek5z3lO+sxnPpPOP//89P73vz+9613vSh/84AfTd77znVFvHkw89eLAqBfNueGGG9Kjjz6abrnllvTUpz511JsDnaNeHBj1ohknnXRS+u53v5v+8i//Mr3jHe9I/+E//If0uc99Lr385S9Pl19+eevOG2grNePAqBnN+cIXvpD+6I/+KF1wwQXp/PPPTx/4wAfSH/zBH6QvfvGL6fbbbx/15rE3BWPv93//94s1a9YU8/Pzxdve9rbiGc94Runf169fX6SUSv97y1ve0vNYSqm4+OKL97zuH//xH4vXvva1xZo1a4qpqanilFNOKf7qr/6q9LM/8pGPFCml4rbbbive9ra3FWvXri1Wr16912299dZbi5RScdNNNxWXXHJJ8dSnPrVYuXJl8drXvrbYtGlTMTc3V7zjHe8o1q5dW6xYsaJ461vfWszNzZV+xvbt24vf+73fK4455phi2bJlxfr164t3vetdpeedd955xdFHH53dhtNOO6045ZRTSvvnLW95S8/v9IUvfKF45zvfWRx22GHF8uXLi9e85jXFww8/XPpZO3bsKC6++OLiKU95SjEzM1OcccYZxbe+9a2en1lV7ljtPibr168vzjvvvOJTn/pUccoppxRTU1PFlVdeWRRFUfz3//7fi5e97GXF2rVri2XLlhUnnHBC8YEPfCD7888777zi1ltvLU455ZRienq6OPnkk4tbb721KIqi+Iu/+Ivi5JNPLqampornPe95xde+9rWen1HlvMj51re+VaSUimuuuab0+AMPPFCklIrf//3f37+dBew39UK9aEO9iE466aTipS996X6/DhiceqFetLFe7Pb+97+/SCkV//AP/zDwzwCqUzPUjDbXjD//8z8vUkrFJz/5yYF/BsNlcaIFjj/++OLf/tt/WxRFUXz+858vUkrF7bffvuffP/7xjxc///M/X6SUimuvvba44YYbiq9//evFtddeW6SUip//+Z8vbrjhhuKGG24o7rjjjqIoiuKb3/xmccghhxQnnnhicfnllxdXX3118ZKXvKRYtGhRcfPNN+/52bsnzRNPPLF46UtfWlx11VXFZZddttdt3V0Ifvqnf7o4/fTTi/e///3F29/+9mLRokXFG97whuKXfumXinPOOae45pprije96U1FSqm49NJLSz9jdxF73eteV1xzzTXFm9/85iKlVLzmNa/Z85w/+ZM/6dkPRVEUd999d5FSKq644oo9j+2tEDz3uc8tXv7ylxdXXXVVceGFFxYHHXRQ8Yu/+Iuln/cbv/EbRUqpeNWrXlVcffXVxfnnn18cccQRxWGHHTZQIcgdq93HZP369cVxxx1XrFmzpvgv/+W/FH/8x3+8ZwJ/wQteULz1rW8trrzyyuKqq64qzj777CKlVFx99dWln79+/friWc96VvGUpzyluOSSS4orr7yyeNrTnlasXLmy+NM//dPi6U9/enHZZZcVl112WXHIIYcUxx13XLFjx449r696XuT86Z/+aZFSKv7v//2/Pf92xBFHFL/wC7+w3/sL2D/qhXrRhnoRWZyA5qkX6kUb68Vuv/Vbv1WklIof/OAHA70e2D9qhprRppqxffv24pFHHikeeOCB4tOf/nRx/PHHF6tWrSo2bty43/uLZlicGHNf+cpXipRS8bd/+7dFURTFzp07iyOOOKJ4xzveUXrexRdfXKSUikceeWTPY4888kjPyvRuZ555ZvHsZz+7tPK7c+fO4oUvfGFpFXz3pPmiF72oePzxx/tu7+5CcPLJJxcLCwt7Hv/X//pfF4sWLSrOOeec0vNPP/30Yv369XvGX//614uUUvGrv/qrpedddNFFRUqpuOWWW4qiKIpHH320mJqaKi688MLS89773vcWixYtKu655549j+2tEJx11lnFzp079zz+zne+szjooIOKTZs2FUVRFP/8z/9cLFmypFSAiqIoLrnkkj3/JcAgcsdq93amlIpPfepTPa/Ztm1bz2OveMUrimOOOSb7M770pS/teezTn/50kVIqZmZmSvvlgx/8YJFS2lNsiqL6eZFzxRVXFCml4t577+35txe84AXFaaedts/XAwdGvdhFvRj/ehFZnIBmqRe7qBftqxdFURQbN24s1q1bV7z4xS/e79cC+0/N2EXNaE/N+PKXv1z6y5BnPetZpfdg/MicGHMbNmxIT37yk9PLXvaylFJKixYtSq9//evTjTfemHbs2DHQz/zRj36UbrnllvSLv/iLafPmzemHP/xh+uEPf5g2btyYXvGKV6Tvfve76YEHHii95vzzz08HHXRQ5fd485vfXOqpd+qpp6aiKNKv/MqvlJ536qmnpvvuuy89/vjjKaWU/uZv/iallNKv//qvl5534YUXppRS+uu//uuUUkoHH3xwOuecc9LHPvaxVBTFnufddNNN6bTTTktPf/rT+27jr/3ar6VFixbtGb/4xS9OO3bsSPfcc09KKaXPfe5z6fHHH0///t//+9LrLrjggr4/e1BHH310esUrXtHz+MzMzJ7//+ijj6Yf/vCH6aUvfWn63ve+lx599NHSc0888cR0+umn7xmfeuqpKaWUXv7yl5f2y+7Hv/e976WUBjsvnmh3L8Kpqamef5uenm5dr0JoG/ViF/Vi/OsFMFrqxS7qRfvqxc6dO9Mb3/jGtGnTpnTVVVdVfh0wODVjFzWjPTXjxBNPTH/7t3+b/vIv/zL9xm/8RlqxYkXasmXLfuwFmmZxYozt2LEj3XjjjellL3tZ+v73v5/uvPPOdOedd6ZTTz01PfTQQ+lzn/vcQD/3zjvvTEVRpN/93d9Na9euLf3v4osvTin9JCBnt6OPPnq/3iNOxIccckhKKaUjjzyy5/GdO3fumczuueeetHjx4nTccceVnnf44Yen1atX75mkU0rp9a9/fbrvvvvSl7/85ZRSSnfddVf66le/ml7/+tcPtI1r1qxJKaX04x//eM+2pJR6tuXQQw/d89y67W0/f/GLX0xnnXVWWrFiRVq9enVau3Zt+q3f+q2UUuopBPuz71P6ye87yHnxRLuL1fz8fM+/zc3NlYoZUC/14ifUi/GvF8DoqBc/oV60r15ccMEF6VOf+lS67rrr0k/91E9Vfh0wGDXjJ9SM9tSMgw8+OJ111lnp537u59Lll1+eLrzwwvRzP/dz6Y477uj7WkZjyag3gL275ZZb0oMPPphuvPHGdOONN/b8+4YNG9LZZ5+93z93586dKaWULrroouyKaEq9k9/+frG8txXtvT3+xJXmlFJp9XhvXvWqV6Xly5enj33sY+mFL3xh+tjHPpYWL16c/tW/+lcHtI1xW5qU28933XVXOvPMM9Pxxx+f3ve+96UjjzwyLVu2LP3N3/xNuvLKK/ccz90G3feDnBdP9JSnPCWllNKDDz7YU3QefPDB9DM/8zN7fS1wYNSLfVMvxqteAKOjXuybejG+9eLSSy9NH/jAB9Jll12W3vSmN1V6DXBg1Ix9UzPGt2Y80S/8wi+kN73pTenGG2+0sD2mLE6MsQ0bNqR169ala665puffbr755vTxj388/fEf//FeJ+m9TabHHHNMSimlpUuXprPOOqu+Da7B+vXr086dO9N3v/vddMIJJ+x5/KGHHkqbNm1K69ev3/PYihUr0itf+cr0P//n/0zve9/70k033ZRe/OIXp6c+9am1bUtKu1Zvn7h6vHHjxj0ru034X//rf6X5+fn0iU98orQCfeutt9b6Pgd6Xvz0T/90Simlr3zlK6WFiB/84Afp/vvvT7/2a79Wy3YCvdQL9SKl9tQLYHTUC/UipfbVi2uuuSZdcskl6T/9p/+UfvM3f7OuzQP6UDPUjJTaVzOi+fn50l/HMH60dRpTs7Oz6eabb06vfOUr0+te97qe//3H//gf0+bNm9MnPvGJvf6M5cuXp5RS2rRpU+nxdevWpTPOOCN98IMfTA8++GDP6x555JFaf5f9ce6556aUUvrDP/zD0uPve9/7UkopnXfeeaXHX//616cf/OAH6brrrkt33HFH5T+fq+LMM89MS5YsSddee23p8auvvrq296hi9+ryE1fPH3300fSRj3yk1vc50PPipJNOSscff3z60Ic+VOo9ee2116ZFixal173udbVuL7CLevGHpcfVi/GvF8BoqBd/WHpcvWhHvbjpppvS29/+9vTGN75xzzEDhk/N+MPS42rG+NeMTZs2pe3bt/c8ft1116WUUnr+859fz4ZSO385MaY+8YlPpM2bN6dXv/rV2X8/7bTT0tq1a9OGDRv2OvnNzMykE088Md10003pmc98Zjr00EPTySefnE4++eR0zTXXpBe96EXp2c9+djr//PPTMccckx566KH05S9/Od1///0j68X2Uz/1U+ktb3lL+tCHPpQ2bdqUXvrSl6bbb789ffSjH02vec1r9oQw7XbuueemVatWpYsuuigddNBB6bWvfW1t2/LkJz85veMd70j/7b/9t/TqV786/ct/+S/THXfckT75yU+mww47rOe/AjjqqKNSSindfffdtW1DSimdffbZadmyZelVr3pV+nf/7t+lLVu2pA9/+MNp3bp12Qn7QBzoeXHFFVekV7/61enss89Ob3jDG9I3v/nNdPXVV6df/dVfLf1XB0B91Av1Yrc21YvPf/7z6fOf/3xKadeNxtatW9N73vOelFJKL3nJS9JLXvKSWrcXUC/Ui59oS724/fbb05vf/Ob0pCc9KZ155plpw4YNpX9/4QtfuOe/tAXqpWaoGbu1pWbcdttt6e1vf3t63etel57xjGekhYWF9Hd/93fp5ptvTs9//vPTL//yL9e6rdTH4sSY2rBhQ5qenk4/+7M/m/33xYsXp/POOy9t2LAhbdy4ca8/57rrrksXXHBBeuc735kWFhbSxRdfnE4++eR04oknpq985Svp0ksvTddff33auHFjWrduXXruc5+b3v3udw/r16rkuuuuS8ccc0y6/vrr08c//vF0+OGHp3e96117AnCeaHp6Or361a9OGzZsSGeddVZat25drdty+eWXp+XLl6cPf/jD6bOf/Ww6/fTT02c+85n0ohe9KE1PT5eeu3Xr1qH02H7Ws56V/vzP/zz9zu/8TrrooovS4Ycfnt72treltWvXpl/5lV+p9b0O9Lx45StfmW6++eZ06aWXpgsuuGBPSNKozymYZOqFerFbm+rFLbfcki699NLSY7/7u7+bUkrp4osvtjgBQ6BeqBe7taVefPvb304LCwvpkUceyW7XRz7yEYsTMCRqhpqxW1tqxrOf/ez0spe9LP3VX/1VevDBB1NRFOnYY49N7373u9N//s//OS1btqzWbaU+i4pRJq1AC23atCmtWbMmvec970m//du/nVLadeF80kknpf/9v/93z5/5AdBN6gUAVagXAFSlZjBpZE7APszOzvY8trv34BlnnLHnsVtvvTWdfvrpigBAR6kXAFShXgBQlZpBF/jLCdiH66+/Pl1//fXp3HPPTStXrkxf+MIX0v/4H/8jnX322enTn/70qDcPgDGhXgBQhXoBQFVqBl0gcwL24TnPeU5asmRJeu9735see+yxPYFEu0M7ASAl9QKAatQLAKpSM+gCfzkBAAAAAAA0SuYEAAAAAADQKIsTAAAAAABAoyxOAAAAAAAAjaociP3II4/s9w9ftGhRabxs2bKe58zMzOzzNSml9OMf/3i/37tNlizpPQxr1qwZwZaM1saNG0vjnTt39n3Njh07SuOvfe1rPc+5//77D2zDhmhqaqo0PvXUU3uec9hhh/X9OaJj2Ju1a9c2/p4PPfRQ4+/ZBrHerVy5suc5uRo46WZnZ0vjrVu39jynSj3o5+677y6Nv/GNb/Q8Z25u7oDfpymHHnpoz2Nnnnlmabxu3bqmNqcx8/PzpfGjjz46oi2ZPE9+8pNH8r6D3GMwPIsX9/63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",
|
||
"text/plain": [
|
||
"<Figure size 1600x400 with 4 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Note: 10 calls of step() = 40 raw env frames (skip=4)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Take a few \"gas\" actions and see frames diverge\n",
|
||
"obs, _ = wrapped.reset(seed=42)\n",
|
||
"for _ in range(10):\n",
|
||
" obs, r, term, trunc, _ = wrapped.step(3) # gas\n",
|
||
"\n",
|
||
"fig, axes = plt.subplots(1, 4, figsize=(16, 4))\n",
|
||
"for i in range(4):\n",
|
||
" axes[i].imshow(obs[i], cmap=\"gray\")\n",
|
||
" axes[i].set_title(f\"After moving, frame {i}\")\n",
|
||
" axes[i].axis(\"off\")\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"print(\"Note: 10 calls of step() = 40 raw env frames (skip=4)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "308a650b-6c0b-440d-96c3-5af575693f53",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Cell 10: Random baseline with the wrapped env"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "98e71435-c366-4a83-bef4-8864a6769585",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Wrapped random episode 0: return = -59.26\n",
|
||
"Wrapped random episode 1: return = -24.09\n",
|
||
"Wrapped random episode 2: return = -28.32\n",
|
||
"\n",
|
||
"Wrapped random baseline (3 ep): -37.22\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"returns = []\n",
|
||
"for ep in range(3):\n",
|
||
" obs, _ = wrapped.reset(seed=ep + 100)\n",
|
||
" total_r = 0.0\n",
|
||
" done = False\n",
|
||
" while not done:\n",
|
||
" action = wrapped.action_space.sample()\n",
|
||
" obs, r, term, trunc, _ = wrapped.step(action)\n",
|
||
" total_r += r\n",
|
||
" done = term or trunc\n",
|
||
" returns.append(total_r)\n",
|
||
" print(f\"Wrapped random episode {ep}: return = {total_r:.2f}\")\n",
|
||
"\n",
|
||
"print(f\"\\nWrapped random baseline (3 ep): {np.mean(returns):.2f}\")\n",
|
||
"wrapped.close()"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python [conda env:pytorch]",
|
||
"language": "python",
|
||
"name": "conda-env-pytorch-py"
|
||
},
|
||
"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.21"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|