Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yrevar/06118bb3e42ed2cd5f94dceff90439c4 to your computer and use it in GitHub Desktop.
Save yrevar/06118bb3e42ed2cd5f94dceff90439c4 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Torch Version: 0.5.0a0+ab6afc2\n",
"Warning: OpenAI gym not installed.\n"
]
}
],
"source": [
"import os\n",
"import numpy as np\n",
"\n",
"import torch\n",
"from torch import nn\n",
"print(\"Torch Version:\", torch.__version__)\n",
"\n",
"# Simple RL\n",
"from simple_rl.tasks import NavigationWorldMDP\n",
"from simple_rl.tasks.navigation.NavigationStateClass import NavigationWorldState\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.style as style\n",
"# style.use('classic')\n",
"%matplotlib inline\n",
"\n",
"import matplotlib as mpl\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"mpl.rcParams['axes.titlesize'] = 18\n",
"mpl.rcParams['axes.labelsize'] = 14\n",
"mpl.rcParams['axes.grid'] = False\n",
"mpl.rcParams['image.interpolation'] = 'nearest'\n",
"mpl.rcParams['figure.figsize'] = 15, 55\n",
"\n",
"%matplotlib inline\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Helper Functions**"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def log_boltzmann_dist(Q, temperature):\n",
" \"\"\"\n",
" PyTorch softmax implementation seems stable, but log of softmax is not. \n",
" So log of boltzmann distribution is used.\n",
" PyTorch Softmax Note:\n",
" This function doesn't work directly with NLLLoss,\n",
" which expects the Log to be computed between the Softmax and itself.\n",
" Use log_softmax instead (it's faster and has better numerical properties).\n",
" \"\"\"\n",
" return nn.LogSoftmax(dim=0)(Q/temperature)\n",
"\n",
"def value_iteration(S, A, R, T, gamma, n_iters, goal_state_idx, convergence_eps=1e-3, \n",
" boltzmann_temp=1e-4, dtype=torch.float32):\n",
" \n",
" # assert torch.all(R < 0)\n",
" nS, nA = len(S), len(A)\n",
" v_delta_max = float(\"inf\")\n",
" s_to_idx = {tuple(v):k for k,v in enumerate(S)}\n",
" Q = torch.zeros(nS, nA, dtype=dtype)\n",
" Pi = torch.log(torch.ones(nS, nA, dtype=dtype) / nA)\n",
" # requires_grad = False isn't enough, so also detach tensor.\n",
" # (reason: https://github.com/pytorch/pytorch/issues/166)\n",
" V = torch.tensor(R.detach(), requires_grad=False)\n",
" \n",
" # Given goal\n",
" V[goal_state_idx] = 0\n",
" \n",
" iterno = 0\n",
" while iterno < n_iters and v_delta_max > convergence_eps:\n",
" \n",
" v_delta_max = 0\n",
" for si, s in enumerate(S):\n",
" \n",
" v_s_prev = V[si].detach().item()\n",
" if si == goal_state_idx or s.is_terminal():\n",
" continue\n",
" \n",
" max_q = float(\"-inf\")\n",
" for ai, a in enumerate(A):\n",
" \n",
" s_prime = T(s,a)\n",
" \n",
" if s_prime is None: # outside envelope\n",
" continue\n",
" \n",
" Q[si, ai] = R[si] + gamma * V[s_to_idx[tuple(s_prime)]].clone()\n",
" q_s_a = Q[si, ai].detach().item()\n",
" max_q = q_s_a if q_s_a > max_q else max_q\n",
" \n",
" Pi[si, :] = log_boltzmann_dist(Q[si, :].clone(), boltzmann_temp)\n",
" V[si] = torch.exp(Pi[si, :].clone()).dot(Q[si, :].clone())\n",
" \n",
" v_delta_max = max(abs(v_s_prev - V[si].detach().item()), v_delta_max)\n",
" \n",
" iterno += 1\n",
" \n",
" if iterno == n_iters:\n",
" print(\"VI max iterations reached @ {}.\".format(iterno))\n",
" else:\n",
" print(\"VI converged @ {}.\".format(iterno))\n",
" \n",
" return Pi, V, Q\n",
"\n",
"def sample_trajectory(S, A, T, start_state, policy, given_goal, \n",
" horizon=1000, greedy_selection=True):\n",
" \n",
" s_list = []\n",
" a_list = []\n",
" \n",
" # state tuple -> idx\n",
" s_to_idx = {tuple(v):k for k,v in enumerate(S)}\n",
" given_goal_idx = s_to_idx[tuple(given_goal)]\n",
" steps = 0\n",
" \n",
" ## start state\n",
" s = start_state\n",
" \n",
" while steps < horizon:\n",
" \n",
" ## add state\n",
" s_idx = s_to_idx[tuple(s)]\n",
" s_list.append(S[s_idx])\n",
" \n",
" ## sample next state\n",
" \n",
" # policy (Note: taking exp because the policy is log softmax)\n",
" Pi_s = torch.exp(policy[s_idx]).detach().numpy()\n",
" # action selection\n",
" if greedy_selection:\n",
" a_idx = int(Pi_s.argmax())\n",
" else:\n",
" a_idx = int(np.random.choice(len(A), p=Pi_s))\n",
" \n",
" a_list.append(A[a_idx])\n",
" s = T(S[s_idx], A[a_idx])\n",
" \n",
" steps += 1\n",
" \n",
" # check if goal is given and reached\n",
" if given_goal_idx is not None and s_idx == given_goal_idx:\n",
" break\n",
" \n",
" return s_list, a_list\n",
"\n",
"def sample_trajectories(N, S, A, T, start_states, policy, given_goal, \n",
" horizon=1000, greedy_selection=True):\n",
" \n",
" traj_list = []\n",
" \n",
" for i in range(N):\n",
" \n",
" s_list, a_list = sample_trajectory(S, A, T, start_states[i], policy, given_goal, horizon, greedy_selection)\n",
" traj_list.append((s_list, a_list))\n",
" \n",
" return traj_list\n",
"\n",
"def get_min_value_estimate_given_goal_greedy(max_traj_length, driving_cost, gamma):\n",
" \n",
" min_value = 0.\n",
" for i in range(max_traj_length):\n",
" min_value -= (gamma**i) * driving_cost\n",
" return min_value\n",
"\n",
"def likelihood(log_Pi, traj_list, s_to_idx, a_to_idx):\n",
" \n",
" lik = 0.\n",
" # n_sa = 0.\n",
" for (s_list, a_list) in traj_list:\n",
" for i in range(len(s_list)):\n",
" s, a = s_list[i], a_list[i]\n",
" lik += log_Pi[s_to_idx[tuple(s)]][a_to_idx[a]]\n",
" # n_sa += 1\n",
" return lik\n",
"\n",
"def log_likelihood(Pi, traj_list, s_to_idx, a_to_idx):\n",
" \n",
" loglik = 0.\n",
" # n_sa = 0.\n",
" for (s_list, a_list) in traj_list:\n",
" for i in range(len(s_list)):\n",
" s, a = s_list[i], a_list[i]\n",
" loglik += torch.log(Pi[s_to_idx[tuple(s)]][a_to_idx[a]])\n",
" # n_sa += 1\n",
" return loglik\n",
"\n",
"# Visualization functions \n",
"import io\n",
"import imageio\n",
"from PIL import Image\n",
"from IPython import display\n",
"\n",
"def read_pil_image_from_plt(plt):\n",
" buf = io.BytesIO()\n",
" plt.savefig(buf, format='png')\n",
" buf.seek(0)\n",
" return Image.open(buf)\n",
"\n",
"def create_gif(img_generator, cmap=plt.cm.viridis, gif_name=\"./__gif_sample.gif\", fps=10,\n",
" figsize=(4, 4), title=None, display=False):\n",
" with imageio.get_writer(gif_name, mode='I', fps=fps) as writer:\n",
" for img in img_generator():\n",
" # Append to GIF\n",
" writer.append_data(np.array(img))\n",
" \n",
" # Wait to draw - only for online visualization\n",
" if display:\n",
" plt.imshow(img)\n",
" display.clear_output(wait=True)\n",
" display.display(plt.gcf())\n",
" plt.clf()\n",
" return\n",
"\n",
"def convert_to_grid(nvmdp, S, state_values):\n",
" \n",
" grid = np.zeros((nvmdp.height, nvmdp.width))\n",
" \n",
" for si, s in enumerate(S):\n",
" x, y = s\n",
" row, col = nvmdp._xy_to_rowcol(x, y)\n",
" grid[row, col] = state_values[si]\n",
" return grid\n",
"\n",
"def get_grad_evolution_images(nvmdp, S, R_grid, expert_traj, R_grads_evolution, boltzmann_temp, \n",
" figsize=(40,20), R_kind=\"\"):\n",
"\n",
" for i in range(len(R_grads_evolution)):\n",
" \n",
" plt.close('all')\n",
" plt.figure(figsize=figsize)\n",
" nvmdp.visualize_grid(R_grid, trajectories=expert_traj, cmap=plt.cm.Reds_r,\n",
" state_space_cmap=False, show_colorbar=True, fig=fig, subplot_str=\"121\",\n",
" title=\"Navigation IRL MDP(with true reward). Expert Path (black).\", end_marker=\"*c\")\n",
" nvmdp.visualize_grid(convert_to_grid(nvmdp, S, R_grads_evolution[i]), trajectories=[expert_traj[0][:i+1]], \n",
" state_space_cmap=False, traj_marker='-b',\n",
" cmap=plt.cm.Reds_r, show_colorbar=True, fig=fig, subplot_str=\"122\",\n",
" title=\"MLIRL Gradients. {}, temp: {}, step: {}.\".format(R_kind, boltzmann_temp, i+1))\n",
" yield read_pil_image_from_plt(plt)\n",
" plt.clf()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Navigation MDP"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 1 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x1207bb160>)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.random.seed(1)\n",
"torch.manual_seed(1)\n",
"\n",
"obstacle = lambda x, y, w, h: [(x+i, y+j) for j in range(h) for i in range(w)]\n",
"nvmdp = NavigationWorldMDP(\n",
" \n",
" width = 20, height = 15,\n",
" nav_cell_types = ['white', \"red\"],\n",
" nav_cell_rewards = [-0.01, -10],\n",
" nav_cell_p_or_locs = [1., obstacle(8,1,5,8)],\n",
" goal_cell_types = [],\n",
" goal_cell_rewards = [],\n",
" goal_cell_locs = [],\n",
" slip_prob = 0.0, step_cost = 0,\n",
" gamma = 0.95\n",
")\n",
"nvmdp.visualize_grid(goal_marker=\"\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEzCAYAAAAIFcVFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XucJWV95/HPVxiRoDTiICgwIhEwcpE1g4hKGIQIyTp4iebyCghKnEgMq0TUsGyirHE3Eg1xNV7aqGDAS8zG6HgBHNhRZhEUlCiYxQlRZwaBzKA0qMwA09/9o6rhcDjd59Jdp6pmvu951atPVZ2n6tena/rXTz1PPY9sExERUZVH1R1ARERs25JoIiKiUkk0ERFRqSSaiIioVBJNRERUKokmIiIqlUQTjSXJki5sQBynlbEsqzuWiDZKookHSVpW/kK1pNfM8h5L+sK4Y6ta+b2/TdJudcfSi6T9On42PT9/SYskbSzf88OufRd2lLekzZLukPQ1Se+QtP8sx1zdVe5+SbdK+qSkgyv4VmMbtGPdAURjvU3SxbbvrTGGnYGtYzrXMuCtwIXAXV37/h74FHDfmGKZy2bgRElPsn1b176TgMXle2ZzBvAziv/7i4FnA28EzpZ0ju2/7lFmC/AH5eudgSOBU4H/LOkI2zeP/N3EdiGJJnq5DlgKvAH4n3UFYXuuX5hjY3sr40t4/XwBeAlwCnB+175XA98BdgAeO0v5f7S9qXODpCXlcd8t6Vbbn+4q84DtizvWPyzpX4F3Af8FeN1I30lsN3LrLHr5B+B64C2SntDvzZJeKOnTkv5d0r2S7pJ0uaRjut73aUn39TqmpIPKWzN/07HtEW00knaQ9GeSflTe/vmOpN8pb3tZ0n4d7326pPdLuknSPZJ+Iel6SX/QdcwLKWozAD/ouE30tnJ/zzYaSYsl/a2k9eX3tb5cf0LX+2bKv0DS2ZJukbRF0vclndrv8+1yB/Al4FVd53gScALwsSGPh+11wMuBaeAdAxa7rPz6tGHPF9ufJJroxcCfAhPAuQO8/zRgd+DjwJnABcCvAFdIOrrjfRcBi4Df63GMV3a8Zy7vA/47cAvwJuCfgfcDL+rx3mXAr1H8tf4m4M+A+yn+Ij+n430fAj5bvj6LorZwCvBPswUhaQK4muJW1GUUtb9Ly/U1kh7Xo9j/KI/7IeDNFL/YL5T0vD7fc7ePAk+XdFTHtlMpal0X9y4yN9vfB64CflnSQQMUOaD8umnOd0UA2M6SBdtQ/GI2cHa5fjnF/f6ndLzHwBe6yu3S41h7UvwS+lLHth2A24BvdL1XwI+A73RtN3Bhx/rB5bZLgUd1bD+U4pesgf36xPUoYDUwBSzq2P627vId+04r9y3r2PaOctsfdb33deX2t/co/23g0R3b96Zo//jkAD+b/cpjvI/ilvftwGTH/pspbosB3Aj8sKv8hWX5xXOc43+V71nesW01RZvO4nLZl6L2s7587wl1X7dZmr+kRhNzeQvwaODtc73J9s9nXkt6bHnraCtwLUXD8cz7tgKXAEdIenrHIZYBS+hfm5mptbzH9nTHcb/LQ7dyZovrMWVcu1Mk0F2Bp3eXGcJLgY3AZNf2D5XbX9qjzPttP9ihwPatwPd5qHYwENsPUHRQ+B1JO5c1ogMpajrzcXf5ddeu7btQfE8bgXXAZyiS3Wm2H/G5R3RLoolZ2f428Eng9yUdNtv7JP2ypE9J+ilwD0VNZiPwm8Dju94+k0xe2bHtlRSJ6ZI+IT21/Nqrl9MjtpVJ712S1gH3dsQ10w7RHdswngrcXP7Sf1C5/n2gV3fhf++x7U6gbztYDx+jSAi/RdEJ4Mf0SLZDmkkwd3dt3wz8erkcCzwD2Nt2vz8MIoD0Oov+/hvFrZJ3Ar/RvVPSY4GvUfzV+zfAdymSzTRwDvCCzvfb/q6kGyiS17kU3WV/C7jc9u0LHPsnKGpBk2WMd1IktN+kaIsZ9x9as/Vc07AHsv09SddS3Ko7BHhfWWOcj5k/JrqT9lbbq+Z57NiOJdHEnGz/QNIHgNfP8mT8ccCTgVfbfliPJ0l/McthL6LoMHAs8CTgcfS/bQbww/LrQTyydvCwBuzywcsXAX9v+7Vd+47vcexhZwD8d+AgSTt21mok7UhxG6tX7WWhfZTiVt3M65FJOhA4GljromNAxILJrbMYxF9Q3E7pfm4DHvor/WF/lUt6IR3tM10+ATxAccvslRQN858bII6V5dfXS3rw2pV0KEXX3kHiehIPPXzY6Wfl190HiAOK3m579DjWa8rtn31EiYX3KeA84PW21456kPI5ms9Q/D4YpJdhxFBSo4m+bG+S9Ff07hSwhqIH1LvLZ1g2AIdTdOP9LkWPsO7j/YekL1PcknsM8BEP8HCm7ZskTQIrgFWSPkvxS/11FD26fpWyZmL7HkmXAydLuhf4JvAU4A+BH/DIdpFryq/vlHQJRbvEjbZvnCWc84FXAH8r6Vnl+f8TcDrFradeSXlB2b6borfcMF4uaWZkgCdQjAxwEkWSeYPtzyxokBEk0cTg/hr4I4pbXQ+yfZekEyh+sZ5JcU1dT9EOcjo9Ek3pImB5+frjQ8TxRxQN36dTPJl+M8WzK8+mSDSdQ+acDPxleZ5TgbUUf7HfT9eDjbb/r6S3AK8FPlx+H+dRdBV+BNtTZW+v8yh+Ub+K4mHKDwJvtX3PEN/TOH2g/HofRU3yZuDdwEdtj+N2X2yHZA97azqieSStpOh4sOsCNIpHxAJKG020iqSde2w7jKJH3JVJMhHNkxpNtIqk11J0IPgixTMxT6dos3kU8Lzy2Z+IaJAkmmgVSc+m6JRwOEUPsXsoOiScZ/v6OmOLiN6SaCIiolKt6HW2ePETvN+SJXWHERFRix+uW8emTXc++EzYib9+vDfdeWffctd/+4bLbJ9YaXADaEWi2W/JEq5bs7ruMCIiarH0+csetr7pzjsH+p2oXXZbXE1Ew2lFoomIiC4tavZIoomIaKUkmoiIqIxTo4mIiIo9NPdf441tZABJT5b0LUmbJe0oaT9Jd0haXQ5+GBERgzBFjabf0hDjrNH8hGLuks7h079i++QxxhARsW1oUCLpZ2w1Gtubbf+0a/Oxkq6SdFb3+yWtkLRW0sZ16zeMKcqIiDbwgEsz1Dmo5m0UMxEeCxzfPSe97UnbB9jeY8m++9QSYEREY7Unz9SXaGxvsf3zchrcL1DMex4REYNoURtNbYlG0uM6Vp8H3FJXLBER7dOeKs3YOgNIWgR8GXgmcBnwNUknAVuAq2xfO65YIiJababXWUuMLdHYvh84vmvzeeM6f0TENiWJJiIiqtOsW2P9JNFERLRRajQREVGlNk1amUQTEdFKSTQREVGl1GgiIqIyDXsgs58kmoiIVkqiiYiIKmU+mkfqno+mY/tZktaMK46IiG1CxjrraWY+mmtmNkjaCTh8jDFERGwDBkgy22OimWU+mtOBi2YrI2m5pMmpqalqg4uIaJ32DKpZ5+jNi4Bltq+c7T22V9peMTExMcbIIiJaoD15ptbOAKcAn6jx/BER7dSy0ZvrnGHzIOAMSZcCB0s6s8ZYIiJapj1VmnH2OlskaRUPzUfzT7ZPsH0icJPt944rloiI1mtRZ4C656OZ2ff8ccUREdF+zUok/eSBzYiIVkqiiYiIKqVGExERlWrREDRJNBERbdOwxv5+kmgiItpoOjWaiIioUmo0ERFRHaeNJiIiKmRgemvdUQystvloJB0i6WpJV0n6mCSNK5aIiLaz3Xdpijrno7nZ9nNtH12uLx1jLBERLeaiM0C/pSFqm4+mHJJmxhZgfef7Ja2QtFbSxnXrN4wrzIiI5jNFG02/pSHqHL0ZSSdJuhHYE7izc5/tSdsH2N5jyb771BNgRERTtWhQzVoTje3P2z4E2AC8qM5YIiLaw62q0dTW60zSTra3lKt3A/fWFUtEROs0qMbSz9gSTTl185d5aD6ar0l6Qbl7LXD5uGKJiGi9BtVY+ql7PprzxnX+iIhthg3T1dZoJP0VsBy4D7gFeJXtu0Y5Vq1tNBERMaLq22i+Ahxi+zDg+8A5ox4oiSYioo0q7nVm+3LbD5Sr1wAjd//NEDQREa0z8FhniyVd17E+aXtyhBO+Gvj0COWAJJqIiPYxg9ZYNtmeddQVSauAvXrsOtf258r3nAs8AFwyQqRAEk1ERDstQK8z290dtB5G0mkUzzge53kMnpZEExHRRtX3OjsReDNwjO1fzOdYSTQREa0zlvlo3gfsBHylHFz/GtuvHeVASTQREW1jcMXz0dh+2kIdq875aI4s56NZI+mCccUREdF+7RrrrM75aH4EvMD284EnSjp0jLFERLRbi0ZvHucQNJuBzTMTadq+vWP3/UB75iWNiKhbg2os/dQ+MoCkw4A9bH+vx77lkianpqZqiCwioqFmxjrrtzRE3ROf7U7Rs+H0Xvttr7S9YmJiYryBRUQ0XYvaaOqcj2ZH4GLg7K7baBER0U+D2mD6qXU+GuAI4Pyy3eYc218fVzwREe01ludoFkzmo4mIaJvBxzprhDywGRHRRtOp0URERGWa9ZxMP0k0ERFtlDaaiIioTNpoIiKiWk4bTUREVCw1moiIqFTaaCIiojKmUWOZ9VPnfDQPWx9XHBER7WeY3tp/aYg656PpXo+IiEFlUM1H6jEfzcPWIyJiQG7WNAD91D4fzWwkrZC0VtLGdes31B1ORESztKhG09hEY3vS9gG291iy7z51hxMR0SyZyjkiIiqTXme9SVokaRXlfDSSjuxeH1csERHt5lbdOqt7Ppru9YiIGESDbo31k1tnERFt1KAaSz9JNBERbdOy7s1JNBERbZQaTUREVCptNBERURlnPpqIiKhaajQREVGptNFERESlWlSjqW0+mnLbBZKukvSeccUREdF6Nmzd2n9piNrmo5H0LOCxto8GHi3piDHGEhHRbi0agmZsicb2Zts/7dj0HOAr5etVwFHjiiUiot3KBzb7LQ1R5zQBuwF3l6+nyvWHkbRc0uTU1NRYA4uIaDSTGs2ApoBdy9e7And1v8H2StsrJiYmxhpYRETjtWg+mjoTzdcp2mygGMX5mhpjiYholySaR+qejwZYBGyWdBWw1fY3xhVLRES7lSMD9Fsaou75aK4d1/kjIrYZplE1ln7qvHUWERGjGtOtM0lvlGRJi0c9RkYGiIhoozHUaCTtC7wQWDef46RGExHROmNro7kAeHNxwtGlRhMR0TaDt9EslnRdx/qk7clBCkp6MXCr7X+RNEKQD0miiYhoo8ESzSbbS2fbWfYE3qvHrnOB/0px22zekmgiIlpnYSY+s93dExgASYcCTwVmajP7AN+S9Gzbtw97niSaiIg2qrAzgO3vAk+cWZf0Q2Cp7U2jHC+JJiKibVr2HE2tiaacl+ZiYE/gm7bfXGc8ERHt4LHON2N7v/mUr7t780uBf7F9LLCzpGfWHE9ERDtkrLOB7Q98p3x9A/DcGmOJiGiHmVtnSTQDuRk4pnx9LB1z0khaIWmtpI3r1m+oJbiIiMZKohnYSopbZlcAW4A7ZnbYnrR9gO09luy7T20BRkQ0jTGenu67NEWticb2Vttn2j4O2EoxfUBERPTTohpN3b3O9gYuAaaBj9u+tc54IiJaId2bB1cmlmV1xhAR0UpJNBERUZ2FGYJmXJJoIiLaKDWaiId77S7pOTgfH/x5uvhHh7TRRERE5ZJoIiKiOmmjiYiIqqVGExERlUkbTUREVG5bSTSSnmP7mqpOLumXgM8AuwBTwG/b3lLV+SIitg3jnY9mvvqNdfY1SW8vJyirwonAtbaXAd8o1yMiYi7b2DQBvwGcAnxD0jMqOP8tFLUZKKYIuLOCc0REbHu2lURj+wrgUODbwHWS/mSBz78WOErSTcBS4OrOnZKWS5qcmppa4NNGRLSZYXqApSH6ThNg+x7bp1PUbM6X9DNJd3cu8zj/qcBK2wcDXwRO7jr3StsrJiYm5nGKiIhtj+2+S1MM1PYiaSnwdooayLuABxbo/AJ+Ur7eBCSjRET0YxpVY+mnX6+zHYG3Am8B3g/8qe3NC3j+TwCflnQKcD/wOwt47IiIbVeDaiz99KvRfBPYHfiNsr1mQdm+CzhhoY8bEbGt87ZSowFuBP7YdlrjIyKaomG9yvqZM9HYPmVcgURExBC2oRpNREQ0UJN6lfWTRBMR0TbbUq+ziIhoptRoIiKiQttQZ4CIiGio3DqLiIiqFL2b25No+o51ViVJJ0paXS63SXpJnfFERLRGiwbVrLVGY/tS4FIASdcCq+qMJyKiFWy8dbruKAbWiFtnkvYH7rD9s7pjiYhohdw6G9rLgM92bpC0QtJaSRvXrd9QU1gREc3k6f5LUzQl0SwHPt+5wfak7QNs77Fk331qCisiooFaNpVz7bfOJO0F3Gc70zhHRAyqQY39/dSeaIAXA5+rO4iIiDZpU/fm2hON7Q/VHUNERKu4Wd2X+2lKG01ERAxjDG00ks6U9P8k3STp/FGPU3uNJiIihlf1DJuSjqVo2nim7S2SnjjqsZJoIiLaqPo2mjOAv7S9pTid/2PUA+XWWUREy9hFjabfAiyWdF3HsmKI0xwIHC3pWklflXTEqPGmRhMR0ToDt8Fssr10tp2SVgF79dh1LkV+2B14DnAE8A+S9vcI3d2SaCIi2mgB2mhsHz/bPklnAP9UJpZvSJoGFgMbhz1Pbp1FRLRNOU1Av2We/hk4FkDSgcCjgU2jHCg1moiINqq+M8BHgY9KuhG4Dzh1lNtm0IBEI+mVwKnADsDv27615pAiIpqv4u7Ntu8DTl6IY9WaaCTtDRxj+7g644iIaBWb6a0ZGWBQJwA7SLpC0nsl7VBzPBERjVcM3lx5G82CqTvR7Ak8uqzR/ILiKdQHSVouaXJqaqqW4CIimqpFswTUnmimgK+Wr68EfqVzp+2VtldMTEyMPbCIiCZLjWZwVwOHla8PB35QYywREe0wQG2mQXmm3s4Atm+QdK+k1RT9sy+oM56IiLZoUo2ln9q7N9s+u+4YIiLaZGYm57aoPdFERMTwpluUaZJoIiJaqEV5JokmIqJ17MonPltISTQRES2TNpqIiKhcEk1ERFQq3ZsjIqI6DXsgs58kmoiIljHp3hwRERVrUZ6pfT6a/YBrgX8F7rP9wjrjiYhoi+l0bx7KV2wvyCxuERHbBberM0DdozcDHCvpKklndW6UtELSWkkb163fUFdsERGNY8DT/ZemqDvR3AYcCBwLHC9pZsoAbE/aPsD2Hkv23ae2ACMimqf/XDRNqvHUmmhsb7H9c9sPAF8ADqkznoiItmjTfDS1JhpJj+tYfR5wS12xRES0hovuzf2Wpqj71tnRkq6XdDVwq+1ra44nIqLxZsY6a0uNpu4ZNr8EfKnOGCIi2qhJbTD9NKF7c0REDKlFeSaJJiKijVKjiYiI6jSsDaafJJqIiJbJxGcREVG5TOUcERGValGeSaKJiGidhg0x008STUREy7hc2qLukQEAkHSWpDV1xxER0RZtGoKm9hqNpJ2Aw+uOIyKiTZqTRvprQo3mdOCiXjskLZc0OTU1NeaQIiKay8D0AEtT1D168yJgme0re+23vdL2iomJiTFHFhHRbBlUc3CnAJ+oOYaIiNZxi26e1X3r7CDgDEmXAgdLOrPmeCIiWsEDLE1R9zQBb5l5LWmN7ffWGU9ERFs0KZH0U3eN5kG2n193DBERbWCKkQH6LfMh6XBJ10i6QdJ1kp496rEak2giImJwHuDfPJ0PnGf7cODPy/WR1N0ZICIiRjCGW2cGdi1fTwA/HvVASTQRES00YPflxZKu61iftD054CneAFwm6V0Ud7+eO1yED0miiYhomSF6lW2yvXS2nZJWAXv12HUucBxwlu3/Lem3gY8Axw8dLEk0ERGtNL0AN89sz5o4JH0ceH25+hng70Y9TzoDRES00Bieo/kxcEz5+gXA2lEPlBpNRETbjGeImdcA75G0I7AZWDHqgZJoIiJaZhxP/tteA/zqQhyr1kQj6RBgEtgK/Bvwardp2riIiFosyHMyY1N3G83Ntp9r++hyfdbeERER8ZCt7r80Ra2Jxvb9HatbgPUzK5JWSForaeO69RvGH1xEREMN0hGgQXmm9hoNkk6SdCOwJ3DnzHbbk7YPsL3Hkn33qS/AiIgGGsMQNAum9kRj+/O2DwE2AC+qO56IiDbIxGcDkrST7S3l6t3AvXXGExHRFk2aqrmfurs3nyjpT8rXa4HL6wwmIqINmtYG00/dE599DvhcnTFERLRRm54EqbtGExERI2hPmkmiiYhopSSaiIioVBJNRERUxsB02mgiIqJK7UkzSTQREa2U52giIqIyNky3qEqTRBMR0UILMZXzuNQ61pmkIyVdLWmNpAvqjCUioi2KzgD9l6aoe1DNHwEvsP184ImSDq05noiIVmjTfDR1D0Fze8fq/RQzbT5I0nJg+dP2f+pY44qIaDLj3DoblqTDgD1sf69zu+2VtldMTEzUFFlERDO16dZZ7Z0BJO0OvA/47bpjiYhoA5PuzQOTtCNwMXB21220iIiYQ5NqLP3UfevsFcARwPmSVks6quZ4IiJaYbpsp5lraYq6OwN8EvhknTFERLRNHtiMiIjKpY0mIiIqM/PAZlsk0UREtFCT2mD6SaKJiGih3DqLiIjK5NZZRERULjWaiIioTKZyjoiIyrWpRlP3fDRPlvQtSZvL4WgiImIAGVRzcD8BjgM+W3McERGtYcPWFt06q7VGY3uz7Z/22idphaS1kjauW79h3KFFRDTa9ABLU9Q9qOasbE/aPsD2Hkv23afucCIiGqNtUznXfessIiJG0KQaSz9JNBERLWPcqu7Ndfc6WyRpFfBM4DJJR9YZT0REW6SNZkC277d9vO3H2z7O9rV1xhMR0RZVt9FIeoWkmyRNS1rate8cSf8m6WZJJ/Q7Vm6dRUS0jBlLjeVG4GXAhzo3SnoG8LvAwcCTgVWSDrS9dbYDJdFERLRQ1W00tv8VQFL3rhcDn7K9BfiBpH8Dng18fbZjtSLRXP/tGzZpl91+NMdblgDr5nGKCWCqwvKLgU01nr+ffH7zKw8Vf4Yf2mW3eZWn+Z9hrsG5yz+lc2Uj05d9gHsWD3Dcx0i6rmN90vbkKAF22Bu4pmN9Q7ltdrZbvwAb51l+ssrywHV1nj+fX7Xx5zPMNVj35zeP866iuEXWvby44z2rgaUd6+8DTu5Y/wjw8rnO04oazQDummf5ldt5+Xx+85fPcH7y+dXA9vEjFLsV2LdjfZ9y26xUZqRWk3Sd7aX931mPxDc/TY8Pmh9j4pufpsdXJUmrgbNtX1euHwx8gqJd5snAFcABnqMzQGOHoBnSfO85Vi3xzU/T44Pmx5j45qfp8S04SS+VtAE4CviipMsAbN8E/APwPeBS4HVzJRnYRmo0ERHRXNtKjSYiIhqq1YlmvhOnSTpS0tWS1ki6YITyh5Tlr5L0MfXocD7gcc6StGaEcvtJukPSakmXj3juV0q6ojzG3F0UH1n2xLLcakm3SXrJkOV/SdIXy/Kfk7TTkOV3lPQpSf9H0vlDlHvEdSPpgvLn+J5hyw97HfYoP/R12OMYQ12Ls8U86LXY4/xDXYuz/AwGvhZ7nH+oa7FH+aGuxR7lh7oWe/3MJb2pXL9E0qJ+x2iVOrrULWDXvMcAj6fofrfjCOX3Ah5Tvr4EOHTI8os6Xn8MOGKEGHYCLgLWjFB2P+DieXx+ewMfWaCfxbXAY4cs8zLgz8vX59LRpXLA8q8Azilfvxd45ijXDfAs4MPlvg/0+zn2KD/Uddij/NDXYY9jDHUt9op5mGuxx/mHuhZ7lB/qWpzrMx/kWuxx/qGuxR7lh7oWe/zMjwG+VK6/BXjFMP8Xmr60ukbjOSZOG7D87bY3l6v3A3M2aPUof3/H6hZg/QhhnE7xn3tUx5Z/xZ41QtkTgB3KvyLfK2mHUQKQtD9wh+2fDVn0FmCX8vVuwJ1Dlt8f+E75+gbguYMU6nHdPAf4Svl6FUXj58Dlh70Oe5Qf+jrscYyhrsVZYh74Wpyl/MDXYo/yQ12Ls33mg16LPcoPdS32KD/UtdjjZ34wRdKCAa7Btml1olkokg4D9rD9vRHKniTpRmBPhvxFWVaPl9m+ctjzlm4DDgSOBY4vv49h7Ak82vZxwC8ohpYYxcsYbTrutcBRkm4ClgJXD1n+Zoq/BKH4DPo+Pj+L3YC7y9dT8zjOvMznOizL51ps2bU48zOneI6o9muwKtt9opG0O8WTrqePUt72520fQjEMw4uGLH4KRX/0kdjeYvvnth8AvgAcMuQhpoCvlq+vBH5lxFCWA58fodypwErbBwNfBE4esvxKYGdJV1D8FX/HCDFA8TnsWr7elfk/PDi0+V6HkGux1JprsetnXvs1WKXtOtGUjZAXUzyMdPsI5TsbDO8G7h3yEAcBZ0i6FDhY0plDnv9xHavPo6j+D+NqYOYvz8OBHwxZHkl7AffZHva2F4CAn5SvN1GM9zQw21ttn1n+FbwVuGyEGKAYDPC48vXxPHwcp8rN9zosj5FrsUXXYo+f+Td5qEY09muwcnU3Es1nARZR3M/8KcXTqUcOWf73gI0U90ZXA0cNWf7FFH+FfRX4O+BR8/heRukM8JvA9RT/Sd854nnfVX7v/0hx62LY8n8I/PGI596N4j/kaoo2kt2HLL93WfZK4LT5XDfAe4CrgPeOWH7g67BH+bcOex3OcoyBr8W5/u8Mci3Ocv6Br8VZPsOBr8VZyg98Lc5SfuBrsUf5Y4a5Funxu4eiE8Aaiprl0P8Xm7zkgc2IiKjUdn3rLCIiqpdEExERlUqiiYiISiXRREREpZJoIiKiUkk0ERFRqSSaiC6SHiXpa5JWdm3/JUk3S/pgXbFFtFESTUQX29PAaRSDRL66Y9c7gR2AN9YRV0Rb5YHNiFlIei1FcjkMeBrFk+PLbA89d1DE9iyJJmIOKuZJ35livpVP2X5zvRFFtE8STcQcJD2VYoDIW4BDbG+pOaSI1kkbTcTcXk0xEvI+wFNrjiWilVKjiZiFpCMoRiM+CTiDYnKu59oeaibWiO2VK0yCAAAAi0lEQVRdajQRPUh6DPBx4ELbXwZWUHQISBtNxJBSo4noQdIFwEuAw2zfU277XeAi4Fm2b6ozvog2SaKJ6CLp1ygmsDre9uqufZ+haKt5jotpiyOijySaiIioVNpoIiKiUkk0ERFRqSSaiIioVBJNRERUKokmIiIqlUQTERGVSqKJiIhKJdFERESl/j8I2IrB+RNURgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x120b5fb00>)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"S = nvmdp.get_all_states()\n",
"s_to_idx = {tuple(v):k for k,v in enumerate(S)}\n",
"R_s = nvmdp._reward_func_state_only\n",
"R = torch.tensor([R_s(s) for s in S], requires_grad=True)\n",
"R_grid = convert_to_grid(nvmdp, S, R)\n",
"A = nvmdp.get_actions()\n",
"a_to_idx = {a:i for i,a in enumerate(A)}\n",
"T = nvmdp.transition_func\n",
"nvmdp.visualize_grid(R_grid, state_space_cmap=False, cmap=plt.cm.Reds_r, show_colorbar=True, goal_marker=\"\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Expert demonstrations"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"VI converged @ 28.\n"
]
}
],
"source": [
"given_goal = (17,5)\n",
"Pi_expert, V_expert, Q_expert = value_iteration(S, A, R, T, 0.95, 200, s_to_idx[given_goal], boltzmann_temp=0.001)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"start_states = [(3,5)]\n",
"traj_list = sample_trajectories(10, S, A, T, start_states*10, Pi_expert, given_goal, 200, \n",
" greedy_selection=True)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x12078b9b0>)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V_grid = convert_to_grid(nvmdp, S, V_expert)\n",
"nvmdp.visualize_grid(V_grid, trajectories=list(zip(*traj_list))[0], \n",
" state_space_cmap=False, cmap=plt.cm.Reds_r, \n",
" show_colorbar=True, end_marker=\"*c\", title=\"Navigation MDP (Value)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Obstacle values look weird (not constant) because they can actually be entered as per current configuration of the MDP. We haven't modeled obstacles as walls, they are just navigable cells like others but with negative rewards. Ideally, we'll want them to be terminal states. For example,\n",
"\n",
"```\n",
"goal_cell_types = [\"red\"],\n",
"goal_cell_rewards = [-10],\n",
"goal_cell_locs = [obstacle(10,1,5,20) + obstacle(20,11,5,20)],\n",
"```\n",
"\n",
"But if we do so in IRL we can't learn about features of onstacles that are hidden behind 1 cell border. So we don't want terminal states in the actually MDP that we want to solve using IRL. If non-terminal obstacles bother in sampling trajectories, alternatively, one could use a separate MDP for sampling trajectories."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x120c596d8>)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set vmin to better visualize V gradients\n",
"nvmdp.visualize_grid(V_grid, trajectories=list(zip(*traj_list))[0], vmin=-0.2,\n",
" state_space_cmap=False, cmap=plt.cm.Reds_r, \n",
" show_colorbar=True, end_marker=\"*c\", title=\"Navigation MDP (Value - clipped)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# MLIRL gradient analysis"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"n_vi_iter = 200"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x12116b5c0>)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.random.seed(1)\n",
"torch.manual_seed(1)\n",
"\n",
"# R_rand = np.random.normal(-2, 0.1, len(S))\n",
"R_const = -1 * np.ones(len(S))\n",
"R = R_const\n",
"nvmdp.visualize_grid(convert_to_grid(nvmdp, S, R), state_space_cmap=False, \n",
" cmap=plt.cm.Reds_r, show_colorbar=True, title=\"MLIRL: Reward Init\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Assume low temperature policy"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"VI converged @ 27.\n"
]
}
],
"source": [
"boltzmann_temp = 0.1\n",
"R1 = torch.tensor(R_const, requires_grad=True)\n",
"Pi_low, V_low, Q_low = value_iteration(S, A, R1, T, 0.99, n_vi_iter, s_to_idx[given_goal],\n",
" boltzmann_temp=boltzmann_temp)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x1212d88d0>)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V_grid = convert_to_grid(nvmdp, S, V_low)\n",
"traj_list2 = sample_trajectories(100, S, A, T, start_states*100, Pi_low, \n",
" given_goal, 200, greedy_selection=False)\n",
"nvmdp.visualize_grid(V_grid, trajectories=list(zip(*traj_list2))[0],\n",
" state_space_cmap=False, cmap=plt.cm.Reds_r, \n",
" show_colorbar=True, end_marker=\"*c\", title=\"MLIRL: Iteration 0 (Value). Policy unroll (Given start & goal).\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tensor([ -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, -0.0000, -0.0000, -0.0000, -0.0000,\n",
" -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, 0.0000,\n",
" 0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, 0.5080,\n",
" -99.0213, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" -0.0000, -0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" 100.2747, -98.4586, 0.0001, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, -0.0000, -0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0001, 100.4210, -97.6837, -98.9199, 0.0001, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, -0.0000, -0.0000, 0.0000, -0.0000,\n",
" 0.0000, -0.0001, 100.4977, 2.1820, -97.9399, -98.9193, 0.0001,\n",
" -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0001, 100.5195, 2.0735, 2.0066, -97.9620,\n",
" -98.9199, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" 0.0000, -0.0000, 0.0000, -0.0000, 100.4793, 1.9486, 1.8627,\n",
" 1.7560, -98.4761, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 100.3903, 1.8490,\n",
" 1.7868, 1.7471, -98.2087, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 100.2729,\n",
" 1.7913, 1.7694, 1.7886, -98.1197, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" 100.1450, 1.7674, 1.7796, 1.8249, -98.0757, 0.0000, -0.0000,\n",
" 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, 100.0187, 1.7682, 1.8044, 1.8658, -98.0468, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" 0.0000, -0.0000, 99.9004, 1.7817, 1.8309, 1.8938, -98.0398,\n",
" 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, 1.6502, -96.4667, -96.6643, -97.0986,\n",
" -98.0390, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" 0.0000, -0.0000, 0.0000, -0.0000, 3.1370, 3.0370, 2.6014,\n",
" 1.9161, 0.9694, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 4.3091, 2.4313,\n",
" 1.8748, 1.1861, 0.4799, 0.0000, -0.0000, 0.0000, -0.0000,\n",
" 0.0000, -0.0000, 0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" 2.9282, 1.7421, 0.8223, 0.2376, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, -0.0000, -0.0000, -0.0000, -0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, -0.0000, 0.0000, -0.0000, 0.0000,\n",
" -0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, -0.0000, -0.0000, 0.0000, 0.0000,\n",
" -0.0000, 0.0000, -0.0000, -0.0000, -0.0000, -0.0000, -0.0000,\n",
" -0.0000, 0.0000, -0.0000, -0.0000, -0.0000, 0.0000],\n",
" dtype=torch.float64)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ll = likelihood(Pi_low, traj_list, s_to_idx, a_to_idx)\n",
"nll = -ll\n",
"nll.backward(retain_graph=True)\n",
"R1.grad"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Understanding gradients**\n",
"\n",
"If objective is loss = -loglikelihood: \n",
"R grad positive => objective increases with R => loss increases => ll decreases \n",
"R grad negative => objective decreases with R => loss decreases => ll increases\n",
"\n",
"If objective is loglikelihood: \n",
"R grad positive => objective increases with R => ll increases \n",
"R grad negative => objective decreases with R => ll decreases\n",
"\n",
"PyTorch optimizers take step in the negative direction of the gradient, that is, they try to minimize the objective function. So we'll use nll instead of ll (even though intuitively ll makes more sense). For easier visualization, we'll negate the gradients, so it's easier to infer gradients."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x12129b518>)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nvmdp.visualize_grid(convert_to_grid(nvmdp, S, -R1.grad), state_space_cmap=False, \n",
" cmap=plt.cm.gray, show_colorbar=True,\n",
" title=\"MLIRL R Gradients: temp {}\".format(boltzmann_temp))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x122364d30>)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nvmdp.visualize_grid(convert_to_grid(nvmdp, S, -R1.grad), state_space_cmap=False, \n",
" cmap=plt.cm.gray, show_colorbar=True, vmax=1, vmin=-1,\n",
" title=\"MLIRL R Gradients: temp {}\".format(boltzmann_temp))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Assume high temperature policy"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"VI converged @ 38.\n"
]
}
],
"source": [
"boltzmann_temp = 2.\n",
"R2 = torch.tensor(R_const, requires_grad=True)\n",
"Pi_high, V_high, Q_high = value_iteration(S, A, R2, T, 0.99, n_vi_iter, s_to_idx[given_goal],\n",
" boltzmann_temp=boltzmann_temp)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x1224c8160>)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"V_grid = convert_to_grid(nvmdp, S, V_high)\n",
"\n",
"traj_list2 = sample_trajectories(100, S, A, T, start_states*100, Pi_high, given_goal, 200, greedy_selection=False)\n",
"\n",
"nvmdp.visualize_grid(V_grid, trajectories=list(zip(*traj_list2))[0],\n",
" state_space_cmap=False, cmap=plt.cm.Reds_r, \n",
" show_colorbar=True, end_marker=\"*c\", title=\"MLIRL: Iteration 0 (Value). Policy unroll (Given start & goal).\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"ll = likelihood(Pi_high, traj_list, s_to_idx, a_to_idx)\n",
"nll = -ll\n",
"nll.backward(retain_graph=True)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<Figure size 432x432 with 2 Axes>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x122537c18>)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nvmdp.visualize_grid(convert_to_grid(nvmdp, S, -R2.grad), state_space_cmap=False,\n",
" cmap=plt.cm.gray, show_colorbar=True, \n",
" title=\"MLIRL R Gradients: temp {}\".format(boltzmann_temp))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Temp 0.1: computing policy...\n",
"VI converged @ 28.\n",
"Running backprop...\n",
"Temp 0.4: computing policy...\n",
"VI converged @ 34.\n",
"Running backprop...\n",
"Temp 1.0: computing policy...\n",
"VI converged @ 44.\n",
"Running backprop...\n",
"Temp 2.0: computing policy...\n",
"VI converged @ 67.\n",
"Running backprop...\n",
"Temp 4.0: computing policy...\n",
"VI converged @ 80.\n",
"Running backprop...\n",
"Temp 8.0: computing policy...\n",
"VI converged @ 85.\n",
"Running backprop...\n",
"Temp 10.0: computing policy...\n",
"VI converged @ 86.\n",
"Running backprop...\n"
]
}
],
"source": [
"temp_list = [0.1, 0.4, 1., 2., 4., 8., 10.]\n",
"# temp_list = np.exp(np.linspace(np.log(0.1), np.log(10)))\n",
"R_grad_list = {}\n",
"\n",
"for temp in temp_list:\n",
" \n",
" print(\"Temp {}: computing policy...\".format(temp))\n",
" R = torch.tensor(R_const, requires_grad=True)\n",
" Pi, V, Q = value_iteration(S, A, R, T, 0.95, n_vi_iter, s_to_idx[given_goal], boltzmann_temp=temp)\n",
" print(\"Running backprop...\")\n",
" ll = likelihood(Pi, traj_list, s_to_idx, a_to_idx)\n",
" (-ll).backward()\n",
" R_grad_list[\"temp_\" + str(temp)] = convert_to_grid(nvmdp, S, -R.grad.clone())"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x720 with 14 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(20,10))\n",
"ax = None\n",
"for temp_idx in range(7):\n",
" fig, ax = nvmdp.visualize_grid(R_grad_list[\"temp_\"+ str(temp_list[temp_idx])], \n",
" state_space_cmap=False,\n",
" cmap=plt.cm.gray, show_colorbar=True, \n",
" fig=fig, subplot_str=\"24\" + str(temp_idx+1),\n",
" title=\"temp {}\".format(temp_list[temp_idx]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Effect of temperature on gradients"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"# ---------------\n",
"# 3D surface plot \n",
"# ---------------\n",
"def get_xyz(img_2d):\n",
" \n",
" x_list, y_list, z_list = [], [], []\n",
" for row in range(len(img_2d)):\n",
" for col in range(len(img_2d[0])):\n",
" x, y = row, col\n",
" x_list.append(x)\n",
" y_list.append(y)\n",
" z_list.append(img_2d[row, col])\n",
" return x_list, y_list, z_list\n",
"\n",
"def plot_3d_surface(img_2d, fig, cmap=plt.cm.jet):\n",
" \"\"\"\n",
" Ref: https://python-graph-gallery.com/371-surface-plot/\n",
" \"\"\"\n",
" X, Y, Z = get_xyz(img_2d)\n",
" # ax = fig.add_subplot(122)\n",
" ax = fig.gca(projection='3d')\n",
" ax.plot_trisurf(Y, X, Z, cmap=plt.cm.jet, linewidth=0.2)\n",
" ax.set_zlim(-0.5, 0.5)\n",
" \n",
" ax.invert_yaxis()\n",
" ax.view_init(35, -110)\n",
" \n",
" # to Add a color bar which maps values to colors.\n",
" surf=ax.plot_trisurf(Y, X, Z, cmap=plt.cm.jet, linewidth=0.2)\n",
" fig.colorbar(surf, shrink=0.5, aspect=5)\n",
"\n",
"# ---------------\n",
"# GIF image source\n",
"# ---------------\n",
"def prepare_temp_grad_images(nvmdp, R_grid, expert_traj, \n",
" R_grad_list, figsize=(40,20)):\n",
"\n",
" for temp, grad_img in R_grad_list.items():\n",
" \n",
" plt.close('all')\n",
" fig = plt.figure(figsize=figsize)\n",
" fig, ax = nvmdp.visualize_grid(R_grid, trajectories=expert_traj, cmap=plt.cm.gray,\n",
" state_space_cmap=False, show_colorbar=True, fig=fig, subplot_str=\"121\",\n",
" title=\"IRL GridWorld\", end_marker=\"\")\n",
" fig, ax = nvmdp.visualize_grid(grad_img, trajectories=expert_traj, \n",
" state_space_cmap=False, traj_marker='-b',\n",
" cmap=plt.cm.gray, show_colorbar=True, fig=fig, subplot_str=\"122\",\n",
" title=\"MLIRL R Gradients. {}.\".format(temp))\n",
" \n",
" \n",
" yield read_pil_image_from_plt(plt)\n",
" plt.clf()\n",
" \n",
"def prepare_temp_grad_images_3d(nvmdp, R_grid, expert_traj, \n",
" R_grad_list, figsize=(40,20)):\n",
"\n",
" v_min = np.min(list(R_grad_list.values()))\n",
" v_max = np.max(list(R_grad_list.values()))\n",
" normalize = lambda x: (x-v_min)/(v_max-v_min) - 0.5\n",
" for temp, grad_img in R_grad_list.items():\n",
" \n",
" plt.close('all')\n",
" fig = plt.figure(figsize=(14,14))\n",
" plot_3d_surface(normalize(grad_img), fig, cmap=plt.cm.jet)\n",
" plt.title(\"MLIRL R Gradients. {}.\".format(temp.replace(\"_\", \" \")))\n",
" yield read_pil_image_from_plt(plt)\n",
" plt.clf()\n",
" \n",
"def prepare_temp_images(nvmdp, expert_traj, R_grad_list):\n",
" \n",
" for temp, grad_img in R_grad_list.items():\n",
" \n",
" nvmdp.visualize_grid(grad_img, trajectories=expert_traj, \n",
" state_space_cmap=False, traj_marker='-b',\n",
" cmap=plt.cm.Reds_r, show_colorbar=True, new_fig=False, subplot_str=\"32\" + str(3 + j),\n",
" title=\"MLIRL R Gradients. {}, temp: {}\".format(temp))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxUAAAMOCAYAAABoDCtSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl4G+W5N/7vjKzdtuR932PHTkKANCEp0JLS9rD1UJpCfy3XYSndKHQ5lJe9JcBpD6XlFMrbnkMpW9oLSt+2AdL1LT0NfYFD4hBCAsQhC0lIQkIWYtmWbGuZ+f1hZpBs2ZJmRtIj+fu5LpfGlkaPRrL83PPc93NLqqqCiIiIiIjIKDnfAyAiIiIiosLGoIKIiIiIiExhUEFERERERKYwqCAiIiIiIlMYVBARERERkSkMKoiIiIiIyBQGFUREREREZAqDCiIiIiIiMoVBBRERERERmVKS4e3ZfpuIiIio8Ej5HgAVN65UEBERERGRKQwqiIiIiIjIFAYVRERERERkCoMKIiIiIiIyhUEFERERERGZwqCCiIiIiIhMYVBBRERERESmMKggIiIiIiJTGFQQEREREZEpDCqIiIiIiMgUBhVERERERGQKgwoiIiIiIjKFQQUREREREZnCoIKIiIiIiExhUEFERERERKYwqCAiIiIiIlMYVBARERERkSkMKoiIiIiIyBQGFUREREREZAqDCiIiIiIiMoVBBRERERERmcKggoiIiIiITGFQQUREREREpjCoICIiIiIiUxhUEBERERGRKQwqiIiIiIjIFAYVRERERERkCoMKIiIiIiIyhUEFERERERGZwqCCiIiIiIhMYVBBRERERESmMKggIiIiIiJTGFQQEREREZEpDCqIiIiIiMgUBhVERERERGQKgwoiIiIiIjKFQQUREREREZnCoIKIiIiIiExhUEFERERERKYwqCAiIiIiIlMYVBARERERkSkMKoioaOzZsweSJOG2226b8XtERERkLQYVNKs9++yzkCQJkiTha1/7WtLbHD58GA6HA5IkYfny5Qk/W758OUpLS1M+TrLb3XbbbfpjS5IEWZZRWVmJj370o1izZk3S40iShE984hPpPblJ4p+r9lVaWopFixbhnnvuQTQazfiYv//977FixQo0NzfD6XSitLQUfX19+MIXvoC///3vhsZZ6J566qmcBjCPPvoo7r333pw9Xq688cYbuOCCC1BRUQGv14sPfehDGb2n+vv78Y1vfAOnnXYaSktLIUkSHn300ewNmIholivJ9wCIROByufD444/jP/7jP+B0OhN+9stf/hKqqqKkJDu/LnfccQc6OjoQjUaxa9cu/OxnP8MnP/lJPPbYY7j44ostf7zPfe5zOPfcc6GqKg4dOoRf/OIX+Na3voWBgQE88MADaR1jdHQUF198MZ566inMnTsXl156KTo7OxGLxbB9+3b84Q9/wMMPP4zHH38cn/vc5yx/Dploa2vD6Oho1l6/yZ566imsWrUqZ4HFo48+ij179uBf//Vfc/J4ubBr1y6ceuqpKCkpwfXXXw+fz4ef//znOOuss/DnP/8ZH/vYx1Ie409/+hN++tOfore3FyeeeCL+53/+JwcjJyKavRhUEAH41Kc+hV/96ld4+umn8ZnPfCbhZ4888gjOPfdc/Pd//3dWHvucc87B4sWL9X9feOGFOOmkk3DnnXdmJahYtGgR/uVf/kX/91VXXYXe3l48+OCD+N73voeampqUx/jqV7+Kp556Ctdddx2+//3vQ5YTFz3vvvtuPPnkk/B4PDMeR1VVBIPBtFZ7jJIkCS6XK2vHJ+vddNNNGBwcxMaNG3HSSScBAC699FLMnz8fV199NbZu3QpFURCNRhGJRPRVN0mS9GN89atfxXXXXQev14vf/va3DCqIiLKM6U9EmJhoL1y4EI888kjC9/v7+/H666/j85//fM7GcuKJJ6K6uho7duzIyeN5vV4sW7YMqqpi165dKW+/ZcsWrFq1CqeddhruuuuuKQEFMDGRX7FiBc4++2z9e1r61aOPPoqf/vSnmDdvHlwuF+6++24AE+f68ssvR09PDzweD8rKynDaaafhySefTDqO559/Hqeddhrcbjfq6urwta99DSMjI1NuN1NNxa9//WucfvrpKCsrg8fjwdKlS/Hb3/426fO5/PLL8eKLL+KMM86A1+tFVVUVvvjFLyY85vLly7Fq1Sr9PtqXlnazb98+XHHFFWhra4PT6URtbS1OPfVU/T6Zam9vxz/+8Q/s3bs34fGeffZZ/TY7duzAJZdcgoaGBjgcDrS3t+O6665DMBhMONbll18OSZJw7NgxXH755aiurkZZWRkuuOACHDp0CADwwAMPoK+vDy6XC729vXj66acTjhF/rn/1q19h4cKFcLlcaG1txW233ZZWil0wGMSaNWuwfPlynHTSSVBVFbFYDHa7HZdeeim2b9+OZ599FsFgEOPj44jFYvpXvLq6Oni9XkPnlYiIMseVCqL3XHHFFfjWt76FAwcOoKmpCQDw8MMPo7a21nAdgxHHjx/Hu+++i7q6upw9phZMVFZWprzt7373OwDAF77whYQrw+m69957cezYMXzpS19CfX09WlpaAABPPvkktm3bhs985jNoa2vDsWPHsGrVKqxYsWJKKtj69evxsY99DGVlZbjhhhvg9/vxxBNP4NJLL017HN/+9rfxve99D2effTb+7d/+DbIs48knn8RFF12En/zkJ7j66qsTbv/KK6/gE5/4BD7/+c/j4osvxrPPPouHHnoIsizraWO33HILFEXBc889h1/+8pf6fU899VREo1F8/OMfx4EDB3DVVVehp6cHgUAAW7ZswXPPPYfLLrvM0Lm86aabcPToUdxzzz369/v6+gAAGzduxJlnngm/34+vfOUraGpqwubNm3HffffhhRdewD/+8Q/Y7faEY5599tlobm7GHXfcgZ07d+K+++7Dpz71KaxYsQIPPPAAvvCFL8DlcuG+++7DhRdeiO3bt6OjoyPhGGvWrMGbb76Jq6++GvX19VizZg1uv/127N27d0rgPtkrr7yC8fFxLFmyBMPDwwnBwqJFi/TbnHLKKQAARVEAAJFIBDabzdB7koiILKCqaiZfREVl7dq1KgD1hz/8oXr06FHV4XCo3/ve91RVVdVQKKT6fD712muvVVVVVb1er3rGGWck3P+MM85QvV5vysdJdruVK1eqANS//e1v6pEjR9SDBw+qzz//vLp8+XIVgHrddddNOQ4A9bzzzjP1XG+//Xb1yJEj6uHDh9UtW7aoV111lQpAPeWUU9I6zooVK1QA6ssvvzzlZ8eOHVOPHDmifwUCgSmPX1FRob7zzjtT7jsyMjLle8FgUO3p6VH7+voSvv/BD35Qtdvt6htvvKF/b3x8XF2yZIkKQF25cqX+/d27d0/53saNG1UA6k033TTlMT/5yU+qZWVl6tDQkP49AKokSeq6desSbnvuueeqJSUl6vDwsP69yy67TJ34aE20efNmFYB61113TfmZGWeccYba1taW9GcLFy5U586dm/BcVFVVV69erQJQH3nkEf17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6upqs0OcEXtXEFEuMajIgv7+fsyZMwednZ0AgM9+9rN4+umnpwQV3/nOd3DDDTfghz/8Ycpjut1ujI2NYWxsDAMDA2hoaEAgEEAkEtF3Zero6IDH40n7D4fVze+sJOrknelPmRFxTKIRtaYinTFpxdLaSkQwGITT6YTf7895fVZvby82bdpkadG21SsVmr6+Prz88suoqKjI+goCe1cQUa4wqMiCAwcOoKWlRf93c3Mz1q9fn3Cbl19+Gfv27cN55503bVChqireeustPP/88zhy5Ag+/OEPw+Fw4Mwzz8Q3v/lNNDc366lMRmi7P4mIk/fMiDguESfKlJ7pAh2tX40WRIyNjcHj8cDv96OtrQ1erzdvr7vb7UZdXR327NmDzs5OS34fzAZ80610uFwuNDY24s0330R3d3fKY5jF3hVElAsMKvJAURR861vfwqOPPjrlZyMjI3j44YfxwgsvYGBgAK2trTjttNNQW1uLe++9Fz09PZaNQ9QUI0DcsYk6LhGDCoArFYUuGo3qqZWDg4OIxWJ6UXV3dzdcLldeg8fJj60VbTc2NlrWo8HsSsV0929tbcX69evR2NgIr9c77TGsWMmSJAmHDh2Coijo6OhgwE9EWcGgIguampqwb98+/d/79+9HU1OT/u/h4WG89tprWL58OQDg0KFDOP/887FmzRosWLAALpcLK1euRG9vr35VafPmzZb/IRB1ggyIOzZR07JEDCpEHBPNLBwOY3BwEKFQCJs2bYIkSfD5fPD7/aZXRnMhvmj7hBNOyPtV+Zl67ciyjL6+PmzduhWLFy+e9vPdqn49kUgEqqqydwURZQ0/WbJgyZIl2LFjB3bv3o2mpiY88cQTePzxx/Wf+3w+HD16VP/38uXLcffdd+u7P335y1+ecky3243R0VFLxynqxB3g5D1Too6LUstXTYWqqlOKqu12O3w+H0pKSnDiiScKH0QkE18Ine8r8qkKvf1+PzweDw4ePIjGxsakt7EqqFAUBSUlJexdQURZw6AiC0pKSvCTn/wEZ511FmKxGK644grMnz8ft956KxYvXozzzz8/42N6PJ6sBBWsqciMqIGYiEGFiGOazVRVTWgyFwwG9SZzTU1NKC0t1Sev7777bkFfze7t7cXLL7+c98LkdAq9e3p60N/fj5qamqTjtTKo0IrCw+GwZelhRESawv2rIbhz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4bPPPkNoaCgmT54MANi8eTPu3LkDAFixYgWOHDmCjz76CFKpFA4ODsjIyOCp4kRERIMIlz8RERERDX38poZExeVPRERERERkEoYKIiIiIiIyCUMFERERERGZhKGCaIg4ceIEJkyYgMDAQGzdurXb4z/99BNeeOEFBAYGIioqCqWlpZYvkoiIiIYkhgqiIUCn0+HVV1/F119/je+//x7p6en4/vvvu1yzd+9euLq6ori4GH/+85/xxhtvWKlaIiIiGmoYKoiGAI1Gg8DAQIwfPx52dnb43e9+h2PHjnW55tixY3jxxRcBAM899xxycnJgZPc3IiIioh4xVBANARUVFfD19TXc9vHxQUVFRa/XSKVSuLi4oL6+3qJ1EhER0dDEUEFERERERCZhqCAaAuRyOcrKygy3y8vLIZfLe72ms7MTTU1NkMlkFq2TiIiIhiaGCqIhYOrUqSgqKsKtW7fQ3t6OjIwMzJkzp8s1c+bMwcGDBwEAR44cwaxZsyCR8IBVIiIiMp3U2gUQkemkUil2794NpVIJnU6HJUuWIDg4GBs2bMCUKVMwZ84cvPzyy/jjH/+IwMBAuLm5ISMjw9plExER0RAhMbL7C1vFEBEREQ0+nJomUXH5ExERERERmYShgoiIiIiITMJQQUREREREJmGoICIiIiIikzBUEBERERGRSRgqiIiIiIjIJAwVRERERERkEoYKIiIiIiIyCUMFERERERGZhKGCiIiIiIhMwlBBREREREQmYaggIiIiIiKTMFQQEREREZFJGCqIiIiIiMgkDBVERERERGQShgoiIiIiIjIJQwUREREREZmEoYKIiIiIiEzCUEFERERERCZhqCAiIiIiIpMwVBARERERkUkYKoiIiIiIyCQMFUREREREZBKGCiIiIiIiMglDBRERERERmYShgoiIiIiITCI18nqJKFUQEREREdGgxZkKIiIiIiIyCUMFERERERGZhKGCiIiIiIhMwlBBREREREQmYaggIiIiIiKTMFQQEREREZFJGCqIiIiIiMgkDBVERERERGQShgoiIiIiIjIJQwUREREREZnk/wAGgTSEmrX9HAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 1008x1008 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"for x in prepare_temp_grad_images_3d(nvmdp, R_grid, list(zip(*traj_list))[0], R_grad_list):\n",
" break"
]
},
{
"cell_type": "code",
"execution_count": 245,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1008x1008 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"create_gif(lambda: prepare_temp_grad_images_3d(nvmdp, R_grid, list(zip(*traj_list))[0], R_grad_list),\n",
" figsize=(30,45), fps=5, cmap=None, gif_name=\"./__gif__irl_one_obstacle__mlirl_temp_effects_3d_normalized.gif\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"./__gif__irl_one_obstacle__mlirl_temp_effects_3d_normalized.gif\">"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "irl_python3",
"language": "python",
"name": "irl_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.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@yrevar
Copy link
Author

yrevar commented Feb 3, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment