Files
InteractionImitation/scratch/etienne/pillbox/intersim_advil.ipynb
Etienne Buehrle 7ae01f73a2 AdVIL tests
2021-08-04 16:41:18 +02:00

274 lines
53 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"source": [
"%cd learners"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"/home/buehrle/dev/InteractionImitation/scratch/etienne/pillbox/learners\n"
]
}
],
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 2,
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
],
"outputs": [],
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 3,
"source": [
"import torch"
],
"outputs": [],
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 5,
"source": [
"from intersim_advil import IntersimPolicy, IntersimDiscriminator\n",
"from train import train_advil\n",
"\n",
"pi = train_advil(\n",
" 'intersim:intersim-v0',\n",
" policy_class=IntersimPolicy,\n",
" discriminator_class=IntersimDiscriminator,\n",
" iters=1500,\n",
" lr_pi=2e-5,\n",
" lr_f=8e-4,\n",
")"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Vehicle Trajectory Paths: datasets/trackfiles/DR_USA_Roundabout_FT/vehicle_tracks_000.csv\n",
"Map Path: datasets/maps/DR_USA_Roundabout_FT.osm\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
" 0%| | 1/1500 [00:00<13:48, 1.81it/s]"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"pi loss: 0.8109868082717183\n",
"mse reg: 0.9072583226644249\n",
"f loss: -0.0031385235927202104\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
" 7%|███████ | 101/1500 [02:08<42:38, 1.83s/it]"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"pi loss: 1.302757262220359\n",
"mse reg: 0.7177222434486094\n",
"f loss: -0.13115944605799967\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
" 10%|██████████▍ | 151/1500 [03:05<22:08, 1.02it/s]/workspaces/pillbox/learners/advil.py:118: UserWarning: torch.nn.utils.clip_grad_norm is now deprecated in favor of torch.nn.utils.clip_grad_norm_.\n",
" torch.nn.utils.clip_grad_norm(pi.parameters(), 40.0)\n",
"/workspaces/pillbox/learners/advil.py:145: UserWarning: torch.nn.utils.clip_grad_norm is now deprecated in favor of torch.nn.utils.clip_grad_norm_.\n",
" torch.nn.utils.clip_grad_norm(f.parameters(), 40.0)\n",
" 13%|█████████████▉ | 201/1500 [03:55<20:10, 1.07it/s]"
]
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"pi loss: 7.271015700900185\n",
"mse reg: 0.5915718820988135\n",
"f loss: -1.4101360479975682\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
" 18%|██████████████████▋ | 269/1500 [04:58<22:45, 1.11s/it]\n"
]
},
{
"output_type": "error",
"ename": "KeyboardInterrupt",
"evalue": "",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/tmp/ipykernel_3776/4238306702.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mtrain\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtrain_advil\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m pi = train_advil(\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m'intersim:intersim-v0'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mpolicy_class\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mIntersimPolicy\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/workspaces/pillbox/learners/train.py\u001b[0m in \u001b[0;36mtrain_advil\u001b[0;34m(env, policy_class, discriminator_class, iters, lr_pi, lr_f)\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1024\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 189\u001b[0m )\n\u001b[0;32m--> 190\u001b[0;31m pi = advil_training(\n\u001b[0m\u001b[1;32m 191\u001b[0m \u001b[0mexpert_data\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0mvenv\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/workspaces/pillbox/learners/advil.py\u001b[0m in \u001b[0;36madvil_training\u001b[0;34m(data_loader, env, iters, policy_class, discriminator_class, lr_pi, lr_f)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[0;31m# acts = (((acts - low) / (high - low)) * 2.0) - 1.0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 216\u001b[0m \u001b[0mpi_loss\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmse_reg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpi_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0macts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpi_opt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0miters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 217\u001b[0;31m \u001b[0mf_loss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf_update\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0macts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf_opt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0miters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 218\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;36m100\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"pi loss:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpi_loss\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/workspaces/pillbox/learners/advil.py\u001b[0m in \u001b[0;36mf_update\u001b[0;34m(obs, acts, pi, f, f_opt, prog)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[0mf_opt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzero_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0mf_loss\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf_expert\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mf_learner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;31m# + 10 * gp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 143\u001b[0;31m \u001b[0mf_loss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 144\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mprog\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0.1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclip_grad_norm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparameters\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m40.0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/workspaces/pillbox/.venv/lib/python3.9/site-packages/torch/_tensor.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(self, gradient, retain_graph, create_graph, inputs)\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 254\u001b[0m inputs=inputs)\n\u001b[0;32m--> 255\u001b[0;31m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautograd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackward\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgradient\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 256\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 257\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mregister_hook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/workspaces/pillbox/.venv/lib/python3.9/site-packages/torch/autograd/__init__.py\u001b[0m in \u001b[0;36mbackward\u001b[0;34m(tensors, grad_tensors, retain_graph, create_graph, grad_variables, inputs)\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[0mretain_graph\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 146\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 147\u001b[0;31m Variable._execution_engine.run_backward(\n\u001b[0m\u001b[1;32m 148\u001b[0m \u001b[0mtensors\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgrad_tensors_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mretain_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcreate_graph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 149\u001b[0m allow_unreachable=True, accumulate_grad=True) # allow_unreachable flag\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"metadata": {
"scrolled": true,
"tags": []
}
},
{
"cell_type": "code",
"execution_count": 12,
"source": [
"torch.save(pi.state_dict(), 'intersim:intersim-v0/advil_policy.pt')"
],
"outputs": [],
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 13,
"source": [
"# pi = IntersimPolicy(env=None)\n",
"# pi.load_state_dict(torch.load('intersim:intersim-v0/advil_policy.pt'))"
],
"outputs": [],
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 19,
"source": [
"import gym\n",
"from tqdm import tqdm\n",
"\n",
"def rollout(pi, max_steps=1000):\n",
" env = gym.make('intersim:intersim-v0')\n",
" obs, _ = env.reset()\n",
" \n",
" _except = lambda o, i: torch.cat((o[:i], o[i+1:]))\n",
" \n",
" _relative_state_v = lambda obs: torch.stack((\n",
" obs[..., 0],\n",
" obs[..., 1],\n",
" (obs[..., 2]**2 + obs[..., 3]**2).sqrt(),\n",
" obs[..., 4],\n",
" obs[..., 5],\n",
" ), -1)\n",
" \n",
" for i in tqdm(range(max_steps)):\n",
" pi_obs = torch.stack(tuple(\n",
" torch.cat((e.unsqueeze(0), _relative_state_v(_except(o, i))))\n",
" for i, (e, o) in enumerate(zip(obs['state'], obs['relative_state']))\n",
" ))\n",
" \n",
" actions = pi(pi_obs)\n",
" obs, _, done, _ = env.step(actions)\n",
" env.render(mode='post')\n",
" if done:\n",
" break\n",
" env.close()"
],
"outputs": [],
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 20,
"source": [
"pi.eval()\n",
"rollout(pi, max_steps=200)"
],
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Vehicle Trajectory Paths: datasets/trackfiles/DR_USA_Roundabout_FT/vehicle_tracks_000.csv\n",
"Map Path: datasets/maps/DR_USA_Roundabout_FT.osm\n",
"Environment Reset\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████| 200/200 [00:12<00:00, 15.53it/s]\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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"
},
"metadata": {
"needs_background": "light"
}
}
],
"metadata": {
"scrolled": true,
"tags": []
}
},
{
"cell_type": "code",
"execution_count": null,
"source": [],
"outputs": [],
"metadata": {}
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3.7.5 64-bit ('.venv': venv)"
},
"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.7.5"
},
"interpreter": {
"hash": "56465d2ea10f338edb3d30adb010c5849fd826fffc543ba31360f3db8b47a703"
}
},
"nbformat": 4,
"nbformat_minor": 5
}