diff --git a/code/environment/gyroscope_environment_testing.ipynb b/code/environment/gyroscope_environment_testing.ipynb new file mode 100644 index 0000000..a058745 --- /dev/null +++ b/code/environment/gyroscope_environment_testing.ipynb @@ -0,0 +1,367 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Gyroscope Environment Testbed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Import" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import gym\n", + "from gym import spaces\n", + "from gym.utils import seeding\n", + "import numpy as np\n", + "from os import path\n", + "from scipy.integrate import solve_ivp\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Environment Class and Modules" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "class GyroscopeEnv(gym.Env):\n", + " \n", + " \n", + " \"\"\"\n", + " GyroscopeEnv is a double gimbal control moment gyroscope (DGCMG) with 2 input voltage u1 and u2 \n", + " on the two gimbals, and disk speed assumed constant (parameter w). Simulation is based on the \n", + " Quanser 3-DOF gyroscope setup.\n", + " \n", + " \n", + " **STATE:**\n", + " The state consists of the angle and angular speed of the outer red gimbal (theta = x1, thetadot = x2),\n", + " the angle and angular speed of the inner blue gimbal (phi = x3, phidot = x4), the difference to the reference\n", + " for tracking on theta and phi (tracking error theta = diff_x1, tracking error phi = diff_x3), and the \n", + " disk speed (disk speed = w):\n", + " \n", + " state = [x1, x2, x3, x4, diff_x1, diff_x3, w]\n", + " \n", + " **ACTIONS:**\n", + " The actions are the input voltage to create the red and blue gimbal torque (red voltage = u1, blue voltage = u2),\n", + " and are continuous in a range of -10 and 10V:\n", + " \n", + " action = [u1,u2]\n", + " \n", + " \"\"\"\n", + " \n", + " \n", + " metadata = {\n", + " 'render.modes' : ['human', 'rgb_array'],\n", + " 'video.frames_per_second' : 30\n", + " }\n", + "\n", + " def __init__(self, dt):\n", + " \n", + " \n", + " # Reference angles on theta and phi\n", + " self.x1_ref = 0\n", + " self.x3_ref = 0\n", + " \n", + " # Gold disk speed \n", + " self.w = 0\n", + " \n", + " # Inertias in Kg*m2\n", + " self.Jbx1 = 0.0019\n", + " self.Jbx2 = 0.0008\n", + " self.Jbx3 = 0.0012\n", + " self.Jrx1 = 0.0179\n", + " self.Jdx1 = 0.0028\n", + " self.Jdx3 = 0.0056\n", + " \n", + " # Combined inertias\n", + " self.J1 = self.Jbx1 - self.Jbx3 + self.Jdx1 - self.Jdx3\n", + " self.J2 = self.Jbx1 + self.Jdx1 + self.Jrx1\n", + " self.J3 = self.Jbx2 + self.Jdx1\n", + "\n", + " # Motor constants\n", + " self.Kamp = 0.5 # A/V\n", + " self.Ktorque = 0.0704 # Nm/A\n", + " self.eff = 0.86\n", + " self.nRed = 1.5\n", + " self.nBlue = 1\n", + " self.KtotRed = self.Kamp*self.Ktorque*self.eff*self.nRed \n", + " self.KtotBlue = self.Kamp*self.Ktorque*self.eff*self.nBlue \n", + " \n", + " # Time step in s\n", + " self.dt = dt\n", + " \n", + " # Action space\n", + " self.maxVoltage = 10 # V\n", + " self.highAct = np.array([self.maxVoltage,self.maxVoltage])\n", + " self.action_space = spaces.Box(low = -self.highAct, high = self.highAct, dtype=np.float32) \n", + " \n", + " # Observation space (here it is equal to state space)\n", + " self.maxSpeed = 733.04 # rad/s (7000rpm)\n", + " self.maxAngle = np.pi\n", + " self.maxdiffAngle = np.pi\n", + " self.maxdiskSpeed = 400 * 2 * np.pi / 60\n", + " self.highObs = np.array([self.maxAngle,self.maxSpeed,self.maxAngle,self.maxSpeed,self.maxdiffAngle,self.maxdiffAngle,self.maxdiskSpeed])\n", + " self.observation_space = spaces.Box(low = -self.highObs, high = self.highObs, dtype=np.float32)\n", + "\n", + " # Seed for random number generation\n", + " self.seed()\n", + " \n", + " self.viewer = None\n", + "\n", + " def seed(self, seed=None):\n", + " self.np_random, seed = seeding.np_random(seed)\n", + " return [seed]\n", + " \n", + " \n", + "\n", + " def step(self,u):\n", + " x1, x2, x3, x4, diff_x1, diff_x3, w= self.state \n", + " u1,u2 = u\n", + " \n", + " reward = diff_x1**2 + diff_x1**2 + .001*(u1**2) + .001*(u2**2)\n", + "\n", + " results = solve_ivp(fun = dxdt, t_span = (0, self.dt), y0 = [x1,x2,x3,x4], method='RK45', args=(u1,u2,self))\n", + " \n", + " x1 = angle_normalize(results.y[0][-1])\n", + " x2 = np.clip(results.y[1][-1],-self.maxSpeed,self.maxSpeed)\n", + " x3 = angle_normalize(results.y[2][-1])\n", + " x4 = np.clip(results.y[3][-1],-self.maxSpeed,self.maxSpeed)\n", + " \n", + " if self.x1_ref is None:\n", + " diff_x1 = 0\n", + " else:\n", + " diff_x1 = angle_normalize(x1-self.x1_ref)\n", + " \n", + " if self.x3_ref is None:\n", + " diff_x3 = 0\n", + " else:\n", + " diff_x3 = angle_normalize(x3-self.x3_ref)\n", + " \n", + " self.state = np.asarray([x1,x2,x3,x4,diff_x1,diff_x3,w])\n", + "\n", + " return (self.state, reward, False, {})\n", + "\n", + " def reset(self, x_0 = None):\n", + " \n", + " # Generate random state (for training) or take the given one (for simulation)\n", + " if x_0 is None:\n", + " state = self.np_random.uniform(low=-self.highObs, high=self.highObs)\n", + " else:\n", + " state = x_0\n", + " \n", + " \n", + " # Reference angles on theta and phi\n", + " self.x1_ref = angle_normalize(state[0] - state[4])\n", + " self.x3_ref = angle_normalize(state[2] - state[5])\n", + " \n", + " # Gold disk speed \n", + " self.w = state[-1]\n", + " \n", + " self.state = state\n", + " \n", + " return self.state\n", + "\n", + "\n", + " def render(self, mode='human'):\n", + " return None\n", + " \n", + " def close(self):\n", + " if self.viewer:\n", + " self.viewer.close()\n", + " self.viewer = None\n", + " \n", + "def dxdt(t, x, u1, u2, gyro):\n", + " \n", + " # Rewrite constants shorter\n", + " J1 = gyro.J1\n", + " J2 = gyro.J2\n", + " J3 = gyro.J3\n", + " Jdx3 = gyro.Jdx3\n", + " KtotRed = gyro.KtotRed\n", + " KtotBlue = gyro.KtotBlue\n", + " w = gyro.w\n", + " dt = gyro.dt\n", + " \n", + " # Convert input voltage to input torque\n", + " u1,u2 = KtotRed*u1, KtotBlue*u2\n", + " \n", + " # Equations of motion \n", + " dx_dt = [0, 0, 0, 0]\n", + " dx_dt[0] = x[1]\n", + " dx_dt[1] = (u1+J1*np.sin(2*x[2])*x[1]*x[3]-Jdx3*np.cos(x[2])*x[3]*w)/(J2 + J1*np.power(np.sin(x[2]),2))\n", + " dx_dt[2] = x[3]\n", + " dx_dt[3] = (u2 - J1*np.cos(x[2])*np.sin(x[2])*np.power(x[1],2)+Jdx3*np.cos(x[2])*x[1]*w)/J3\n", + " return dx_dt\n", + " \n", + "def angle_normalize(x):\n", + " return (((x+np.pi) % (2*np.pi)) - np.pi) # To keep the angles between -pi and pi\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Testing" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# Test parameters\n", + "w_rpm = 200\n", + "w = w_rpm * 2 * np.pi / 60\n", + "x_0 = [0.5, 0.2, 0.5, 0,0,0,w]\n", + "x1_ref = 1\n", + "x3_ref = 1\n", + "dt = .02\n", + "\n", + "# Create env\n", + "env = GyroscopeEnv(dt)\n", + "env.seed(2)\n", + "state = env.reset(x_0)\n", + "\n", + "# Test\n", + "time = np.arange(0, 5.5, dt)\n", + "reward = None\n", + "val = []\n", + "for i in range(len(time)):\n", + " val.append(state)\n", + " u = [0,0]#env.action_space.sample()\n", + " state, reward, done, info = env.step([0,0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "f, axs = plt.subplots(3,2,figsize=(19,19))\n", + "time = np.arange(0, 5.5, 0.02)\n", + "plt.subplot(3,2,1)\n", + "plt.title('Red gimbal angle',fontsize=20)\n", + "plt.xlabel('time (s)',fontsize=16)\n", + "plt.ylabel(r'$\\theta$ (rad)',fontsize=16)\n", + "plt.grid()\n", + "plt.plot(time,[row[0] for row in val],'r-')\n", + "\n", + "plt.subplot(3,2,2)\n", + "plt.title('Red gimbal speed',fontsize=20)\n", + "plt.xlabel('time (s)',fontsize=16)\n", + "plt.ylabel(r'$\\dot \\theta$ (rad/s)',fontsize=16)\n", + "plt.grid()\n", + "plt.plot(time,[row[1] for row in val],'r-')\n", + "\n", + "plt.subplot(3,2,3)\n", + "plt.title('Blue gimbal angle',fontsize=20)\n", + "plt.xlabel('time (s)',fontsize=16)\n", + "plt.ylabel(r'$\\phi$ (rad)',fontsize=16)\n", + "plt.grid()\n", + "plt.plot(time,[row[2] for row in val],'b-')\n", + "\n", + "plt.subplot(3,2,4)\n", + "plt.title('Blue gimbal speed',fontsize=20)\n", + "plt.xlabel('time (s)',fontsize=16)\n", + "plt.ylabel(r'$\\dot \\phi$ (rad/s)',fontsize=16)\n", + "plt.grid()\n", + "plt.plot(time,[row[3] for row in val],'b-')\n", + "\n", + "plt.subplot(3,2,5)\n", + "plt.title('Red gimbal tracking error',fontsize=20)\n", + "plt.xlabel('time (s)',fontsize=16)\n", + "plt.ylabel(r'$\\theta$ error (rad)',fontsize=16)\n", + "plt.grid()\n", + "plt.plot(time,[row[4] for row in val],'r-')\n", + "\n", + "plt.subplot(3,2,6)\n", + "plt.title('Blue gimbal tracking error',fontsize=20)\n", + "plt.xlabel('time (s)',fontsize=16)\n", + "plt.ylabel(r'$\\phi$ error (rad)',fontsize=16)\n", + "plt.grid()\n", + "plt.plot(time,[row[5] for row in val],'b-')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ps1venv", + "language": "python", + "name": "ps1venv" + }, + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/code/training_spinuplib/gyroscope_baseline_spinuplib.ipynb b/code/training_spinuplib/gyroscope_baseline_spinuplib.ipynb index 199f31d..1b86377 100644 --- a/code/training_spinuplib/gyroscope_baseline_spinuplib.ipynb +++ b/code/training_spinuplib/gyroscope_baseline_spinuplib.ipynb @@ -1,10453 +1,10583 @@ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "x83dMPapQBN6" }, "source": [ "# Gyroscope DDPG/TD3/SAC training of baseline (spinup library)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": {}, "colab_type": "code", "id": "fuJhdd479TpP" }, "outputs": [], "source": [ "import gym\n", "from gym import spaces\n", "from gym.utils import seeding\n", "import gym_GyroscopeEnv\n", "\n", "import spinup\n", "\n", "from os import path\n", "from scipy.integrate import solve_ivp\n", "import random\n", "import torch\n", "import numpy as np\n", "from collections import deque\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "from vpython import *\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "O0O0t5ZR9Tp6" }, "source": [ "## Environment Class and Modules" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": {}, "colab_type": "code", "id": "Al_k1rtvQBOM" }, "outputs": [], "source": [ "class GyroscopeEnv(gym.Env):\n", " \n", " \n", " \"\"\"\n", " GyroscopeEnv is a double gimbal control moment gyroscope (DGCMG) with 2 input voltage u1 and u2 \n", " on the two gimbals, and disk speed assumed constant (parameter w). Simulation is based on the \n", " Quanser 3-DOF gyroscope setup.\n", " \n", " \n", " **STATE:**\n", " The state consists of the angle and angular speed of the outer red gimbal (theta = x1, thetadot = x2),\n", " the angle and angular speed of the inner blue gimbal (phi = x3, phidot = x4), the difference to the reference\n", " for tracking on theta and phi (tracking error theta = diff_x1, tracking error phi = diff_x3), and the \n", " disk speed (disk speed = w):\n", " \n", " state = [x1, x2, x3, x4, diff_x1, diff_x3, w]\n", " \n", " **ACTIONS:**\n", " The actions are the input voltage to create the red and blue gimbal torque (red voltage = u1, blue voltage = u2),\n", " and are continuous in a range of -10 and 10V:\n", " \n", " action = [u1,u2]\n", " \n", " \"\"\"\n", " \n", " \n", " metadata = {\n", " 'render.modes' : ['human', 'rgb_array'],\n", " 'video.frames_per_second' : 30\n", " }\n", "\n", " def __init__(self):\n", " \n", " # Inertias in Kg*m2\n", " self.Jbx1 = 0.0019\n", " self.Jbx2 = 0.0008\n", " self.Jbx3 = 0.0012\n", " self.Jrx1 = 0.0179\n", " self.Jdx1 = 0.0028\n", " self.Jdx3 = 0.0056\n", " \n", " # Combined inertias\n", " self.J1 = self.Jbx1 - self.Jbx3 + self.Jdx1 - self.Jdx3\n", " self.J2 = self.Jbx1 + self.Jdx1 + self.Jrx1\n", " self.J3 = self.Jbx2 + self.Jdx1\n", "\n", " # Motor constants\n", " self.Kamp = 0.5 # A/V\n", " self.Ktorque = 0.0704 # Nm/A\n", " self.eff = 0.86\n", " self.nRed = 1.5\n", " self.nBlue = 1\n", " self.KtotRed = self.Kamp*self.Ktorque*self.eff*self.nRed \n", " self.KtotBlue = self.Kamp*self.Ktorque*self.eff*self.nBlue \n", " \n", " # Time step in s\n", " self.dt = 0.05\n", " \n", " # Error\n", " self.int_diff_x1 = 0\n", " self.int_diff_x3 = 0\n", " \n", " # Action space\n", " self.maxVoltage = 10 # V\n", " self.highAct = np.array([self.maxVoltage,self.maxVoltage])\n", " self.action_space = spaces.Box(low = -self.highAct, high = self.highAct, dtype=np.float32) \n", " \n", " # Observation space (here it is equal to state space)\n", " self.maxSpeed = 100 * 2 * np.pi / 60\n", " self.maxAngle = np.pi\n", " self.maxdiskSpeed = 300 * 2 * np.pi / 60\n", " self.highObs = np.array([self.maxAngle,self.maxSpeed,self.maxAngle,self.maxSpeed,self.maxAngle,self.maxAngle,self.maxdiskSpeed])\n", " self.observation_space = spaces.Box(low = -self.highObs, high = self.highObs, dtype=np.float32)\n", "\n", " # Seed for random number generation\n", " self.seed()\n", " \n", " self.viewer = None\n", "\n", " def seed(self, seed=None):\n", " self.np_random, seed = seeding.np_random(seed)\n", " return [seed]\n", " \n", " \n", "\n", " def step(self,u):\n", " x1, x2, x3, x4, x1_ref, x3_ref, w= self.state \n", " u1,u2 = u\n", " \n", " # Angle error\n", " diff_x1 = angle_normalize(x1 - x1_ref)\n", " diff_x3 = angle_normalize(x3 - x3_ref)\n", " \n", " # Integral of error\n", " self.int_diff_x1 = self.int_diff_x1 + diff_x1\n", " self.int_diff_x3 = self.int_diff_x3 + diff_x3\n", " \n", " # Reward 1: differentiable reward (LQR obj function)\n", " reward = -((3*diff_x1)**2 + (3*diff_x3)**2 + (.2*x2)**2 + (.2*x4)**2 + (.1*u1)**2 + (.1*u2)**2)\\\n", " #-(0.01*abs(self.int_diff_x1) + 0.01*abs(self.int_diff_x3))\n", "\n", " \"\"\"# Count time spent in goal:\n", " if abs(diff_x1)<0.05 and abs(diff_x3)<0.05:\n", " self.countGoal +=1\n", " else:\n", " self.countGoal = 0\n", " \n", " # Reward 2: sparse reward for staying in goal range for a long time \n", " if self.countGoal >= (self.timeGoal)/self.dt: #max expected reward over length becomes 0 + (totaltime-goaltime)\n", " reward += 1\"\"\"\n", "\n", "\n", " results = solve_ivp(fun = dxdt, t_span = (0, self.dt), y0 = [x1,x2,x3,x4], method='RK45', args=(u1,u2,self))\n", " \n", " x1 = angle_normalize(results.y[0][-1])\n", " x2 = np.clip(results.y[1][-1],-self.maxSpeed,self.maxSpeed)\n", " x3 = angle_normalize(results.y[2][-1])\n", " x4 = np.clip(results.y[3][-1],-self.maxSpeed,self.maxSpeed)\n", " \n", " self.state = np.asarray([x1,x2,x3,x4,x1_ref, x3_ref,w])\n", "\n", " return (self.state, reward, False, {})\n", "\n", " def reset(self, state = None):\n", " \n", " \n", " # Generate random state (for training) or use given state (for simulation)\n", " if state is None:\n", " self.state = self.np_random.uniform(low=-self.highObs, high=self.highObs)\n", " else:\n", " self.state = state\n", "\n", " \n", " return self.state\n", "\n", "\n", " def render(self, mode='human'):\n", " return None\n", " \n", " def close(self):\n", " if self.viewer:\n", " self.viewer.close()\n", " self.viewer = None\n", " \n", "def dxdt(t, x, u1, u2, gyro):\n", " \n", " # Rewrite constants shorter\n", " J1 = gyro.J1\n", " J2 = gyro.J2\n", " J3 = gyro.J3\n", " Jdx3 = gyro.Jdx3\n", " KtotRed = gyro.KtotRed\n", " KtotBlue = gyro.KtotBlue\n", " w = x[-1]\n", "\n", " # Convert input voltage to input torque\n", " u1,u2 = KtotRed*u1, KtotBlue*u2\n", " \n", " # Equations of motion \n", " dx_dt = [0, 0, 0, 0]\n", " dx_dt[0] = x[1]\n", " dx_dt[1] = (u1+J1*np.sin(2*x[2])*x[1]*x[3]-Jdx3*np.cos(x[2])*x[3]*w)/(J2 + J1*np.power(np.sin(x[2]),2))\n", " dx_dt[2] = x[3]\n", " dx_dt[3] = (u2 - J1*np.cos(x[2])*np.sin(x[2])*np.power(x[1],2)+Jdx3*np.cos(x[2])*x[1]*w)/J3\n", " return dx_dt\n", " \n", "def angle_normalize(x):\n", " return (((x+np.pi) % (2*np.pi)) - np.pi) # To keep the angles between -pi and pi\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "be0wYIeBQBOc" }, "source": [ "## Training" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### DDPG" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 533 }, "colab_type": "code", "executionInfo": { "elapsed": 654004, "status": "error", "timestamp": 1584037207187, "user": { "displayName": "Matthieu Le Cauchois", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", "userId": "10992927378504656501" }, "user_tz": -60 }, "id": "fLyFHs0yQBOd", "outputId": "260489ff-5e40-416a-e529-5a0cfcaefceb" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning: Log dir ddpg_b0 already exists! Storing info there anyway.\n", "\u001b[32;1mLogging data to ddpg_b0/progress.txt\u001b[0m\n", "\u001b[36;1mSaving config:\n", "\u001b[0m\n", "{\n", " \"ac_kwargs\":\t{\n", " \"activation\":\t\"ReLU\",\n", " \"hidden_sizes\":\t[\n", " 300\n", " ]\n", " },\n", " \"act_noise\":\t0.1,\n", " \"actor_critic\":\t\"MLPActorCritic\",\n", " \"batch_size\":\t100,\n", " \"env_fn\":\t\"GyroscopeEnv\",\n", " \"epochs\":\t60,\n", " \"exp_name\":\t\"baseline\",\n", " \"gamma\":\t0.99,\n", " \"logger\":\t{\n", " \"\":\t{\n", " \"epoch_dict\":\t{},\n", " \"exp_name\":\t\"baseline\",\n", " \"first_row\":\ttrue,\n", " \"log_current_row\":\t{},\n", " \"log_headers\":\t[],\n", " \"output_dir\":\t\"ddpg_b0\",\n", " \"output_file\":\t{\n", " \"<_io.TextIOWrapper name='ddpg_b0/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", " \"mode\":\t\"w\"\n", " }\n", " }\n", " }\n", " },\n", " \"logger_kwargs\":\t{\n", " \"exp_name\":\t\"baseline\",\n", " \"output_dir\":\t\"ddpg_b0\"\n", " },\n", " \"max_ep_len\":\t110,\n", " \"num_test_episodes\":\t10,\n", " \"pi_lr\":\t0.001,\n", " \"polyak\":\t0.995,\n", " \"q_lr\":\t0.001,\n", " \"replay_size\":\t1000000,\n", " \"save_freq\":\t1,\n", " \"seed\":\t0,\n", " \"start_steps\":\t10000,\n", " \"steps_per_epoch\":\t1650,\n", " \"update_after\":\t1000,\n", " \"update_every\":\t50\n", "}\n", "\u001b[32;1m\n", "Number of parameters: \t pi: 3002, \t q: 3301\n", "\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/matthieulc/.local/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: Box bound precision lowered by casting to float32\u001b[0m\n", " warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 1 |\n", "| AverageEpRet | -7.37e+03 |\n", "| StdEpRet | 1.02e+03 |\n", "| MaxEpRet | -5.32e+03 |\n", "| MinEpRet | -8.94e+03 |\n", "| AverageTestEpRet | -6.94e+03 |\n", "| StdTestEpRet | 1.71e+03 |\n", "| MaxTestEpRet | -4.1e+03 |\n", "| MinTestEpRet | -1.02e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+03 |\n", "| AverageQVals | -116 |\n", "| StdQVals | 60 |\n", "| MaxQVals | 3.42 |\n", "| MinQVals | -318 |\n", "| LossPi | 107 |\n", "| LossQ | 1.62e+03 |\n", "| Time | 4.36 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 2 |\n", "| AverageEpRet | -6.95e+03 |\n", "| StdEpRet | 1.29e+03 |\n", "| MaxEpRet | -4.93e+03 |\n", "| MinEpRet | -8.91e+03 |\n", "| AverageTestEpRet | -6.91e+03 |\n", "| StdTestEpRet | 2.09e+03 |\n", "| MaxTestEpRet | -4.2e+03 |\n", "| MinTestEpRet | -1.17e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+03 |\n", "| AverageQVals | -376 |\n", "| StdQVals | 144 |\n", "| MaxQVals | -58.1 |\n", "| MinQVals | -1e+03 |\n", "| LossPi | 359 |\n", "| LossQ | 1.7e+03 |\n", "| Time | 11.5 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 3 |\n", "| AverageEpRet | -7.39e+03 |\n", "| StdEpRet | 1.82e+03 |\n", "| MaxEpRet | -4.88e+03 |\n", "| MinEpRet | -1.2e+04 |\n", "| AverageTestEpRet | -6.38e+03 |\n", "| StdTestEpRet | 1.25e+03 |\n", "| MaxTestEpRet | -4.47e+03 |\n", "| MinTestEpRet | -8.82e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+03 |\n", "| AverageQVals | -697 |\n", "| StdQVals | 205 |\n", "| MaxQVals | -163 |\n", "| MinQVals | -1.45e+03 |\n", "| LossPi | 674 |\n", "| LossQ | 2.39e+03 |\n", "| Time | 19.5 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 4 |\n", "| AverageEpRet | -7.01e+03 |\n", "| StdEpRet | 1.2e+03 |\n", "| MaxEpRet | -5.06e+03 |\n", "| MinEpRet | -8.69e+03 |\n", "| AverageTestEpRet | -5.59e+03 |\n", "| StdTestEpRet | 1.7e+03 |\n", "| MaxTestEpRet | -3.52e+03 |\n", "| MinTestEpRet | -8.38e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+03 |\n", "| AverageQVals | -963 |\n", "| StdQVals | 255 |\n", "| MaxQVals | -247 |\n", "| MinQVals | -1.83e+03 |\n", "| LossPi | 940 |\n", "| LossQ | 2.63e+03 |\n", "| Time | 27.5 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 5 |\n", "| AverageEpRet | -6.28e+03 |\n", "| StdEpRet | 1.28e+03 |\n", "| MaxEpRet | -3.99e+03 |\n", "| MinEpRet | -8.21e+03 |\n", "| AverageTestEpRet | -6.89e+03 |\n", "| StdTestEpRet | 2.82e+03 |\n", "| MaxTestEpRet | -3.84e+03 |\n", "| MinTestEpRet | -1.32e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+03 |\n", "| AverageQVals | -1.21e+03 |\n", "| StdQVals | 308 |\n", "| MaxQVals | -302 |\n", "| MinQVals | -2.23e+03 |\n", "| LossPi | 1.19e+03 |\n", "| LossQ | 3.4e+03 |\n", "| Time | 35 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 6 |\n", "| AverageEpRet | -6.17e+03 |\n", "| StdEpRet | 1.23e+03 |\n", "| MaxEpRet | -4.59e+03 |\n", "| MinEpRet | -8.7e+03 |\n", "| AverageTestEpRet | -4.85e+03 |\n", "| StdTestEpRet | 1.93e+03 |\n", "| MaxTestEpRet | -2.18e+03 |\n", "| MinTestEpRet | -8.3e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+03 |\n", "| AverageQVals | -1.44e+03 |\n", "| StdQVals | 350 |\n", "| MaxQVals | -392 |\n", "| MinQVals | -2.53e+03 |\n", "| LossPi | 1.42e+03 |\n", "| LossQ | 4.09e+03 |\n", "| Time | 41.6 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 7 |\n", "| AverageEpRet | -3.99e+03 |\n", "| StdEpRet | 2.58e+03 |\n", "| MaxEpRet | -655 |\n", "| MinEpRet | -9.91e+03 |\n", "| AverageTestEpRet | -5.58e+03 |\n", "| StdTestEpRet | 2.37e+03 |\n", "| MaxTestEpRet | -1.85e+03 |\n", "| MinTestEpRet | -9.15e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.15e+04 |\n", "| AverageQVals | -1.6e+03 |\n", "| StdQVals | 390 |\n", "| MaxQVals | -513 |\n", "| MinQVals | -2.76e+03 |\n", "| LossPi | 1.58e+03 |\n", "| LossQ | 4.49e+03 |\n", "| Time | 48.8 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 8 |\n", "| AverageEpRet | -2.32e+03 |\n", "| StdEpRet | 1.87e+03 |\n", "| MaxEpRet | -349 |\n", "| MinEpRet | -7.49e+03 |\n", "| AverageTestEpRet | -3.2e+03 |\n", "| StdTestEpRet | 1.96e+03 |\n", "| MaxTestEpRet | -292 |\n", "| MinTestEpRet | -7.42e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.32e+04 |\n", "| AverageQVals | -1.7e+03 |\n", "| StdQVals | 448 |\n", "| MaxQVals | -652 |\n", "| MinQVals | -3.02e+03 |\n", "| LossPi | 1.67e+03 |\n", "| LossQ | 4.54e+03 |\n", "| Time | 56.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 9 |\n", "| AverageEpRet | -2.08e+03 |\n", "| StdEpRet | 1.19e+03 |\n", "| MaxEpRet | -331 |\n", "| MinEpRet | -4.91e+03 |\n", "| AverageTestEpRet | -3.71e+03 |\n", "| StdTestEpRet | 2.54e+03 |\n", "| MaxTestEpRet | -974 |\n", "| MinTestEpRet | -7.2e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.48e+04 |\n", "| AverageQVals | -1.79e+03 |\n", "| StdQVals | 460 |\n", "| MaxQVals | -746 |\n", "| MinQVals | -3.2e+03 |\n", "| LossPi | 1.77e+03 |\n", "| LossQ | 4.83e+03 |\n", "| Time | 63.6 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 10 |\n", "| AverageEpRet | -1.49e+03 |\n", "| StdEpRet | 1.07e+03 |\n", "| MaxEpRet | -415 |\n", "| MinEpRet | -4.02e+03 |\n", "| AverageTestEpRet | -2.41e+03 |\n", "| StdTestEpRet | 2.38e+03 |\n", "| MaxTestEpRet | -160 |\n", "| MinTestEpRet | -6.64e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+04 |\n", "| AverageQVals | -1.85e+03 |\n", "| StdQVals | 458 |\n", "| MaxQVals | -802 |\n", "| MinQVals | -3.33e+03 |\n", "| LossPi | 1.83e+03 |\n", "| LossQ | 5.24e+03 |\n", "| Time | 70.3 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 11 |\n", "| AverageEpRet | -2.57e+03 |\n", "| StdEpRet | 2e+03 |\n", "| MaxEpRet | -182 |\n", "| MinEpRet | -7.96e+03 |\n", "| AverageTestEpRet | -2.11e+03 |\n", "| StdTestEpRet | 2.41e+03 |\n", "| MaxTestEpRet | -146 |\n", "| MinTestEpRet | -7.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.81e+04 |\n", "| AverageQVals | -1.86e+03 |\n", "| StdQVals | 456 |\n", "| MaxQVals | -821 |\n", "| MinQVals | -3.38e+03 |\n", "| LossPi | 1.84e+03 |\n", "| LossQ | 5.61e+03 |\n", "| Time | 77.9 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 12 |\n", "| AverageEpRet | -1.95e+03 |\n", "| StdEpRet | 1.76e+03 |\n", "| MaxEpRet | -154 |\n", "| MinEpRet | -6.04e+03 |\n", "| AverageTestEpRet | -1.66e+03 |\n", "| StdTestEpRet | 1.58e+03 |\n", "| MaxTestEpRet | -229 |\n", "| MinTestEpRet | -5.9e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.98e+04 |\n", "| AverageQVals | -1.85e+03 |\n", "| StdQVals | 443 |\n", "| MaxQVals | -858 |\n", "| MinQVals | -3.41e+03 |\n", "| LossPi | 1.83e+03 |\n", "| LossQ | 5.73e+03 |\n", "| Time | 85.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 13 |\n", "| AverageEpRet | -2.03e+03 |\n", "| StdEpRet | 2.21e+03 |\n", "| MaxEpRet | -126 |\n", "| MinEpRet | -6.87e+03 |\n", "| AverageTestEpRet | -1.34e+03 |\n", "| StdTestEpRet | 892 |\n", "| MaxTestEpRet | -112 |\n", "| MinTestEpRet | -2.84e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.14e+04 |\n", "| AverageQVals | -1.81e+03 |\n", "| StdQVals | 438 |\n", "| MaxQVals | -879 |\n", "| MinQVals | -3.4e+03 |\n", "| LossPi | 1.79e+03 |\n", "| LossQ | 5.95e+03 |\n", "| Time | 92.4 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 14 |\n", "| AverageEpRet | -1.2e+03 |\n", "| StdEpRet | 932 |\n", "| MaxEpRet | -27.2 |\n", "| MinEpRet | -3.41e+03 |\n", "| AverageTestEpRet | -975 |\n", "| StdTestEpRet | 667 |\n", "| MaxTestEpRet | -131 |\n", "| MinTestEpRet | -2.45e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.31e+04 |\n", "| AverageQVals | -1.78e+03 |\n", "| StdQVals | 428 |\n", "| MaxQVals | -866 |\n", "| MinQVals | -3.38e+03 |\n", "| LossPi | 1.76e+03 |\n", "| LossQ | 5.98e+03 |\n", "| Time | 99.7 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 15 |\n", "| AverageEpRet | -1.65e+03 |\n", "| StdEpRet | 2.09e+03 |\n", "| MaxEpRet | -222 |\n", "| MinEpRet | -9.15e+03 |\n", "| AverageTestEpRet | -1.17e+03 |\n", "| StdTestEpRet | 869 |\n", "| MaxTestEpRet | -389 |\n", "| MinTestEpRet | -3.36e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.47e+04 |\n", "| AverageQVals | -1.73e+03 |\n", "| StdQVals | 422 |\n", "| MaxQVals | -797 |\n", "| MinQVals | -3.37e+03 |\n", "| LossPi | 1.71e+03 |\n", "| LossQ | 5.97e+03 |\n", "| Time | 108 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 16 |\n", "| AverageEpRet | -1.03e+03 |\n", "| StdEpRet | 894 |\n", "| MaxEpRet | -146 |\n", "| MinEpRet | -3.26e+03 |\n", "| AverageTestEpRet | -1.27e+03 |\n", "| StdTestEpRet | 1.9e+03 |\n", "| MaxTestEpRet | -227 |\n", "| MinTestEpRet | -6.9e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.64e+04 |\n", "| AverageQVals | -1.68e+03 |\n", "| StdQVals | 419 |\n", "| MaxQVals | -757 |\n", "| MinQVals | -3.32e+03 |\n", "| LossPi | 1.65e+03 |\n", "| LossQ | 6.05e+03 |\n", "| Time | 117 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 17 |\n", "| AverageEpRet | -1.14e+03 |\n", "| StdEpRet | 1.17e+03 |\n", "| MaxEpRet | -109 |\n", "| MinEpRet | -4.77e+03 |\n", "| AverageTestEpRet | -649 |\n", "| StdTestEpRet | 471 |\n", "| MaxTestEpRet | -77.7 |\n", "| MinTestEpRet | -1.66e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.8e+04 |\n", "| AverageQVals | -1.62e+03 |\n", "| StdQVals | 418 |\n", "| MaxQVals | -710 |\n", "| MinQVals | -3.29e+03 |\n", "| LossPi | 1.6e+03 |\n", "| LossQ | 6.35e+03 |\n", "| Time | 126 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 18 |\n", "| AverageEpRet | -643 |\n", "| StdEpRet | 522 |\n", "| MaxEpRet | -136 |\n", "| MinEpRet | -1.87e+03 |\n", "| AverageTestEpRet | -1.21e+03 |\n", "| StdTestEpRet | 1.06e+03 |\n", "| MaxTestEpRet | -77.6 |\n", "| MinTestEpRet | -3.6e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.97e+04 |\n", "| AverageQVals | -1.55e+03 |\n", "| StdQVals | 421 |\n", "| MaxQVals | -657 |\n", "| MinQVals | -3.19e+03 |\n", "| LossPi | 1.53e+03 |\n", "| LossQ | 6.08e+03 |\n", "| Time | 135 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 19 |\n", "| AverageEpRet | -1.09e+03 |\n", "| StdEpRet | 865 |\n", "| MaxEpRet | -89.6 |\n", "| MinEpRet | -3.02e+03 |\n", "| AverageTestEpRet | -1.44e+03 |\n", "| StdTestEpRet | 1.34e+03 |\n", "| MaxTestEpRet | -417 |\n", "| MinTestEpRet | -5.19e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.13e+04 |\n", "| AverageQVals | -1.48e+03 |\n", "| StdQVals | 426 |\n", "| MaxQVals | -601 |\n", "| MinQVals | -3.11e+03 |\n", "| LossPi | 1.46e+03 |\n", "| LossQ | 6.01e+03 |\n", "| Time | 144 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 20 |\n", "| AverageEpRet | -740 |\n", "| StdEpRet | 668 |\n", "| MaxEpRet | -116 |\n", "| MinEpRet | -2.73e+03 |\n", "| AverageTestEpRet | -865 |\n", "| StdTestEpRet | 892 |\n", "| MaxTestEpRet | -113 |\n", "| MinTestEpRet | -3.26e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+04 |\n", "| AverageQVals | -1.41e+03 |\n", "| StdQVals | 428 |\n", "| MaxQVals | -550 |\n", "| MinQVals | -3.04e+03 |\n", "| LossPi | 1.39e+03 |\n", "| LossQ | 5.73e+03 |\n", "| Time | 153 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 21 |\n", "| AverageEpRet | -697 |\n", "| StdEpRet | 472 |\n", "| MaxEpRet | -99.1 |\n", "| MinEpRet | -1.57e+03 |\n", "| AverageTestEpRet | -681 |\n", "| StdTestEpRet | 602 |\n", "| MaxTestEpRet | -34.3 |\n", "| MinTestEpRet | -1.95e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.46e+04 |\n", "| AverageQVals | -1.34e+03 |\n", "| StdQVals | 426 |\n", "| MaxQVals | -492 |\n", "| MinQVals | -2.97e+03 |\n", "| LossPi | 1.32e+03 |\n", "| LossQ | 5.47e+03 |\n", "| Time | 162 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 22 |\n", "| AverageEpRet | -983 |\n", "| StdEpRet | 911 |\n", "| MaxEpRet | -162 |\n", "| MinEpRet | -3.49e+03 |\n", "| AverageTestEpRet | -448 |\n", "| StdTestEpRet | 465 |\n", "| MaxTestEpRet | -65.8 |\n", "| MinTestEpRet | -1.47e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.63e+04 |\n", "| AverageQVals | -1.27e+03 |\n", "| StdQVals | 427 |\n", "| MaxQVals | -441 |\n", "| MinQVals | -3.06e+03 |\n", "| LossPi | 1.24e+03 |\n", "| LossQ | 5.33e+03 |\n", "| Time | 172 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 23 |\n", "| AverageEpRet | -742 |\n", "| StdEpRet | 444 |\n", "| MaxEpRet | -103 |\n", "| MinEpRet | -1.54e+03 |\n", "| AverageTestEpRet | -1.08e+03 |\n", "| StdTestEpRet | 859 |\n", "| MaxTestEpRet | -176 |\n", "| MinTestEpRet | -2.41e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.79e+04 |\n", "| AverageQVals | -1.19e+03 |\n", "| StdQVals | 421 |\n", "| MaxQVals | -392 |\n", "| MinQVals | -2.97e+03 |\n", "| LossPi | 1.17e+03 |\n", "| LossQ | 5.34e+03 |\n", "| Time | 181 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 24 |\n", "| AverageEpRet | -825 |\n", "| StdEpRet | 723 |\n", "| MaxEpRet | -219 |\n", "| MinEpRet | -2.79e+03 |\n", "| AverageTestEpRet | -781 |\n", "| StdTestEpRet | 1.04e+03 |\n", "| MaxTestEpRet | -47.8 |\n", "| MinTestEpRet | -3.86e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.96e+04 |\n", "| AverageQVals | -1.13e+03 |\n", "| StdQVals | 417 |\n", "| MaxQVals | -343 |\n", "| MinQVals | -2.89e+03 |\n", "| LossPi | 1.11e+03 |\n", "| LossQ | 5.07e+03 |\n", "| Time | 190 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 25 |\n", "| AverageEpRet | -627 |\n", "| StdEpRet | 402 |\n", "| MaxEpRet | -90.1 |\n", "| MinEpRet | -1.55e+03 |\n", "| AverageTestEpRet | -863 |\n", "| StdTestEpRet | 830 |\n", "| MaxTestEpRet | -100 |\n", "| MinTestEpRet | -3.17e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.12e+04 |\n", "| AverageQVals | -1.06e+03 |\n", "| StdQVals | 409 |\n", "| MaxQVals | -303 |\n", "| MinQVals | -2.76e+03 |\n", "| LossPi | 1.04e+03 |\n", "| LossQ | 4.94e+03 |\n", "| Time | 199 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 26 |\n", "| AverageEpRet | -752 |\n", "| StdEpRet | 456 |\n", "| MaxEpRet | -90.3 |\n", "| MinEpRet | -1.4e+03 |\n", "| AverageTestEpRet | -170 |\n", "| StdTestEpRet | 117 |\n", "| MaxTestEpRet | -20.5 |\n", "| MinTestEpRet | -475 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.29e+04 |\n", "| AverageQVals | -1e+03 |\n", "| StdQVals | 401 |\n", "| MaxQVals | -262 |\n", "| MinQVals | -2.71e+03 |\n", "| LossPi | 985 |\n", "| LossQ | 4.63e+03 |\n", "| Time | 208 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 27 |\n", "| AverageEpRet | -574 |\n", "| StdEpRet | 403 |\n", "| MaxEpRet | -49.7 |\n", "| MinEpRet | -1.66e+03 |\n", "| AverageTestEpRet | -769 |\n", "| StdTestEpRet | 563 |\n", "| MaxTestEpRet | -41.8 |\n", "| MinTestEpRet | -2.07e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.45e+04 |\n", "| AverageQVals | -945 |\n", "| StdQVals | 399 |\n", "| MaxQVals | -221 |\n", "| MinQVals | -2.62e+03 |\n", "| LossPi | 927 |\n", "| LossQ | 4.35e+03 |\n", "| Time | 217 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 28 |\n", "| AverageEpRet | -673 |\n", "| StdEpRet | 525 |\n", "| MaxEpRet | -59.8 |\n", "| MinEpRet | -1.9e+03 |\n", "| AverageTestEpRet | -532 |\n", "| StdTestEpRet | 315 |\n", "| MaxTestEpRet | -85 |\n", "| MinTestEpRet | -982 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.62e+04 |\n", "| AverageQVals | -884 |\n", "| StdQVals | 392 |\n", "| MaxQVals | -181 |\n", "| MinQVals | -2.56e+03 |\n", "| LossPi | 866 |\n", "| LossQ | 4.22e+03 |\n", "| Time | 226 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 29 |\n", "| AverageEpRet | -565 |\n", "| StdEpRet | 356 |\n", "| MaxEpRet | -113 |\n", "| MinEpRet | -1.32e+03 |\n", "| AverageTestEpRet | -471 |\n", "| StdTestEpRet | 245 |\n", "| MaxTestEpRet | -26.2 |\n", "| MinTestEpRet | -751 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.78e+04 |\n", "| AverageQVals | -825 |\n", "| StdQVals | 382 |\n", "| MaxQVals | -148 |\n", "| MinQVals | -2.53e+03 |\n", "| LossPi | 807 |\n", "| LossQ | 3.87e+03 |\n", "| Time | 235 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 30 |\n", "| AverageEpRet | -723 |\n", "| StdEpRet | 533 |\n", "| MaxEpRet | -237 |\n", "| MinEpRet | -2.53e+03 |\n", "| AverageTestEpRet | -757 |\n", "| StdTestEpRet | 781 |\n", "| MaxTestEpRet | -80.1 |\n", "| MinTestEpRet | -2.94e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+04 |\n", "| AverageQVals | -772 |\n", "| StdQVals | 376 |\n", "| MaxQVals | -113 |\n", "| MinQVals | -2.42e+03 |\n", "| LossPi | 754 |\n", "| LossQ | 3.72e+03 |\n", "| Time | 244 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 31 |\n", "| AverageEpRet | -677 |\n", "| StdEpRet | 482 |\n", "| MaxEpRet | -79.9 |\n", "| MinEpRet | -2.31e+03 |\n", "| AverageTestEpRet | -821 |\n", "| StdTestEpRet | 535 |\n", "| MaxTestEpRet | -64.7 |\n", "| MinTestEpRet | -1.51e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.11e+04 |\n", "| AverageQVals | -717 |\n", "| StdQVals | 366 |\n", "| MaxQVals | -80.2 |\n", "| MinQVals | -2.38e+03 |\n", "| LossPi | 701 |\n", "| LossQ | 3.45e+03 |\n", "| Time | 254 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 32 |\n", "| AverageEpRet | -763 |\n", "| StdEpRet | 750 |\n", "| MaxEpRet | -29 |\n", "| MinEpRet | -3.18e+03 |\n", "| AverageTestEpRet | -559 |\n", "| StdTestEpRet | 393 |\n", "| MaxTestEpRet | -98.8 |\n", "| MinTestEpRet | -1.2e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.28e+04 |\n", "| AverageQVals | -674 |\n", "| StdQVals | 362 |\n", "| MaxQVals | -55.5 |\n", "| MinQVals | -2.31e+03 |\n", "| LossPi | 659 |\n", "| LossQ | 3.49e+03 |\n", "| Time | 263 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 33 |\n", "| AverageEpRet | -803 |\n", "| StdEpRet | 565 |\n", "| MaxEpRet | -27.6 |\n", "| MinEpRet | -1.83e+03 |\n", "| AverageTestEpRet | -1.03e+03 |\n", "| StdTestEpRet | 1e+03 |\n", "| MaxTestEpRet | -56.6 |\n", "| MinTestEpRet | -3.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.44e+04 |\n", "| AverageQVals | -637 |\n", "| StdQVals | 360 |\n", "| MaxQVals | -27.6 |\n", "| MinQVals | -2.28e+03 |\n", "| LossPi | 621 |\n", "| LossQ | 3.3e+03 |\n", "| Time | 273 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 34 |\n", "| AverageEpRet | -852 |\n", "| StdEpRet | 766 |\n", "| MaxEpRet | -14.2 |\n", "| MinEpRet | -3.2e+03 |\n", "| AverageTestEpRet | -585 |\n", "| StdTestEpRet | 389 |\n", "| MaxTestEpRet | -50.8 |\n", "| MinTestEpRet | -1.3e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.61e+04 |\n", "| AverageQVals | -598 |\n", "| StdQVals | 353 |\n", "| MaxQVals | -2.32 |\n", "| MinQVals | -2.21e+03 |\n", "| LossPi | 583 |\n", "| LossQ | 3.1e+03 |\n", "| Time | 284 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 35 |\n", "| AverageEpRet | -569 |\n", "| StdEpRet | 326 |\n", "| MaxEpRet | -152 |\n", "| MinEpRet | -1.34e+03 |\n", "| AverageTestEpRet | -466 |\n", "| StdTestEpRet | 338 |\n", "| MaxTestEpRet | -195 |\n", "| MinTestEpRet | -1.19e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.77e+04 |\n", "| AverageQVals | -560 |\n", "| StdQVals | 345 |\n", "| MaxQVals | 20.3 |\n", "| MinQVals | -2.18e+03 |\n", "| LossPi | 545 |\n", "| LossQ | 2.98e+03 |\n", "| Time | 294 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 36 |\n", "| AverageEpRet | -805 |\n", "| StdEpRet | 612 |\n", "| MaxEpRet | -43 |\n", "| MinEpRet | -1.93e+03 |\n", "| AverageTestEpRet | -866 |\n", "| StdTestEpRet | 355 |\n", "| MaxTestEpRet | -160 |\n", "| MinTestEpRet | -1.32e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.94e+04 |\n", "| AverageQVals | -528 |\n", "| StdQVals | 342 |\n", "| MaxQVals | 48.9 |\n", "| MinQVals | -2.1e+03 |\n", "| LossPi | 514 |\n", "| LossQ | 2.92e+03 |\n", "| Time | 305 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 37 |\n", "| AverageEpRet | -508 |\n", "| StdEpRet | 358 |\n", "| MaxEpRet | -77.4 |\n", "| MinEpRet | -1.21e+03 |\n", "| AverageTestEpRet | -646 |\n", "| StdTestEpRet | 521 |\n", "| MaxTestEpRet | -130 |\n", "| MinTestEpRet | -1.87e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.1e+04 |\n", "| AverageQVals | -498 |\n", "| StdQVals | 338 |\n", "| MaxQVals | 66.1 |\n", "| MinQVals | -2.09e+03 |\n", "| LossPi | 484 |\n", "| LossQ | 2.73e+03 |\n", "| Time | 314 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 38 |\n", "| AverageEpRet | -823 |\n", "| StdEpRet | 744 |\n", "| MaxEpRet | -47.1 |\n", "| MinEpRet | -3.35e+03 |\n", "| AverageTestEpRet | -721 |\n", "| StdTestEpRet | 434 |\n", "| MaxTestEpRet | -153 |\n", "| MinTestEpRet | -1.59e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.27e+04 |\n", "| AverageQVals | -468 |\n", "| StdQVals | 336 |\n", "| MaxQVals | 84.5 |\n", "| MinQVals | -2.04e+03 |\n", "| LossPi | 455 |\n", "| LossQ | 2.57e+03 |\n", "| Time | 323 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 39 |\n", "| AverageEpRet | -843 |\n", "| StdEpRet | 708 |\n", "| MaxEpRet | -24.4 |\n", "| MinEpRet | -3.17e+03 |\n", "| AverageTestEpRet | -806 |\n", "| StdTestEpRet | 425 |\n", "| MaxTestEpRet | -241 |\n", "| MinTestEpRet | -1.82e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.43e+04 |\n", "| AverageQVals | -440 |\n", "| StdQVals | 329 |\n", "| MaxQVals | 99.4 |\n", "| MinQVals | -1.98e+03 |\n", "| LossPi | 427 |\n", "| LossQ | 2.48e+03 |\n", "| Time | 331 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 40 |\n", "| AverageEpRet | -781 |\n", "| StdEpRet | 698 |\n", "| MaxEpRet | -280 |\n", "| MinEpRet | -3.24e+03 |\n", "| AverageTestEpRet | -625 |\n", "| StdTestEpRet | 324 |\n", "| MaxTestEpRet | -217 |\n", "| MinTestEpRet | -1.16e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+04 |\n", "| AverageQVals | -415 |\n", "| StdQVals | 325 |\n", "| MaxQVals | 112 |\n", "| MinQVals | -1.94e+03 |\n", "| LossPi | 402 |\n", "| LossQ | 2.29e+03 |\n", "| Time | 340 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 41 |\n", "| AverageEpRet | -601 |\n", "| StdEpRet | 297 |\n", "| MaxEpRet | -208 |\n", "| MinEpRet | -1.18e+03 |\n", "| AverageTestEpRet | -580 |\n", "| StdTestEpRet | 404 |\n", "| MaxTestEpRet | -65.1 |\n", "| MinTestEpRet | -1.32e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.76e+04 |\n", "| AverageQVals | -391 |\n", "| StdQVals | 324 |\n", "| MaxQVals | 131 |\n", "| MinQVals | -1.9e+03 |\n", "| LossPi | 378 |\n", "| LossQ | 2.3e+03 |\n", "| Time | 347 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 42 |\n", "| AverageEpRet | -801 |\n", "| StdEpRet | 786 |\n", "| MaxEpRet | -105 |\n", "| MinEpRet | -3.47e+03 |\n", "| AverageTestEpRet | -620 |\n", "| StdTestEpRet | 417 |\n", "| MaxTestEpRet | -172 |\n", "| MinTestEpRet | -1.51e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.93e+04 |\n", "| AverageQVals | -368 |\n", "| StdQVals | 321 |\n", "| MaxQVals | 147 |\n", "| MinQVals | -1.87e+03 |\n", "| LossPi | 356 |\n", "| LossQ | 2.14e+03 |\n", "| Time | 354 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 43 |\n", "| AverageEpRet | -568 |\n", "| StdEpRet | 386 |\n", "| MaxEpRet | -68.3 |\n", "| MinEpRet | -1.32e+03 |\n", "| AverageTestEpRet | -440 |\n", "| StdTestEpRet | 297 |\n", "| MaxTestEpRet | -37.6 |\n", "| MinTestEpRet | -941 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.09e+04 |\n", "| AverageQVals | -351 |\n", "| StdQVals | 324 |\n", "| MaxQVals | 160 |\n", "| MinQVals | -1.85e+03 |\n", "| LossPi | 339 |\n", "| LossQ | 2.25e+03 |\n", "| Time | 361 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 44 |\n", "| AverageEpRet | -746 |\n", "| StdEpRet | 420 |\n", "| MaxEpRet | -94.3 |\n", "| MinEpRet | -1.43e+03 |\n", "| AverageTestEpRet | -619 |\n", "| StdTestEpRet | 273 |\n", "| MaxTestEpRet | -206 |\n", "| MinTestEpRet | -1.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.26e+04 |\n", "| AverageQVals | -326 |\n", "| StdQVals | 319 |\n", "| MaxQVals | 173 |\n", "| MinQVals | -1.84e+03 |\n", "| LossPi | 314 |\n", "| LossQ | 2.21e+03 |\n", "| Time | 370 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 45 |\n", "| AverageEpRet | -763 |\n", "| StdEpRet | 721 |\n", "| MaxEpRet | -36.5 |\n", "| MinEpRet | -3.1e+03 |\n", "| AverageTestEpRet | -615 |\n", "| StdTestEpRet | 577 |\n", "| MaxTestEpRet | -147 |\n", "| MinTestEpRet | -2.23e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.42e+04 |\n", "| AverageQVals | -308 |\n", "| StdQVals | 318 |\n", "| MaxQVals | 187 |\n", "| MinQVals | -1.8e+03 |\n", "| LossPi | 297 |\n", "| LossQ | 2.18e+03 |\n", "| Time | 381 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 46 |\n", "| AverageEpRet | -765 |\n", "| StdEpRet | 393 |\n", "| MaxEpRet | -88.4 |\n", "| MinEpRet | -1.5e+03 |\n", "| AverageTestEpRet | -895 |\n", "| StdTestEpRet | 602 |\n", "| MaxTestEpRet | -134 |\n", "| MinTestEpRet | -2.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.59e+04 |\n", "| AverageQVals | -288 |\n", "| StdQVals | 315 |\n", "| MaxQVals | 201 |\n", "| MinQVals | -1.77e+03 |\n", "| LossPi | 276 |\n", "| LossQ | 2.05e+03 |\n", "| Time | 391 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 47 |\n", "| AverageEpRet | -850 |\n", "| StdEpRet | 887 |\n", "| MaxEpRet | -162 |\n", "| MinEpRet | -3.85e+03 |\n", "| AverageTestEpRet | -497 |\n", "| StdTestEpRet | 304 |\n", "| MaxTestEpRet | -62.3 |\n", "| MinTestEpRet | -980 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.75e+04 |\n", "| AverageQVals | -266 |\n", "| StdQVals | 312 |\n", "| MaxQVals | 210 |\n", "| MinQVals | -1.75e+03 |\n", "| LossPi | 254 |\n", "| LossQ | 1.95e+03 |\n", "| Time | 401 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 48 |\n", "| AverageEpRet | -506 |\n", "| StdEpRet | 418 |\n", "| MaxEpRet | -62 |\n", "| MinEpRet | -1.58e+03 |\n", "| AverageTestEpRet | -537 |\n", "| StdTestEpRet | 236 |\n", "| MaxTestEpRet | -182 |\n", "| MinTestEpRet | -1e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.92e+04 |\n", "| AverageQVals | -246 |\n", "| StdQVals | 313 |\n", "| MaxQVals | 222 |\n", "| MinQVals | -1.75e+03 |\n", "| LossPi | 235 |\n", "| LossQ | 2e+03 |\n", "| Time | 411 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 49 |\n", "| AverageEpRet | -482 |\n", "| StdEpRet | 354 |\n", "| MaxEpRet | -122 |\n", "| MinEpRet | -1.46e+03 |\n", "| AverageTestEpRet | -537 |\n", "| StdTestEpRet | 487 |\n", "| MaxTestEpRet | -78.8 |\n", "| MinTestEpRet | -1.77e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.08e+04 |\n", "| AverageQVals | -228 |\n", "| StdQVals | 311 |\n", "| MaxQVals | 231 |\n", "| MinQVals | -1.72e+03 |\n", "| LossPi | 216 |\n", "| LossQ | 2.06e+03 |\n", "| Time | 421 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 50 |\n", "| AverageEpRet | -846 |\n", "| StdEpRet | 384 |\n", "| MaxEpRet | -190 |\n", "| MinEpRet | -1.86e+03 |\n", "| AverageTestEpRet | -629 |\n", "| StdTestEpRet | 359 |\n", "| MaxTestEpRet | -104 |\n", "| MinTestEpRet | -1.3e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+04 |\n", "| AverageQVals | -209 |\n", "| StdQVals | 308 |\n", "| MaxQVals | 239 |\n", "| MinQVals | -1.68e+03 |\n", "| LossPi | 197 |\n", "| LossQ | 1.93e+03 |\n", "| Time | 429 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 51 |\n", "| AverageEpRet | -696 |\n", "| StdEpRet | 350 |\n", "| MaxEpRet | -133 |\n", "| MinEpRet | -1.27e+03 |\n", "| AverageTestEpRet | -512 |\n", "| StdTestEpRet | 391 |\n", "| MaxTestEpRet | -64 |\n", "| MinTestEpRet | -1.17e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.41e+04 |\n", "| AverageQVals | -188 |\n", "| StdQVals | 306 |\n", "| MaxQVals | 250 |\n", "| MinQVals | -1.68e+03 |\n", "| LossPi | 176 |\n", "| LossQ | 1.88e+03 |\n", "| Time | 438 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 52 |\n", "| AverageEpRet | -450 |\n", "| StdEpRet | 318 |\n", "| MaxEpRet | -58.3 |\n", "| MinEpRet | -1.16e+03 |\n", "| AverageTestEpRet | -877 |\n", "| StdTestEpRet | 389 |\n", "| MaxTestEpRet | -273 |\n", "| MinTestEpRet | -1.39e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.58e+04 |\n", "| AverageQVals | -163 |\n", "| StdQVals | 303 |\n", "| MaxQVals | 260 |\n", "| MinQVals | -1.62e+03 |\n", "| LossPi | 151 |\n", "| LossQ | 1.78e+03 |\n", "| Time | 447 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 53 |\n", "| AverageEpRet | -786 |\n", "| StdEpRet | 612 |\n", "| MaxEpRet | -96 |\n", "| MinEpRet | -2.14e+03 |\n", "| AverageTestEpRet | -577 |\n", "| StdTestEpRet | 187 |\n", "| MaxTestEpRet | -205 |\n", "| MinTestEpRet | -983 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.74e+04 |\n", "| AverageQVals | -139 |\n", "| StdQVals | 296 |\n", "| MaxQVals | 292 |\n", "| MinQVals | -1.55e+03 |\n", "| LossPi | 127 |\n", "| LossQ | 1.75e+03 |\n", "| Time | 455 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 54 |\n", "| AverageEpRet | -586 |\n", "| StdEpRet | 365 |\n", "| MaxEpRet | -117 |\n", "| MinEpRet | -1.39e+03 |\n", "| AverageTestEpRet | -826 |\n", "| StdTestEpRet | 702 |\n", "| MaxTestEpRet | -64 |\n", "| MinTestEpRet | -2.56e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.91e+04 |\n", "| AverageQVals | -124 |\n", "| StdQVals | 295 |\n", "| MaxQVals | 300 |\n", "| MinQVals | -1.54e+03 |\n", "| LossPi | 112 |\n", "| LossQ | 1.74e+03 |\n", "| Time | 464 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 55 |\n", "| AverageEpRet | -497 |\n", "| StdEpRet | 425 |\n", "| MaxEpRet | -24.1 |\n", "| MinEpRet | -1.32e+03 |\n", "| AverageTestEpRet | -423 |\n", "| StdTestEpRet | 177 |\n", "| MaxTestEpRet | -178 |\n", "| MinTestEpRet | -669 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.07e+04 |\n", "| AverageQVals | -103 |\n", "| StdQVals | 294 |\n", "| MaxQVals | 326 |\n", "| MinQVals | -1.53e+03 |\n", "| LossPi | 90.8 |\n", "| LossQ | 1.65e+03 |\n", "| Time | 473 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 56 |\n", "| AverageEpRet | -587 |\n", "| StdEpRet | 304 |\n", "| MaxEpRet | -80.3 |\n", "| MinEpRet | -1.07e+03 |\n", "| AverageTestEpRet | -629 |\n", "| StdTestEpRet | 302 |\n", "| MaxTestEpRet | -260 |\n", "| MinTestEpRet | -1.22e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.24e+04 |\n", "| AverageQVals | -80.3 |\n", "| StdQVals | 291 |\n", "| MaxQVals | 332 |\n", "| MinQVals | -1.49e+03 |\n", "| LossPi | 68.4 |\n", "| LossQ | 1.59e+03 |\n", "| Time | 483 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 57 |\n", "| AverageEpRet | -480 |\n", "| StdEpRet | 442 |\n", "| MaxEpRet | -45 |\n", "| MinEpRet | -1.71e+03 |\n", "| AverageTestEpRet | -634 |\n", "| StdTestEpRet | 278 |\n", "| MaxTestEpRet | -181 |\n", "| MinTestEpRet | -1.09e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.4e+04 |\n", "| AverageQVals | -60.9 |\n", "| StdQVals | 287 |\n", "| MaxQVals | 337 |\n", "| MinQVals | -1.5e+03 |\n", "| LossPi | 49.2 |\n", "| LossQ | 1.58e+03 |\n", "| Time | 492 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 58 |\n", "| AverageEpRet | -442 |\n", "| StdEpRet | 294 |\n", "| MaxEpRet | -40.4 |\n", "| MinEpRet | -1.13e+03 |\n", "| AverageTestEpRet | -558 |\n", "| StdTestEpRet | 289 |\n", "| MaxTestEpRet | -168 |\n", "| MinTestEpRet | -1.21e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.57e+04 |\n", "| AverageQVals | -43.3 |\n", "| StdQVals | 285 |\n", "| MaxQVals | 345 |\n", "| MinQVals | -1.48e+03 |\n", "| LossPi | 31.7 |\n", "| LossQ | 1.51e+03 |\n", "| Time | 500 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 59 |\n", "| AverageEpRet | -717 |\n", "| StdEpRet | 615 |\n", "| MaxEpRet | -90.2 |\n", "| MinEpRet | -2.7e+03 |\n", "| AverageTestEpRet | -522 |\n", "| StdTestEpRet | 326 |\n", "| MaxTestEpRet | -97.2 |\n", "| MinTestEpRet | -1.08e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.73e+04 |\n", "| AverageQVals | -23.8 |\n", "| StdQVals | 284 |\n", "| MaxQVals | 357 |\n", "| MinQVals | -1.45e+03 |\n", "| LossPi | 12.3 |\n", "| LossQ | 1.56e+03 |\n", "| Time | 509 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 60 |\n", "| AverageEpRet | -686 |\n", "| StdEpRet | 649 |\n", "| MaxEpRet | -86.4 |\n", "| MinEpRet | -2.62e+03 |\n", "| AverageTestEpRet | -625 |\n", "| StdTestEpRet | 411 |\n", "| MaxTestEpRet | -189 |\n", "| MinTestEpRet | -1.47e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+04 |\n", "| AverageQVals | -6.46 |\n", "| StdQVals | 283 |\n", "| MaxQVals | 363 |\n", "| MinQVals | -1.4e+03 |\n", "| LossPi | -5.08 |\n", "| LossQ | 1.53e+03 |\n", "| Time | 517 |\n", "---------------------------------------\n" ] } ], "source": [ "# Setup baseline 0\n", "logger_kwargs = dict(output_dir='ddpg_b0', exp_name='baseline')\n", "seed_b = 0\n", "epochs_b = 60\n", "maxeplen_b = 110\n", "\n", "spe_b = maxeplen_b * 15\n", "repsize_b = 1000000\n", "gamma_b = 0.99\n", "polyak_b = 0.995\n", "batchsize_b = 100\n", "startsteps_b = 10000\n", "args_b = dict(hidden_sizes=[300,], activation=torch.nn.ReLU)\n", "actnoise_b = 0.1\n", "pilr_b = 0.001\n", "qlr_b = 0.001\n", "\n", "# Baseline 0 training\n", "spinup.ddpg_pytorch(GyroscopeEnv, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n", "polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, act_noise = actnoise_b, pi_lr = pilr_b, q_lr = qlr_b)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning: Log dir ddpg_b1 already exists! Storing info there anyway.\n", "\u001b[32;1mLogging data to ddpg_b1/progress.txt\u001b[0m\n", "\u001b[36;1mSaving config:\n", "\u001b[0m\n", "{\n", " \"ac_kwargs\":\t{\n", " \"activation\":\t\"ReLU\",\n", " \"hidden_sizes\":\t[\n", " 1000\n", " ]\n", " },\n", " \"act_noise\":\t0.1,\n", " \"actor_critic\":\t\"MLPActorCritic\",\n", " \"batch_size\":\t100,\n", " \"env_fn\":\t\"GyroscopeEnv\",\n", " \"epochs\":\t60,\n", " \"exp_name\":\t\"baseline\",\n", " \"gamma\":\t0.99,\n", " \"logger\":\t{\n", " \"\":\t{\n", " \"epoch_dict\":\t{},\n", " \"exp_name\":\t\"baseline\",\n", " \"first_row\":\ttrue,\n", " \"log_current_row\":\t{},\n", " \"log_headers\":\t[],\n", " \"output_dir\":\t\"ddpg_b1\",\n", " \"output_file\":\t{\n", " \"<_io.TextIOWrapper name='ddpg_b1/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", " \"mode\":\t\"w\"\n", " }\n", " }\n", " }\n", " },\n", " \"logger_kwargs\":\t{\n", " \"exp_name\":\t\"baseline\",\n", " \"output_dir\":\t\"ddpg_b1\"\n", " },\n", " \"max_ep_len\":\t110,\n", " \"num_test_episodes\":\t10,\n", " \"pi_lr\":\t0.001,\n", " \"polyak\":\t0.995,\n", " \"q_lr\":\t0.001,\n", " \"replay_size\":\t1000000,\n", " \"save_freq\":\t1,\n", " \"seed\":\t10,\n", " \"start_steps\":\t20000,\n", " \"steps_per_epoch\":\t1650,\n", " \"update_after\":\t1000,\n", " \"update_every\":\t50\n", "}\n", "\u001b[32;1m\n", "Number of parameters: \t pi: 10002, \t q: 11001\n", "\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/matthieulc/.local/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: Box bound precision lowered by casting to float32\u001b[0m\n", " warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 1 |\n", "| AverageEpRet | -7.14e+03 |\n", "| StdEpRet | 1.09e+03 |\n", "| MaxEpRet | -5.48e+03 |\n", "| MinEpRet | -9.07e+03 |\n", "| AverageTestEpRet | -6.71e+03 |\n", "| StdTestEpRet | 2.33e+03 |\n", "| MaxTestEpRet | -4.14e+03 |\n", "| MinTestEpRet | -1.09e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+03 |\n", "| AverageQVals | -144 |\n", "| StdQVals | 69.1 |\n", "| MaxQVals | 4.44 |\n", "| MinQVals | -413 |\n", "| LossPi | 144 |\n", "| LossQ | 1.27e+03 |\n", "| Time | 5.23 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 2 |\n", "| AverageEpRet | -7.21e+03 |\n", "| StdEpRet | 1.48e+03 |\n", "| MaxEpRet | -5.28e+03 |\n", "| MinEpRet | -9.98e+03 |\n", "| AverageTestEpRet | -6.76e+03 |\n", "| StdTestEpRet | 2.32e+03 |\n", "| MaxTestEpRet | -4.13e+03 |\n", "| MinTestEpRet | -1.07e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+03 |\n", "| AverageQVals | -434 |\n", "| StdQVals | 156 |\n", "| MaxQVals | -54 |\n", "| MinQVals | -1.12e+03 |\n", "| LossPi | 426 |\n", "| LossQ | 1.69e+03 |\n", "| Time | 14.7 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 3 |\n", "| AverageEpRet | -6.95e+03 |\n", "| StdEpRet | 1.12e+03 |\n", "| MaxEpRet | -4.69e+03 |\n", "| MinEpRet | -9.1e+03 |\n", "| AverageTestEpRet | -6.44e+03 |\n", "| StdTestEpRet | 1.61e+03 |\n", "| MaxTestEpRet | -3.08e+03 |\n", "| MinTestEpRet | -8.84e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+03 |\n", "| AverageQVals | -765 |\n", "| StdQVals | 200 |\n", "| MaxQVals | -253 |\n", "| MinQVals | -1.61e+03 |\n", "| LossPi | 743 |\n", "| LossQ | 2.46e+03 |\n", "| Time | 23.5 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 4 |\n", "| AverageEpRet | -7.14e+03 |\n", "| StdEpRet | 893 |\n", "| MaxEpRet | -5.27e+03 |\n", "| MinEpRet | -8.69e+03 |\n", "| AverageTestEpRet | -4.88e+03 |\n", "| StdTestEpRet | 1.73e+03 |\n", "| MaxTestEpRet | -1.23e+03 |\n", "| MinTestEpRet | -7.36e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+03 |\n", "| AverageQVals | -1.03e+03 |\n", "| StdQVals | 230 |\n", "| MaxQVals | -407 |\n", "| MinQVals | -1.99e+03 |\n", "| LossPi | 1e+03 |\n", "| LossQ | 3.34e+03 |\n", "| Time | 33 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 5 |\n", "| AverageEpRet | -6.89e+03 |\n", "| StdEpRet | 1.48e+03 |\n", "| MaxEpRet | -4.7e+03 |\n", "| MinEpRet | -1.01e+04 |\n", "| AverageTestEpRet | -4.4e+03 |\n", "| StdTestEpRet | 1.24e+03 |\n", "| MaxTestEpRet | -1.98e+03 |\n", "| MinTestEpRet | -6.62e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+03 |\n", "| AverageQVals | -1.26e+03 |\n", "| StdQVals | 264 |\n", "| MaxQVals | -527 |\n", "| MinQVals | -2.22e+03 |\n", "| LossPi | 1.23e+03 |\n", "| LossQ | 4.19e+03 |\n", "| Time | 43.9 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 6 |\n", "| AverageEpRet | -7.16e+03 |\n", "| StdEpRet | 1.49e+03 |\n", "| MaxEpRet | -3.48e+03 |\n", "| MinEpRet | -9.86e+03 |\n", "| AverageTestEpRet | -2.57e+03 |\n", "| StdTestEpRet | 2.46e+03 |\n", "| MaxTestEpRet | -62.8 |\n", "| MinTestEpRet | -8.53e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+03 |\n", "| AverageQVals | -1.45e+03 |\n", "| StdQVals | 293 |\n", "| MaxQVals | -674 |\n", "| MinQVals | -2.51e+03 |\n", "| LossPi | 1.42e+03 |\n", "| LossQ | 4.41e+03 |\n", "| Time | 55.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 7 |\n", "| AverageEpRet | -6.59e+03 |\n", "| StdEpRet | 956 |\n", "| MaxEpRet | -5.07e+03 |\n", "| MinEpRet | -8.05e+03 |\n", "| AverageTestEpRet | -2.67e+03 |\n", "| StdTestEpRet | 1.88e+03 |\n", "| MaxTestEpRet | -240 |\n", "| MinTestEpRet | -5.54e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.15e+04 |\n", "| AverageQVals | -1.62e+03 |\n", "| StdQVals | 310 |\n", "| MaxQVals | -809 |\n", "| MinQVals | -2.78e+03 |\n", "| LossPi | 1.6e+03 |\n", "| LossQ | 4.25e+03 |\n", "| Time | 65.8 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 8 |\n", "| AverageEpRet | -7.1e+03 |\n", "| StdEpRet | 1.36e+03 |\n", "| MaxEpRet | -4.85e+03 |\n", "| MinEpRet | -9.07e+03 |\n", "| AverageTestEpRet | -3.14e+03 |\n", "| StdTestEpRet | 1.93e+03 |\n", "| MaxTestEpRet | -419 |\n", "| MinTestEpRet | -5.35e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.32e+04 |\n", "| AverageQVals | -1.8e+03 |\n", "| StdQVals | 326 |\n", "| MaxQVals | -954 |\n", "| MinQVals | -2.96e+03 |\n", "| LossPi | 1.77e+03 |\n", "| LossQ | 4.36e+03 |\n", "| Time | 76.5 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 9 |\n", "| AverageEpRet | -7.19e+03 |\n", "| StdEpRet | 1.08e+03 |\n", "| MaxEpRet | -4.65e+03 |\n", "| MinEpRet | -8.69e+03 |\n", "| AverageTestEpRet | -1.43e+03 |\n", "| StdTestEpRet | 906 |\n", "| MaxTestEpRet | -273 |\n", "| MinTestEpRet | -3.29e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.48e+04 |\n", "| AverageQVals | -1.95e+03 |\n", "| StdQVals | 336 |\n", "| MaxQVals | -1.09e+03 |\n", "| MinQVals | -3.6e+03 |\n", "| LossPi | 1.92e+03 |\n", "| LossQ | 4.36e+03 |\n", "| Time | 87.4 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 10 |\n", "| AverageEpRet | -6.57e+03 |\n", "| StdEpRet | 1.32e+03 |\n", "| MaxEpRet | -3.71e+03 |\n", "| MinEpRet | -8.64e+03 |\n", "| AverageTestEpRet | -2.12e+03 |\n", "| StdTestEpRet | 1.6e+03 |\n", "| MaxTestEpRet | -197 |\n", "| MinTestEpRet | -4.99e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+04 |\n", "| AverageQVals | -2.08e+03 |\n", "| StdQVals | 349 |\n", "| MaxQVals | -1.22e+03 |\n", "| MinQVals | -3.62e+03 |\n", "| LossPi | 2.05e+03 |\n", "| LossQ | 4.39e+03 |\n", "| Time | 98.4 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 11 |\n", "| AverageEpRet | -6.6e+03 |\n", "| StdEpRet | 1.12e+03 |\n", "| MaxEpRet | -5.17e+03 |\n", "| MinEpRet | -8.66e+03 |\n", "| AverageTestEpRet | -1.52e+03 |\n", "| StdTestEpRet | 1.31e+03 |\n", "| MaxTestEpRet | -272 |\n", "| MinTestEpRet | -4.05e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.81e+04 |\n", "| AverageQVals | -2.17e+03 |\n", "| StdQVals | 346 |\n", "| MaxQVals | -1.31e+03 |\n", "| MinQVals | -3.7e+03 |\n", "| LossPi | 2.14e+03 |\n", "| LossQ | 4.52e+03 |\n", "| Time | 109 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 12 |\n", "| AverageEpRet | -6.48e+03 |\n", "| StdEpRet | 1.56e+03 |\n", "| MaxEpRet | -4.3e+03 |\n", "| MinEpRet | -9.64e+03 |\n", "| AverageTestEpRet | -853 |\n", "| StdTestEpRet | 975 |\n", "| MaxTestEpRet | -252 |\n", "| MinTestEpRet | -3.67e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.98e+04 |\n", "| AverageQVals | -2.23e+03 |\n", "| StdQVals | 351 |\n", "| MaxQVals | -1.33e+03 |\n", "| MinQVals | -3.71e+03 |\n", "| LossPi | 2.19e+03 |\n", "| LossQ | 4.55e+03 |\n", "| Time | 120 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 13 |\n", "| AverageEpRet | -2.15e+03 |\n", "| StdEpRet | 1.82e+03 |\n", "| MaxEpRet | -104 |\n", "| MinEpRet | -5.94e+03 |\n", "| AverageTestEpRet | -904 |\n", "| StdTestEpRet | 698 |\n", "| MaxTestEpRet | -112 |\n", "| MinTestEpRet | -2.64e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.14e+04 |\n", "| AverageQVals | -2.26e+03 |\n", "| StdQVals | 358 |\n", "| MaxQVals | -1.36e+03 |\n", "| MinQVals | -3.72e+03 |\n", "| LossPi | 2.22e+03 |\n", "| LossQ | 4.46e+03 |\n", "| Time | 130 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 14 |\n", "| AverageEpRet | -1.07e+03 |\n", "| StdEpRet | 1.01e+03 |\n", "| MaxEpRet | -50.3 |\n", "| MinEpRet | -3.32e+03 |\n", "| AverageTestEpRet | -1.86e+03 |\n", "| StdTestEpRet | 1.43e+03 |\n", "| MaxTestEpRet | -70.3 |\n", "| MinTestEpRet | -3.91e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.31e+04 |\n", "| AverageQVals | -2.27e+03 |\n", "| StdQVals | 365 |\n", "| MaxQVals | -1.38e+03 |\n", "| MinQVals | -3.67e+03 |\n", "| LossPi | 2.24e+03 |\n", "| LossQ | 4.4e+03 |\n", "| Time | 139 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 15 |\n", "| AverageEpRet | -1.17e+03 |\n", "| StdEpRet | 1.42e+03 |\n", "| MaxEpRet | -90.8 |\n", "| MinEpRet | -5.9e+03 |\n", "| AverageTestEpRet | -1.81e+03 |\n", "| StdTestEpRet | 2.05e+03 |\n", "| MaxTestEpRet | -39.8 |\n", "| MinTestEpRet | -7.58e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.47e+04 |\n", "| AverageQVals | -2.28e+03 |\n", "| StdQVals | 384 |\n", "| MaxQVals | -1.41e+03 |\n", "| MinQVals | -3.7e+03 |\n", "| LossPi | 2.25e+03 |\n", "| LossQ | 4.73e+03 |\n", "| Time | 149 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 16 |\n", "| AverageEpRet | -1.07e+03 |\n", "| StdEpRet | 900 |\n", "| MaxEpRet | -161 |\n", "| MinEpRet | -3.06e+03 |\n", "| AverageTestEpRet | -666 |\n", "| StdTestEpRet | 658 |\n", "| MaxTestEpRet | -36.8 |\n", "| MinTestEpRet | -2.14e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.64e+04 |\n", "| AverageQVals | -2.26e+03 |\n", "| StdQVals | 408 |\n", "| MaxQVals | -1.34e+03 |\n", "| MinQVals | -3.72e+03 |\n", "| LossPi | 2.23e+03 |\n", "| LossQ | 5.27e+03 |\n", "| Time | 158 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 17 |\n", "| AverageEpRet | -735 |\n", "| StdEpRet | 506 |\n", "| MaxEpRet | -149 |\n", "| MinEpRet | -1.86e+03 |\n", "| AverageTestEpRet | -1.06e+03 |\n", "| StdTestEpRet | 857 |\n", "| MaxTestEpRet | -432 |\n", "| MinTestEpRet | -3.48e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.8e+04 |\n", "| AverageQVals | -2.21e+03 |\n", "| StdQVals | 427 |\n", "| MaxQVals | -1.24e+03 |\n", "| MinQVals | -3.72e+03 |\n", "| LossPi | 2.18e+03 |\n", "| LossQ | 5.37e+03 |\n", "| Time | 169 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 18 |\n", "| AverageEpRet | -733 |\n", "| StdEpRet | 503 |\n", "| MaxEpRet | -133 |\n", "| MinEpRet | -2.05e+03 |\n", "| AverageTestEpRet | -419 |\n", "| StdTestEpRet | 199 |\n", "| MaxTestEpRet | -124 |\n", "| MinTestEpRet | -909 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.97e+04 |\n", "| AverageQVals | -2.12e+03 |\n", "| StdQVals | 444 |\n", "| MaxQVals | -1.11e+03 |\n", "| MinQVals | -3.7e+03 |\n", "| LossPi | 2.08e+03 |\n", "| LossQ | 5.27e+03 |\n", "| Time | 180 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 19 |\n", "| AverageEpRet | -1.07e+03 |\n", "| StdEpRet | 1.01e+03 |\n", "| MaxEpRet | -175 |\n", "| MinEpRet | -3.62e+03 |\n", "| AverageTestEpRet | -947 |\n", "| StdTestEpRet | 1.22e+03 |\n", "| MaxTestEpRet | -150 |\n", "| MinTestEpRet | -4.57e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.13e+04 |\n", "| AverageQVals | -2.01e+03 |\n", "| StdQVals | 455 |\n", "| MaxQVals | -912 |\n", "| MinQVals | -3.57e+03 |\n", "| LossPi | 1.98e+03 |\n", "| LossQ | 5.19e+03 |\n", "| Time | 191 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 20 |\n", "| AverageEpRet | -1.06e+03 |\n", "| StdEpRet | 1.57e+03 |\n", "| MaxEpRet | -133 |\n", "| MinEpRet | -6.81e+03 |\n", "| AverageTestEpRet | -1.01e+03 |\n", "| StdTestEpRet | 843 |\n", "| MaxTestEpRet | -32.9 |\n", "| MinTestEpRet | -3.37e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+04 |\n", "| AverageQVals | -1.89e+03 |\n", "| StdQVals | 464 |\n", "| MaxQVals | -793 |\n", "| MinQVals | -3.5e+03 |\n", "| LossPi | 1.85e+03 |\n", "| LossQ | 4.81e+03 |\n", "| Time | 200 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 21 |\n", "| AverageEpRet | -742 |\n", "| StdEpRet | 596 |\n", "| MaxEpRet | -103 |\n", "| MinEpRet | -2.31e+03 |\n", "| AverageTestEpRet | -618 |\n", "| StdTestEpRet | 405 |\n", "| MaxTestEpRet | -106 |\n", "| MinTestEpRet | -1.49e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.46e+04 |\n", "| AverageQVals | -1.76e+03 |\n", "| StdQVals | 470 |\n", "| MaxQVals | -662 |\n", "| MinQVals | -3.41e+03 |\n", "| LossPi | 1.73e+03 |\n", "| LossQ | 4.45e+03 |\n", "| Time | 210 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 22 |\n", "| AverageEpRet | -1.13e+03 |\n", "| StdEpRet | 1.07e+03 |\n", "| MaxEpRet | -253 |\n", "| MinEpRet | -3.85e+03 |\n", "| AverageTestEpRet | -582 |\n", "| StdTestEpRet | 350 |\n", "| MaxTestEpRet | -78.6 |\n", "| MinTestEpRet | -1.11e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.63e+04 |\n", "| AverageQVals | -1.65e+03 |\n", "| StdQVals | 473 |\n", "| MaxQVals | -528 |\n", "| MinQVals | -3.41e+03 |\n", "| LossPi | 1.61e+03 |\n", "| LossQ | 4.25e+03 |\n", "| Time | 220 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 23 |\n", "| AverageEpRet | -842 |\n", "| StdEpRet | 694 |\n", "| MaxEpRet | -184 |\n", "| MinEpRet | -2.86e+03 |\n", "| AverageTestEpRet | -610 |\n", "| StdTestEpRet | 470 |\n", "| MaxTestEpRet | -75.9 |\n", "| MinTestEpRet | -1.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.79e+04 |\n", "| AverageQVals | -1.55e+03 |\n", "| StdQVals | 472 |\n", "| MaxQVals | -404 |\n", "| MinQVals | -3.34e+03 |\n", "| LossPi | 1.52e+03 |\n", "| LossQ | 4.02e+03 |\n", "| Time | 229 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 24 |\n", "| AverageEpRet | -979 |\n", "| StdEpRet | 997 |\n", "| MaxEpRet | -151 |\n", "| MinEpRet | -4.5e+03 |\n", "| AverageTestEpRet | -940 |\n", "| StdTestEpRet | 578 |\n", "| MaxTestEpRet | -303 |\n", "| MinTestEpRet | -2.14e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.96e+04 |\n", "| AverageQVals | -1.45e+03 |\n", "| StdQVals | 471 |\n", "| MaxQVals | -282 |\n", "| MinQVals | -3.21e+03 |\n", "| LossPi | 1.41e+03 |\n", "| LossQ | 3.65e+03 |\n", "| Time | 238 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 25 |\n", "| AverageEpRet | -827 |\n", "| StdEpRet | 1.01e+03 |\n", "| MaxEpRet | -65.9 |\n", "| MinEpRet | -4.32e+03 |\n", "| AverageTestEpRet | -507 |\n", "| StdTestEpRet | 408 |\n", "| MaxTestEpRet | -129 |\n", "| MinTestEpRet | -1.55e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.12e+04 |\n", "| AverageQVals | -1.34e+03 |\n", "| StdQVals | 475 |\n", "| MaxQVals | -198 |\n", "| MinQVals | -3.12e+03 |\n", "| LossPi | 1.31e+03 |\n", "| LossQ | 3.46e+03 |\n", "| Time | 247 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 26 |\n", "| AverageEpRet | -570 |\n", "| StdEpRet | 393 |\n", "| MaxEpRet | -219 |\n", "| MinEpRet | -1.64e+03 |\n", "| AverageTestEpRet | -1.38e+03 |\n", "| StdTestEpRet | 2.39e+03 |\n", "| MaxTestEpRet | -199 |\n", "| MinTestEpRet | -8.38e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.29e+04 |\n", "| AverageQVals | -1.23e+03 |\n", "| StdQVals | 468 |\n", "| MaxQVals | -118 |\n", "| MinQVals | -2.98e+03 |\n", "| LossPi | 1.2e+03 |\n", "| LossQ | 3.32e+03 |\n", "| Time | 257 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 27 |\n", "| AverageEpRet | -548 |\n", "| StdEpRet | 222 |\n", "| MaxEpRet | -206 |\n", "| MinEpRet | -902 |\n", "| AverageTestEpRet | -499 |\n", "| StdTestEpRet | 385 |\n", "| MaxTestEpRet | -39.2 |\n", "| MinTestEpRet | -1.35e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.45e+04 |\n", "| AverageQVals | -1.12e+03 |\n", "| StdQVals | 456 |\n", "| MaxQVals | -37.4 |\n", "| MinQVals | -2.85e+03 |\n", "| LossPi | 1.09e+03 |\n", "| LossQ | 3.1e+03 |\n", "| Time | 266 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 28 |\n", "| AverageEpRet | -729 |\n", "| StdEpRet | 468 |\n", "| MaxEpRet | -39 |\n", "| MinEpRet | -1.69e+03 |\n", "| AverageTestEpRet | -639 |\n", "| StdTestEpRet | 634 |\n", "| MaxTestEpRet | -180 |\n", "| MinTestEpRet | -2.42e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.62e+04 |\n", "| AverageQVals | -1.02e+03 |\n", "| StdQVals | 441 |\n", "| MaxQVals | 8.18 |\n", "| MinQVals | -2.7e+03 |\n", "| LossPi | 985 |\n", "| LossQ | 2.85e+03 |\n", "| Time | 275 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 29 |\n", "| AverageEpRet | -675 |\n", "| StdEpRet | 286 |\n", "| MaxEpRet | -215 |\n", "| MinEpRet | -1.16e+03 |\n", "| AverageTestEpRet | -543 |\n", "| StdTestEpRet | 308 |\n", "| MaxTestEpRet | -88.7 |\n", "| MinTestEpRet | -1.19e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.78e+04 |\n", "| AverageQVals | -915 |\n", "| StdQVals | 423 |\n", "| MaxQVals | 68.8 |\n", "| MinQVals | -2.6e+03 |\n", "| LossPi | 884 |\n", "| LossQ | 2.65e+03 |\n", "| Time | 285 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 30 |\n", "| AverageEpRet | -621 |\n", "| StdEpRet | 300 |\n", "| MaxEpRet | -123 |\n", "| MinEpRet | -1.19e+03 |\n", "| AverageTestEpRet | -624 |\n", "| StdTestEpRet | 402 |\n", "| MaxTestEpRet | -120 |\n", "| MinTestEpRet | -1.65e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+04 |\n", "| AverageQVals | -816 |\n", "| StdQVals | 410 |\n", "| MaxQVals | 89.4 |\n", "| MinQVals | -2.46e+03 |\n", "| LossPi | 786 |\n", "| LossQ | 2.62e+03 |\n", "| Time | 294 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 31 |\n", "| AverageEpRet | -575 |\n", "| StdEpRet | 326 |\n", "| MaxEpRet | -162 |\n", "| MinEpRet | -1.25e+03 |\n", "| AverageTestEpRet | -771 |\n", "| StdTestEpRet | 581 |\n", "| MaxTestEpRet | -185 |\n", "| MinTestEpRet | -1.98e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.11e+04 |\n", "| AverageQVals | -722 |\n", "| StdQVals | 394 |\n", "| MaxQVals | 128 |\n", "| MinQVals | -2.35e+03 |\n", "| LossPi | 692 |\n", "| LossQ | 2.52e+03 |\n", "| Time | 304 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 32 |\n", "| AverageEpRet | -948 |\n", "| StdEpRet | 1.13e+03 |\n", "| MaxEpRet | -203 |\n", "| MinEpRet | -4.87e+03 |\n", "| AverageTestEpRet | -432 |\n", "| StdTestEpRet | 203 |\n", "| MaxTestEpRet | -136 |\n", "| MinTestEpRet | -820 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.28e+04 |\n", "| AverageQVals | -629 |\n", "| StdQVals | 375 |\n", "| MaxQVals | 168 |\n", "| MinQVals | -2.12e+03 |\n", "| LossPi | 599 |\n", "| LossQ | 2.39e+03 |\n", "| Time | 313 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 33 |\n", "| AverageEpRet | -645 |\n", "| StdEpRet | 334 |\n", "| MaxEpRet | -236 |\n", "| MinEpRet | -1.47e+03 |\n", "| AverageTestEpRet | -571 |\n", "| StdTestEpRet | 244 |\n", "| MaxTestEpRet | -172 |\n", "| MinTestEpRet | -850 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.44e+04 |\n", "| AverageQVals | -543 |\n", "| StdQVals | 363 |\n", "| MaxQVals | 212 |\n", "| MinQVals | -2.03e+03 |\n", "| LossPi | 513 |\n", "| LossQ | 2.31e+03 |\n", "| Time | 324 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 34 |\n", "| AverageEpRet | -678 |\n", "| StdEpRet | 551 |\n", "| MaxEpRet | -140 |\n", "| MinEpRet | -2.28e+03 |\n", "| AverageTestEpRet | -527 |\n", "| StdTestEpRet | 379 |\n", "| MaxTestEpRet | -53.7 |\n", "| MinTestEpRet | -1.38e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.61e+04 |\n", "| AverageQVals | -461 |\n", "| StdQVals | 350 |\n", "| MaxQVals | 253 |\n", "| MinQVals | -1.93e+03 |\n", "| LossPi | 432 |\n", "| LossQ | 2.2e+03 |\n", "| Time | 336 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 35 |\n", "| AverageEpRet | -706 |\n", "| StdEpRet | 350 |\n", "| MaxEpRet | -92.1 |\n", "| MinEpRet | -1.52e+03 |\n", "| AverageTestEpRet | -719 |\n", "| StdTestEpRet | 329 |\n", "| MaxTestEpRet | -95.6 |\n", "| MinTestEpRet | -1.32e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.77e+04 |\n", "| AverageQVals | -386 |\n", "| StdQVals | 340 |\n", "| MaxQVals | 282 |\n", "| MinQVals | -1.83e+03 |\n", "| LossPi | 357 |\n", "| LossQ | 2.15e+03 |\n", "| Time | 348 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 36 |\n", "| AverageEpRet | -489 |\n", "| StdEpRet | 245 |\n", "| MaxEpRet | -96.9 |\n", "| MinEpRet | -883 |\n", "| AverageTestEpRet | -543 |\n", "| StdTestEpRet | 276 |\n", "| MaxTestEpRet | -231 |\n", "| MinTestEpRet | -1.21e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.94e+04 |\n", "| AverageQVals | -310 |\n", "| StdQVals | 327 |\n", "| MaxQVals | 316 |\n", "| MinQVals | -1.73e+03 |\n", "| LossPi | 282 |\n", "| LossQ | 2.05e+03 |\n", "| Time | 359 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 37 |\n", "| AverageEpRet | -717 |\n", "| StdEpRet | 456 |\n", "| MaxEpRet | -45.3 |\n", "| MinEpRet | -1.62e+03 |\n", "| AverageTestEpRet | -1.72e+03 |\n", "| StdTestEpRet | 2.52e+03 |\n", "| MaxTestEpRet | -78.1 |\n", "| MinTestEpRet | -8.97e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.1e+04 |\n", "| AverageQVals | -245 |\n", "| StdQVals | 317 |\n", "| MaxQVals | 356 |\n", "| MinQVals | -1.58e+03 |\n", "| LossPi | 218 |\n", "| LossQ | 1.93e+03 |\n", "| Time | 370 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 38 |\n", "| AverageEpRet | -812 |\n", "| StdEpRet | 886 |\n", "| MaxEpRet | -83.9 |\n", "| MinEpRet | -3.72e+03 |\n", "| AverageTestEpRet | -1.5e+03 |\n", "| StdTestEpRet | 2.56e+03 |\n", "| MaxTestEpRet | -234 |\n", "| MinTestEpRet | -9.15e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.27e+04 |\n", "| AverageQVals | -193 |\n", "| StdQVals | 308 |\n", "| MaxQVals | 396 |\n", "| MinQVals | -1.52e+03 |\n", "| LossPi | 167 |\n", "| LossQ | 1.82e+03 |\n", "| Time | 381 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 39 |\n", "| AverageEpRet | -536 |\n", "| StdEpRet | 405 |\n", "| MaxEpRet | -47.5 |\n", "| MinEpRet | -1.63e+03 |\n", "| AverageTestEpRet | -509 |\n", "| StdTestEpRet | 313 |\n", "| MaxTestEpRet | -99.5 |\n", "| MinTestEpRet | -1.24e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.43e+04 |\n", "| AverageQVals | -143 |\n", "| StdQVals | 300 |\n", "| MaxQVals | 426 |\n", "| MinQVals | -1.4e+03 |\n", "| LossPi | 117 |\n", "| LossQ | 1.72e+03 |\n", "| Time | 392 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 40 |\n", "| AverageEpRet | -954 |\n", "| StdEpRet | 1.03e+03 |\n", "| MaxEpRet | -283 |\n", "| MinEpRet | -4.69e+03 |\n", "| AverageTestEpRet | -655 |\n", "| StdTestEpRet | 302 |\n", "| MaxTestEpRet | -133 |\n", "| MinTestEpRet | -1.2e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+04 |\n", "| AverageQVals | -100 |\n", "| StdQVals | 294 |\n", "| MaxQVals | 467 |\n", "| MinQVals | -1.32e+03 |\n", "| LossPi | 75.2 |\n", "| LossQ | 1.74e+03 |\n", "| Time | 402 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 41 |\n", "| AverageEpRet | -804 |\n", "| StdEpRet | 775 |\n", "| MaxEpRet | -89.1 |\n", "| MinEpRet | -3.35e+03 |\n", "| AverageTestEpRet | -552 |\n", "| StdTestEpRet | 335 |\n", "| MaxTestEpRet | -158 |\n", "| MinTestEpRet | -1.09e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.76e+04 |\n", "| AverageQVals | -63.2 |\n", "| StdQVals | 289 |\n", "| MaxQVals | 520 |\n", "| MinQVals | -1.24e+03 |\n", "| LossPi | 39 |\n", "| LossQ | 1.7e+03 |\n", "| Time | 411 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 42 |\n", "| AverageEpRet | -748 |\n", "| StdEpRet | 326 |\n", "| MaxEpRet | -298 |\n", "| MinEpRet | -1.45e+03 |\n", "| AverageTestEpRet | -618 |\n", "| StdTestEpRet | 288 |\n", "| MaxTestEpRet | -219 |\n", "| MinTestEpRet | -1.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.93e+04 |\n", "| AverageQVals | -24.8 |\n", "| StdQVals | 282 |\n", "| MaxQVals | 528 |\n", "| MinQVals | -1.24e+03 |\n", "| LossPi | 0.71 |\n", "| LossQ | 1.65e+03 |\n", "| Time | 421 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 43 |\n", "| AverageEpRet | -692 |\n", "| StdEpRet | 506 |\n", "| MaxEpRet | -37.6 |\n", "| MinEpRet | -1.71e+03 |\n", "| AverageTestEpRet | -745 |\n", "| StdTestEpRet | 315 |\n", "| MaxTestEpRet | -382 |\n", "| MinTestEpRet | -1.56e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.09e+04 |\n", "| AverageQVals | 9.08 |\n", "| StdQVals | 277 |\n", "| MaxQVals | 553 |\n", "| MinQVals | -1.14e+03 |\n", "| LossPi | -31.9 |\n", "| LossQ | 1.6e+03 |\n", "| Time | 431 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 44 |\n", "| AverageEpRet | -616 |\n", "| StdEpRet | 316 |\n", "| MaxEpRet | -103 |\n", "| MinEpRet | -1.3e+03 |\n", "| AverageTestEpRet | -848 |\n", "| StdTestEpRet | 327 |\n", "| MaxTestEpRet | -470 |\n", "| MinTestEpRet | -1.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.26e+04 |\n", "| AverageQVals | 35.5 |\n", "| StdQVals | 275 |\n", "| MaxQVals | 563 |\n", "| MinQVals | -1.12e+03 |\n", "| LossPi | -58.2 |\n", "| LossQ | 1.56e+03 |\n", "| Time | 440 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 45 |\n", "| AverageEpRet | -771 |\n", "| StdEpRet | 461 |\n", "| MaxEpRet | -67.5 |\n", "| MinEpRet | -1.77e+03 |\n", "| AverageTestEpRet | -671 |\n", "| StdTestEpRet | 399 |\n", "| MaxTestEpRet | -155 |\n", "| MinTestEpRet | -1.51e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.42e+04 |\n", "| AverageQVals | 63.8 |\n", "| StdQVals | 270 |\n", "| MaxQVals | 583 |\n", "| MinQVals | -1.11e+03 |\n", "| LossPi | -86.5 |\n", "| LossQ | 1.51e+03 |\n", "| Time | 450 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 46 |\n", "| AverageEpRet | -673 |\n", "| StdEpRet | 441 |\n", "| MaxEpRet | -56.6 |\n", "| MinEpRet | -1.36e+03 |\n", "| AverageTestEpRet | -834 |\n", "| StdTestEpRet | 721 |\n", "| MaxTestEpRet | -126 |\n", "| MinTestEpRet | -2.87e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.59e+04 |\n", "| AverageQVals | 90.2 |\n", "| StdQVals | 266 |\n", "| MaxQVals | 608 |\n", "| MinQVals | -1.06e+03 |\n", "| LossPi | -112 |\n", "| LossQ | 1.41e+03 |\n", "| Time | 459 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 47 |\n", "| AverageEpRet | -612 |\n", "| StdEpRet | 339 |\n", "| MaxEpRet | -94.3 |\n", "| MinEpRet | -1.33e+03 |\n", "| AverageTestEpRet | -448 |\n", "| StdTestEpRet | 330 |\n", "| MaxTestEpRet | -20.4 |\n", "| MinTestEpRet | -1.13e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.75e+04 |\n", "| AverageQVals | 107 |\n", "| StdQVals | 265 |\n", "| MaxQVals | 631 |\n", "| MinQVals | -1.05e+03 |\n", "| LossPi | -128 |\n", "| LossQ | 1.42e+03 |\n", "| Time | 468 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 48 |\n", "| AverageEpRet | -568 |\n", "| StdEpRet | 285 |\n", "| MaxEpRet | -68.5 |\n", "| MinEpRet | -1.3e+03 |\n", "| AverageTestEpRet | -643 |\n", "| StdTestEpRet | 339 |\n", "| MaxTestEpRet | -141 |\n", "| MinTestEpRet | -1.24e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.92e+04 |\n", "| AverageQVals | 129 |\n", "| StdQVals | 267 |\n", "| MaxQVals | 667 |\n", "| MinQVals | -1.02e+03 |\n", "| LossPi | -150 |\n", "| LossQ | 1.37e+03 |\n", "| Time | 478 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 49 |\n", "| AverageEpRet | -616 |\n", "| StdEpRet | 302 |\n", "| MaxEpRet | -188 |\n", "| MinEpRet | -1.36e+03 |\n", "| AverageTestEpRet | -672 |\n", "| StdTestEpRet | 345 |\n", "| MaxTestEpRet | -175 |\n", "| MinTestEpRet | -1.15e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.08e+04 |\n", "| AverageQVals | 150 |\n", "| StdQVals | 266 |\n", "| MaxQVals | 676 |\n", "| MinQVals | -1.01e+03 |\n", "| LossPi | -171 |\n", "| LossQ | 1.36e+03 |\n", "| Time | 488 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 50 |\n", "| AverageEpRet | -584 |\n", "| StdEpRet | 338 |\n", "| MaxEpRet | -179 |\n", "| MinEpRet | -1.21e+03 |\n", "| AverageTestEpRet | -388 |\n", "| StdTestEpRet | 216 |\n", "| MaxTestEpRet | -101 |\n", "| MinTestEpRet | -817 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+04 |\n", "| AverageQVals | 170 |\n", "| StdQVals | 264 |\n", "| MaxQVals | 687 |\n", "| MinQVals | -980 |\n", "| LossPi | -191 |\n", "| LossQ | 1.33e+03 |\n", "| Time | 497 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 51 |\n", "| AverageEpRet | -589 |\n", "| StdEpRet | 381 |\n", "| MaxEpRet | -36.9 |\n", "| MinEpRet | -1.2e+03 |\n", "| AverageTestEpRet | -509 |\n", "| StdTestEpRet | 244 |\n", "| MaxTestEpRet | -191 |\n", "| MinTestEpRet | -886 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.41e+04 |\n", "| AverageQVals | 192 |\n", "| StdQVals | 264 |\n", "| MaxQVals | 740 |\n", "| MinQVals | -953 |\n", "| LossPi | -214 |\n", "| LossQ | 1.29e+03 |\n", "| Time | 506 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 52 |\n", "| AverageEpRet | -663 |\n", "| StdEpRet | 299 |\n", "| MaxEpRet | -81.1 |\n", "| MinEpRet | -1.24e+03 |\n", "| AverageTestEpRet | -864 |\n", "| StdTestEpRet | 444 |\n", "| MaxTestEpRet | -410 |\n", "| MinTestEpRet | -2.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.58e+04 |\n", "| AverageQVals | 219 |\n", "| StdQVals | 263 |\n", "| MaxQVals | 764 |\n", "| MinQVals | -940 |\n", "| LossPi | -241 |\n", "| LossQ | 1.25e+03 |\n", "| Time | 516 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 53 |\n", "| AverageEpRet | -539 |\n", "| StdEpRet | 355 |\n", "| MaxEpRet | -156 |\n", "| MinEpRet | -1.38e+03 |\n", "| AverageTestEpRet | -425 |\n", "| StdTestEpRet | 229 |\n", "| MaxTestEpRet | -147 |\n", "| MinTestEpRet | -913 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.74e+04 |\n", "| AverageQVals | 242 |\n", "| StdQVals | 266 |\n", "| MaxQVals | 781 |\n", "| MinQVals | -874 |\n", "| LossPi | -263 |\n", "| LossQ | 1.29e+03 |\n", "| Time | 526 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 54 |\n", "| AverageEpRet | -627 |\n", "| StdEpRet | 357 |\n", "| MaxEpRet | -242 |\n", "| MinEpRet | -1.4e+03 |\n", "| AverageTestEpRet | -600 |\n", "| StdTestEpRet | 219 |\n", "| MaxTestEpRet | -275 |\n", "| MinTestEpRet | -1.05e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.91e+04 |\n", "| AverageQVals | 260 |\n", "| StdQVals | 266 |\n", "| MaxQVals | 814 |\n", "| MinQVals | -844 |\n", "| LossPi | -280 |\n", "| LossQ | 1.21e+03 |\n", "| Time | 536 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 55 |\n", "| AverageEpRet | -626 |\n", "| StdEpRet | 416 |\n", "| MaxEpRet | -106 |\n", "| MinEpRet | -1.48e+03 |\n", "| AverageTestEpRet | -640 |\n", "| StdTestEpRet | 502 |\n", "| MaxTestEpRet | -119 |\n", "| MinTestEpRet | -1.74e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.07e+04 |\n", "| AverageQVals | 277 |\n", "| StdQVals | 265 |\n", "| MaxQVals | 824 |\n", "| MinQVals | -892 |\n", "| LossPi | -297 |\n", "| LossQ | 1.2e+03 |\n", "| Time | 546 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 56 |\n", "| AverageEpRet | -616 |\n", "| StdEpRet | 331 |\n", "| MaxEpRet | -43 |\n", "| MinEpRet | -1.34e+03 |\n", "| AverageTestEpRet | -751 |\n", "| StdTestEpRet | 635 |\n", "| MaxTestEpRet | -78.4 |\n", "| MinTestEpRet | -2.29e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.24e+04 |\n", "| AverageQVals | 291 |\n", "| StdQVals | 263 |\n", "| MaxQVals | 833 |\n", "| MinQVals | -834 |\n", "| LossPi | -311 |\n", "| LossQ | 1.18e+03 |\n", "| Time | 555 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 57 |\n", "| AverageEpRet | -819 |\n", "| StdEpRet | 410 |\n", "| MaxEpRet | -156 |\n", "| MinEpRet | -1.58e+03 |\n", "| AverageTestEpRet | -670 |\n", "| StdTestEpRet | 492 |\n", "| MaxTestEpRet | -152 |\n", "| MinTestEpRet | -1.89e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.4e+04 |\n", "| AverageQVals | 304 |\n", "| StdQVals | 265 |\n", "| MaxQVals | 850 |\n", "| MinQVals | -816 |\n", "| LossPi | -324 |\n", "| LossQ | 1.17e+03 |\n", "| Time | 565 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 58 |\n", "| AverageEpRet | -564 |\n", "| StdEpRet | 228 |\n", "| MaxEpRet | -263 |\n", "| MinEpRet | -975 |\n", "| AverageTestEpRet | -555 |\n", "| StdTestEpRet | 290 |\n", "| MaxTestEpRet | -60.9 |\n", "| MinTestEpRet | -1.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.57e+04 |\n", "| AverageQVals | 317 |\n", "| StdQVals | 262 |\n", "| MaxQVals | 862 |\n", "| MinQVals | -777 |\n", "| LossPi | -336 |\n", "| LossQ | 1.12e+03 |\n", "| Time | 577 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 59 |\n", "| AverageEpRet | -494 |\n", "| StdEpRet | 357 |\n", "| MaxEpRet | -105 |\n", "| MinEpRet | -1.34e+03 |\n", "| AverageTestEpRet | -630 |\n", "| StdTestEpRet | 309 |\n", "| MaxTestEpRet | -158 |\n", "| MinTestEpRet | -1.34e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.73e+04 |\n", "| AverageQVals | 323 |\n", "| StdQVals | 262 |\n", "| MaxQVals | 854 |\n", "| MinQVals | -796 |\n", "| LossPi | -342 |\n", "| LossQ | 1.11e+03 |\n", "| Time | 588 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 60 |\n", "| AverageEpRet | -535 |\n", "| StdEpRet | 286 |\n", "| MaxEpRet | -189 |\n", "| MinEpRet | -1.36e+03 |\n", "| AverageTestEpRet | -587 |\n", "| StdTestEpRet | 399 |\n", "| MaxTestEpRet | -83.5 |\n", "| MinTestEpRet | -1.23e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+04 |\n", "| AverageQVals | 330 |\n", "| StdQVals | 260 |\n", "| MaxQVals | 866 |\n", "| MinQVals | -780 |\n", "| LossPi | -348 |\n", "| LossQ | 1.06e+03 |\n", "| Time | 600 |\n", "---------------------------------------\n" ] } ], "source": [ "# Setup baseline 1\n", "logger_kwargs = dict(output_dir='ddpg_b1', exp_name='baseline')\n", "seed_b = 10\n", "epochs_b = 60\n", "maxeplen_b = 110\n", "\n", "spe_b = maxeplen_b * 15\n", "repsize_b = 1000000\n", "gamma_b = 0.99\n", "polyak_b = 0.995\n", "batchsize_b = 100\n", "startsteps_b = 20000\n", "args_b = dict(hidden_sizes=[1000,], activation=torch.nn.ReLU)\n", "actnoise_b = 0.1\n", "pilr_b = 0.001\n", "qlr_b = 0.001\n", "\n", "# Baseline 1 training\n", "spinup.ddpg_pytorch(GyroscopeEnv, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n", "polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, act_noise = actnoise_b, pi_lr = pilr_b, q_lr = qlr_b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### TD3" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[32;1mLogging data to td3_b0/progress.txt\u001b[0m\n", "\u001b[36;1mSaving config:\n", "\u001b[0m\n", "{\n", " \"ac_kwargs\":\t{\n", " \"activation\":\t\"ReLU\",\n", " \"hidden_sizes\":\t[\n", " 300\n", " ]\n", " },\n", " \"act_noise\":\t0.1,\n", " \"actor_critic\":\t\"MLPActorCritic\",\n", " \"batch_size\":\t100,\n", " \"env_fn\":\t\"GyroscopeEnv\",\n", " \"epochs\":\t60,\n", " \"exp_name\":\t\"baseline\",\n", " \"gamma\":\t0.99,\n", " \"logger\":\t{\n", " \"\":\t{\n", " \"epoch_dict\":\t{},\n", " \"exp_name\":\t\"baseline\",\n", " \"first_row\":\ttrue,\n", " \"log_current_row\":\t{},\n", " \"log_headers\":\t[],\n", " \"output_dir\":\t\"td3_b0\",\n", " \"output_file\":\t{\n", " \"<_io.TextIOWrapper name='td3_b0/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", " \"mode\":\t\"w\"\n", " }\n", " }\n", " }\n", " },\n", " \"logger_kwargs\":\t{\n", " \"exp_name\":\t\"baseline\",\n", " \"output_dir\":\t\"td3_b0\"\n", " },\n", " \"max_ep_len\":\t110,\n", " \"noise_clip\":\t0.5,\n", " \"num_test_episodes\":\t10,\n", " \"pi_lr\":\t0.001,\n", " \"policy_delay\":\t2,\n", " \"polyak\":\t0.995,\n", " \"q_lr\":\t0.001,\n", " \"replay_size\":\t1000000,\n", " \"save_freq\":\t1,\n", " \"seed\":\t0,\n", " \"start_steps\":\t10000,\n", " \"steps_per_epoch\":\t1650,\n", " \"target_noise\":\t0.2,\n", " \"update_after\":\t1000,\n", " \"update_every\":\t50\n", "}\n", "\u001b[32;1m\n", "Number of parameters: \t pi: 3002, \t q1: 3301, \t q2: 3301\n", "\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/matthieulc/.local/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: Box bound precision lowered by casting to float32\u001b[0m\n", " warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 1 |\n", "| AverageEpRet | -7.08e+03 |\n", "| StdEpRet | 1.27e+03 |\n", "| MaxEpRet | -4.69e+03 |\n", "| MinEpRet | -8.92e+03 |\n", "| AverageTestEpRet | -6.74e+03 |\n", "| StdTestEpRet | 1.09e+03 |\n", "| MaxTestEpRet | -5.3e+03 |\n", "| MinTestEpRet | -9.16e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+03 |\n", "| AverageQ1Vals | -86.3 |\n", "| StdQ1Vals | 42.5 |\n", "| MaxQ1Vals | 3.25 |\n", "| MinQ1Vals | -222 |\n", "| AverageQ2Vals | -86.1 |\n", "| StdQ2Vals | 42.6 |\n", "| MaxQ2Vals | 4.88 |\n", "| MinQ2Vals | -220 |\n", "| LossPi | 77 |\n", "| LossQ | 3.66e+03 |\n", "| Time | 4.33 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 2 |\n", "| AverageEpRet | -7.21e+03 |\n", "| StdEpRet | 1.02e+03 |\n", "| MaxEpRet | -5.89e+03 |\n", "| MinEpRet | -9.11e+03 |\n", "| AverageTestEpRet | -6.12e+03 |\n", "| StdTestEpRet | 1.22e+03 |\n", "| MaxTestEpRet | -3.43e+03 |\n", "| MinTestEpRet | -7.93e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+03 |\n", "| AverageQ1Vals | -226 |\n", "| StdQ1Vals | 82.5 |\n", "| MaxQ1Vals | -26.4 |\n", "| MinQ1Vals | -592 |\n", "| AverageQ2Vals | -226 |\n", "| StdQ2Vals | 82.6 |\n", "| MaxQ2Vals | -26.8 |\n", "| MinQ2Vals | -596 |\n", "| LossPi | 213 |\n", "| LossQ | 2.52e+03 |\n", "| Time | 12.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 3 |\n", "| AverageEpRet | -7.28e+03 |\n", "| StdEpRet | 1.44e+03 |\n", "| MaxEpRet | -4.72e+03 |\n", "| MinEpRet | -1.06e+04 |\n", "| AverageTestEpRet | -7.38e+03 |\n", "| StdTestEpRet | 1.61e+03 |\n", "| MaxTestEpRet | -5.61e+03 |\n", "| MinTestEpRet | -1.1e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+03 |\n", "| AverageQ1Vals | -425 |\n", "| StdQ1Vals | 125 |\n", "| MaxQ1Vals | -87.4 |\n", "| MinQ1Vals | -899 |\n", "| AverageQ2Vals | -425 |\n", "| StdQ2Vals | 125 |\n", "| MaxQ2Vals | -83.2 |\n", "| MinQ2Vals | -901 |\n", "| LossPi | 411 |\n", "| LossQ | 2.87e+03 |\n", "| Time | 20.5 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 4 |\n", "| AverageEpRet | -6.63e+03 |\n", "| StdEpRet | 1.19e+03 |\n", "| MaxEpRet | -5.15e+03 |\n", "| MinEpRet | -9.01e+03 |\n", "| AverageTestEpRet | -6.16e+03 |\n", "| StdTestEpRet | 1.04e+03 |\n", "| MaxTestEpRet | -3.85e+03 |\n", "| MinTestEpRet | -7.53e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+03 |\n", "| AverageQ1Vals | -601 |\n", "| StdQ1Vals | 152 |\n", "| MaxQ1Vals | -151 |\n", "| MinQ1Vals | -1.15e+03 |\n", "| AverageQ2Vals | -601 |\n", "| StdQ2Vals | 152 |\n", "| MaxQ2Vals | -150 |\n", "| MinQ2Vals | -1.15e+03 |\n", "| LossPi | 585 |\n", "| LossQ | 4.51e+03 |\n", "| Time | 27.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 5 |\n", "| AverageEpRet | -6.91e+03 |\n", "| StdEpRet | 1.18e+03 |\n", "| MaxEpRet | -5.26e+03 |\n", "| MinEpRet | -9.21e+03 |\n", "| AverageTestEpRet | -5.3e+03 |\n", "| StdTestEpRet | 2.84e+03 |\n", "| MaxTestEpRet | -256 |\n", "| MinTestEpRet | -1.05e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+03 |\n", "| AverageQ1Vals | -767 |\n", "| StdQ1Vals | 178 |\n", "| MaxQ1Vals | -233 |\n", "| MinQ1Vals | -1.42e+03 |\n", "| AverageQ2Vals | -767 |\n", "| StdQ2Vals | 178 |\n", "| MaxQ2Vals | -232 |\n", "| MinQ2Vals | -1.42e+03 |\n", "| LossPi | 749 |\n", "| LossQ | 6.17e+03 |\n", "| Time | 34.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 6 |\n", "| AverageEpRet | -7.46e+03 |\n", "| StdEpRet | 1.34e+03 |\n", "| MaxEpRet | -4.48e+03 |\n", "| MinEpRet | -1.02e+04 |\n", "| AverageTestEpRet | -4.83e+03 |\n", "| StdTestEpRet | 2.98e+03 |\n", "| MaxTestEpRet | -788 |\n", "| MinTestEpRet | -1.08e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+03 |\n", "| AverageQ1Vals | -917 |\n", "| StdQ1Vals | 201 |\n", "| MaxQ1Vals | -332 |\n", "| MinQ1Vals | -1.73e+03 |\n", "| AverageQ2Vals | -917 |\n", "| StdQ2Vals | 201 |\n", "| MaxQ2Vals | -333 |\n", "| MinQ2Vals | -1.74e+03 |\n", "| LossPi | 897 |\n", "| LossQ | 7.66e+03 |\n", "| Time | 40.8 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 7 |\n", "| AverageEpRet | -4.36e+03 |\n", "| StdEpRet | 2.56e+03 |\n", "| MaxEpRet | -1.15e+03 |\n", "| MinEpRet | -1e+04 |\n", "| AverageTestEpRet | -3.25e+03 |\n", "| StdTestEpRet | 2.18e+03 |\n", "| MaxTestEpRet | -522 |\n", "| MinTestEpRet | -6.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.15e+04 |\n", "| AverageQ1Vals | -1.05e+03 |\n", "| StdQ1Vals | 223 |\n", "| MaxQ1Vals | -410 |\n", "| MinQ1Vals | -1.93e+03 |\n", "| AverageQ2Vals | -1.05e+03 |\n", "| StdQ2Vals | 223 |\n", "| MaxQ2Vals | -412 |\n", "| MinQ2Vals | -1.94e+03 |\n", "| LossPi | 1.03e+03 |\n", "| LossQ | 8.29e+03 |\n", "| Time | 47.8 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 8 |\n", "| AverageEpRet | -2.85e+03 |\n", "| StdEpRet | 1.72e+03 |\n", "| MaxEpRet | -666 |\n", "| MinEpRet | -7.37e+03 |\n", "| AverageTestEpRet | -1.99e+03 |\n", "| StdTestEpRet | 1.03e+03 |\n", "| MaxTestEpRet | -588 |\n", "| MinTestEpRet | -3.87e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.32e+04 |\n", "| AverageQ1Vals | -1.15e+03 |\n", "| StdQ1Vals | 246 |\n", "| MaxQ1Vals | -494 |\n", "| MinQ1Vals | -2.13e+03 |\n", "| AverageQ2Vals | -1.15e+03 |\n", "| StdQ2Vals | 246 |\n", "| MaxQ2Vals | -495 |\n", "| MinQ2Vals | -2.13e+03 |\n", "| LossPi | 1.13e+03 |\n", "| LossQ | 8.87e+03 |\n", "| Time | 54.5 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 9 |\n", "| AverageEpRet | -1.39e+03 |\n", "| StdEpRet | 1.11e+03 |\n", "| MaxEpRet | -175 |\n", "| MinEpRet | -4.25e+03 |\n", "| AverageTestEpRet | -1.73e+03 |\n", "| StdTestEpRet | 1.09e+03 |\n", "| MaxTestEpRet | -233 |\n", "| MinTestEpRet | -3.46e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.48e+04 |\n", "| AverageQ1Vals | -1.24e+03 |\n", "| StdQ1Vals | 266 |\n", "| MaxQ1Vals | -571 |\n", "| MinQ1Vals | -2.22e+03 |\n", "| AverageQ2Vals | -1.24e+03 |\n", "| StdQ2Vals | 265 |\n", "| MaxQ2Vals | -569 |\n", "| MinQ2Vals | -2.22e+03 |\n", "| LossPi | 1.22e+03 |\n", "| LossQ | 9.06e+03 |\n", "| Time | 61.8 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 10 |\n", "| AverageEpRet | -1.87e+03 |\n", "| StdEpRet | 1.33e+03 |\n", "| MaxEpRet | -653 |\n", "| MinEpRet | -5.58e+03 |\n", "| AverageTestEpRet | -1.92e+03 |\n", "| StdTestEpRet | 1.17e+03 |\n", "| MaxTestEpRet | -154 |\n", "| MinTestEpRet | -3.47e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+04 |\n", "| AverageQ1Vals | -1.3e+03 |\n", "| StdQ1Vals | 290 |\n", "| MaxQ1Vals | -629 |\n", "| MinQ1Vals | -2.33e+03 |\n", "| AverageQ2Vals | -1.3e+03 |\n", "| StdQ2Vals | 290 |\n", "| MaxQ2Vals | -628 |\n", "| MinQ2Vals | -2.32e+03 |\n", "| LossPi | 1.28e+03 |\n", "| LossQ | 9.43e+03 |\n", "| Time | 69 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 11 |\n", "| AverageEpRet | -1.86e+03 |\n", "| StdEpRet | 2.59e+03 |\n", "| MaxEpRet | -235 |\n", "| MinEpRet | -1.08e+04 |\n", "| AverageTestEpRet | -942 |\n", "| StdTestEpRet | 929 |\n", "| MaxTestEpRet | -20.6 |\n", "| MinTestEpRet | -3.18e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.81e+04 |\n", "| AverageQ1Vals | -1.35e+03 |\n", "| StdQ1Vals | 305 |\n", "| MaxQ1Vals | -667 |\n", "| MinQ1Vals | -2.44e+03 |\n", "| AverageQ2Vals | -1.35e+03 |\n", "| StdQ2Vals | 305 |\n", "| MaxQ2Vals | -666 |\n", "| MinQ2Vals | -2.43e+03 |\n", "| LossPi | 1.33e+03 |\n", "| LossQ | 9.92e+03 |\n", "| Time | 76.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 12 |\n", "| AverageEpRet | -1.2e+03 |\n", "| StdEpRet | 1.16e+03 |\n", "| MaxEpRet | -177 |\n", "| MinEpRet | -4.65e+03 |\n", "| AverageTestEpRet | -1.22e+03 |\n", "| StdTestEpRet | 1.11e+03 |\n", "| MaxTestEpRet | -365 |\n", "| MinTestEpRet | -3.97e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.98e+04 |\n", "| AverageQ1Vals | -1.38e+03 |\n", "| StdQ1Vals | 325 |\n", "| MaxQ1Vals | -687 |\n", "| MinQ1Vals | -2.53e+03 |\n", "| AverageQ2Vals | -1.38e+03 |\n", "| StdQ2Vals | 325 |\n", "| MaxQ2Vals | -689 |\n", "| MinQ2Vals | -2.53e+03 |\n", "| LossPi | 1.36e+03 |\n", "| LossQ | 1.03e+04 |\n", "| Time | 83.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 13 |\n", "| AverageEpRet | -1.1e+03 |\n", "| StdEpRet | 877 |\n", "| MaxEpRet | -137 |\n", "| MinEpRet | -3.32e+03 |\n", "| AverageTestEpRet | -1.19e+03 |\n", "| StdTestEpRet | 479 |\n", "| MaxTestEpRet | -441 |\n", "| MinTestEpRet | -1.76e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.14e+04 |\n", "| AverageQ1Vals | -1.39e+03 |\n", "| StdQ1Vals | 343 |\n", "| MaxQ1Vals | -677 |\n", "| MinQ1Vals | -2.61e+03 |\n", "| AverageQ2Vals | -1.39e+03 |\n", "| StdQ2Vals | 343 |\n", "| MaxQ2Vals | -680 |\n", "| MinQ2Vals | -2.61e+03 |\n", "| LossPi | 1.37e+03 |\n", "| LossQ | 1.08e+04 |\n", "| Time | 90.2 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 14 |\n", "| AverageEpRet | -852 |\n", "| StdEpRet | 529 |\n", "| MaxEpRet | -21.3 |\n", "| MinEpRet | -1.74e+03 |\n", "| AverageTestEpRet | -1.6e+03 |\n", "| StdTestEpRet | 1.04e+03 |\n", "| MaxTestEpRet | -120 |\n", "| MinTestEpRet | -3.09e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.31e+04 |\n", "| AverageQ1Vals | -1.39e+03 |\n", "| StdQ1Vals | 361 |\n", "| MaxQ1Vals | -647 |\n", "| MinQ1Vals | -2.68e+03 |\n", "| AverageQ2Vals | -1.39e+03 |\n", "| StdQ2Vals | 361 |\n", "| MaxQ2Vals | -657 |\n", "| MinQ2Vals | -2.67e+03 |\n", "| LossPi | 1.36e+03 |\n", "| LossQ | 1.09e+04 |\n", "| Time | 97.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 15 |\n", "| AverageEpRet | -1.02e+03 |\n", "| StdEpRet | 555 |\n", "| MaxEpRet | -137 |\n", "| MinEpRet | -2.26e+03 |\n", "| AverageTestEpRet | -635 |\n", "| StdTestEpRet | 511 |\n", "| MaxTestEpRet | -112 |\n", "| MinTestEpRet | -1.78e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.47e+04 |\n", "| AverageQ1Vals | -1.38e+03 |\n", "| StdQ1Vals | 369 |\n", "| MaxQ1Vals | -638 |\n", "| MinQ1Vals | -2.73e+03 |\n", "| AverageQ2Vals | -1.38e+03 |\n", "| StdQ2Vals | 369 |\n", "| MaxQ2Vals | -640 |\n", "| MinQ2Vals | -2.73e+03 |\n", "| LossPi | 1.36e+03 |\n", "| LossQ | 1.12e+04 |\n", "| Time | 104 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 16 |\n", "| AverageEpRet | -626 |\n", "| StdEpRet | 758 |\n", "| MaxEpRet | -59.3 |\n", "| MinEpRet | -3.17e+03 |\n", "| AverageTestEpRet | -1.19e+03 |\n", "| StdTestEpRet | 948 |\n", "| MaxTestEpRet | -109 |\n", "| MinTestEpRet | -2.7e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.64e+04 |\n", "| AverageQ1Vals | -1.36e+03 |\n", "| StdQ1Vals | 377 |\n", "| MaxQ1Vals | -618 |\n", "| MinQ1Vals | -2.8e+03 |\n", "| AverageQ2Vals | -1.36e+03 |\n", "| StdQ2Vals | 377 |\n", "| MaxQ2Vals | -616 |\n", "| MinQ2Vals | -2.8e+03 |\n", "| LossPi | 1.33e+03 |\n", "| LossQ | 1.13e+04 |\n", "| Time | 111 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 17 |\n", "| AverageEpRet | -672 |\n", "| StdEpRet | 346 |\n", "| MaxEpRet | -57.8 |\n", "| MinEpRet | -1.29e+03 |\n", "| AverageTestEpRet | -934 |\n", "| StdTestEpRet | 706 |\n", "| MaxTestEpRet | -73.2 |\n", "| MinTestEpRet | -2.55e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.8e+04 |\n", "| AverageQ1Vals | -1.33e+03 |\n", "| StdQ1Vals | 383 |\n", "| MaxQ1Vals | -590 |\n", "| MinQ1Vals | -2.81e+03 |\n", "| AverageQ2Vals | -1.33e+03 |\n", "| StdQ2Vals | 383 |\n", "| MaxQ2Vals | -586 |\n", "| MinQ2Vals | -2.81e+03 |\n", "| LossPi | 1.3e+03 |\n", "| LossQ | 1.14e+04 |\n", "| Time | 119 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 18 |\n", "| AverageEpRet | -601 |\n", "| StdEpRet | 445 |\n", "| MaxEpRet | -96.3 |\n", "| MinEpRet | -1.76e+03 |\n", "| AverageTestEpRet | -512 |\n", "| StdTestEpRet | 349 |\n", "| MaxTestEpRet | -103 |\n", "| MinTestEpRet | -1.17e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.97e+04 |\n", "| AverageQ1Vals | -1.29e+03 |\n", "| StdQ1Vals | 390 |\n", "| MaxQ1Vals | -554 |\n", "| MinQ1Vals | -2.81e+03 |\n", "| AverageQ2Vals | -1.29e+03 |\n", "| StdQ2Vals | 390 |\n", "| MaxQ2Vals | -550 |\n", "| MinQ2Vals | -2.81e+03 |\n", "| LossPi | 1.26e+03 |\n", "| LossQ | 1.1e+04 |\n", "| Time | 126 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 19 |\n", "| AverageEpRet | -821 |\n", "| StdEpRet | 798 |\n", "| MaxEpRet | -104 |\n", "| MinEpRet | -3.3e+03 |\n", "| AverageTestEpRet | -750 |\n", "| StdTestEpRet | 447 |\n", "| MaxTestEpRet | -98.1 |\n", "| MinTestEpRet | -1.41e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.13e+04 |\n", "| AverageQ1Vals | -1.25e+03 |\n", "| StdQ1Vals | 391 |\n", "| MaxQ1Vals | -528 |\n", "| MinQ1Vals | -2.82e+03 |\n", "| AverageQ2Vals | -1.25e+03 |\n", "| StdQ2Vals | 391 |\n", "| MaxQ2Vals | -524 |\n", "| MinQ2Vals | -2.83e+03 |\n", "| LossPi | 1.22e+03 |\n", "| LossQ | 1.09e+04 |\n", "| Time | 133 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 20 |\n", "| AverageEpRet | -552 |\n", "| StdEpRet | 345 |\n", "| MaxEpRet | -45.9 |\n", "| MinEpRet | -1.39e+03 |\n", "| AverageTestEpRet | -561 |\n", "| StdTestEpRet | 313 |\n", "| MaxTestEpRet | -184 |\n", "| MinTestEpRet | -1.25e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+04 |\n", "| AverageQ1Vals | -1.21e+03 |\n", "| StdQ1Vals | 392 |\n", "| MaxQ1Vals | -492 |\n", "| MinQ1Vals | -2.82e+03 |\n", "| AverageQ2Vals | -1.21e+03 |\n", "| StdQ2Vals | 392 |\n", "| MaxQ2Vals | -488 |\n", "| MinQ2Vals | -2.82e+03 |\n", "| LossPi | 1.19e+03 |\n", "| LossQ | 1.07e+04 |\n", "| Time | 140 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 21 |\n", "| AverageEpRet | -645 |\n", "| StdEpRet | 498 |\n", "| MaxEpRet | -68.2 |\n", "| MinEpRet | -1.92e+03 |\n", "| AverageTestEpRet | -568 |\n", "| StdTestEpRet | 476 |\n", "| MaxTestEpRet | -56 |\n", "| MinTestEpRet | -1.65e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.46e+04 |\n", "| AverageQ1Vals | -1.17e+03 |\n", "| StdQ1Vals | 391 |\n", "| MaxQ1Vals | -459 |\n", "| MinQ1Vals | -2.82e+03 |\n", "| AverageQ2Vals | -1.17e+03 |\n", "| StdQ2Vals | 391 |\n", "| MaxQ2Vals | -454 |\n", "| MinQ2Vals | -2.82e+03 |\n", "| LossPi | 1.15e+03 |\n", "| LossQ | 9.97e+03 |\n", "| Time | 147 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 22 |\n", "| AverageEpRet | -745 |\n", "| StdEpRet | 377 |\n", "| MaxEpRet | -243 |\n", "| MinEpRet | -1.44e+03 |\n", "| AverageTestEpRet | -620 |\n", "| StdTestEpRet | 377 |\n", "| MaxTestEpRet | -229 |\n", "| MinTestEpRet | -1.35e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.63e+04 |\n", "| AverageQ1Vals | -1.13e+03 |\n", "| StdQ1Vals | 385 |\n", "| MaxQ1Vals | -431 |\n", "| MinQ1Vals | -2.76e+03 |\n", "| AverageQ2Vals | -1.13e+03 |\n", "| StdQ2Vals | 385 |\n", "| MaxQ2Vals | -429 |\n", "| MinQ2Vals | -2.76e+03 |\n", "| LossPi | 1.1e+03 |\n", "| LossQ | 9.81e+03 |\n", "| Time | 154 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 23 |\n", "| AverageEpRet | -728 |\n", "| StdEpRet | 715 |\n", "| MaxEpRet | -60.4 |\n", "| MinEpRet | -2.52e+03 |\n", "| AverageTestEpRet | -668 |\n", "| StdTestEpRet | 207 |\n", "| MaxTestEpRet | -395 |\n", "| MinTestEpRet | -1.08e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.79e+04 |\n", "| AverageQ1Vals | -1.08e+03 |\n", "| StdQ1Vals | 380 |\n", "| MaxQ1Vals | -402 |\n", "| MinQ1Vals | -2.73e+03 |\n", "| AverageQ2Vals | -1.08e+03 |\n", "| StdQ2Vals | 380 |\n", "| MaxQ2Vals | -399 |\n", "| MinQ2Vals | -2.73e+03 |\n", "| LossPi | 1.06e+03 |\n", "| LossQ | 9.24e+03 |\n", "| Time | 161 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 24 |\n", "| AverageEpRet | -647 |\n", "| StdEpRet | 344 |\n", "| MaxEpRet | -273 |\n", "| MinEpRet | -1.37e+03 |\n", "| AverageTestEpRet | -593 |\n", "| StdTestEpRet | 250 |\n", "| MaxTestEpRet | -235 |\n", "| MinTestEpRet | -912 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.96e+04 |\n", "| AverageQ1Vals | -1.05e+03 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | -376 |\n", "| MinQ1Vals | -2.69e+03 |\n", "| AverageQ2Vals | -1.05e+03 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | -373 |\n", "| MinQ2Vals | -2.7e+03 |\n", "| LossPi | 1.03e+03 |\n", "| LossQ | 8.66e+03 |\n", "| Time | 168 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 25 |\n", "| AverageEpRet | -590 |\n", "| StdEpRet | 436 |\n", "| MaxEpRet | -35 |\n", "| MinEpRet | -1.52e+03 |\n", "| AverageTestEpRet | -657 |\n", "| StdTestEpRet | 392 |\n", "| MaxTestEpRet | -53 |\n", "| MinTestEpRet | -1.2e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.12e+04 |\n", "| AverageQ1Vals | -1.02e+03 |\n", "| StdQ1Vals | 369 |\n", "| MaxQ1Vals | -354 |\n", "| MinQ1Vals | -2.67e+03 |\n", "| AverageQ2Vals | -1.02e+03 |\n", "| StdQ2Vals | 369 |\n", "| MaxQ2Vals | -350 |\n", "| MinQ2Vals | -2.67e+03 |\n", "| LossPi | 1e+03 |\n", "| LossQ | 7.87e+03 |\n", "| Time | 175 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 26 |\n", "| AverageEpRet | -561 |\n", "| StdEpRet | 335 |\n", "| MaxEpRet | -64.9 |\n", "| MinEpRet | -1.05e+03 |\n", "| AverageTestEpRet | -616 |\n", "| StdTestEpRet | 380 |\n", "| MaxTestEpRet | -60 |\n", "| MinTestEpRet | -1.47e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.29e+04 |\n", "| AverageQ1Vals | -986 |\n", "| StdQ1Vals | 366 |\n", "| MaxQ1Vals | -332 |\n", "| MinQ1Vals | -2.64e+03 |\n", "| AverageQ2Vals | -986 |\n", "| StdQ2Vals | 366 |\n", "| MaxQ2Vals | -329 |\n", "| MinQ2Vals | -2.63e+03 |\n", "| LossPi | 970 |\n", "| LossQ | 7.77e+03 |\n", "| Time | 182 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 27 |\n", "| AverageEpRet | -707 |\n", "| StdEpRet | 584 |\n", "| MaxEpRet | -68.3 |\n", "| MinEpRet | -2.21e+03 |\n", "| AverageTestEpRet | -549 |\n", "| StdTestEpRet | 231 |\n", "| MaxTestEpRet | -250 |\n", "| MinTestEpRet | -890 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.45e+04 |\n", "| AverageQ1Vals | -956 |\n", "| StdQ1Vals | 366 |\n", "| MaxQ1Vals | -291 |\n", "| MinQ1Vals | -2.6e+03 |\n", "| AverageQ2Vals | -956 |\n", "| StdQ2Vals | 366 |\n", "| MaxQ2Vals | -289 |\n", "| MinQ2Vals | -2.58e+03 |\n", "| LossPi | 938 |\n", "| LossQ | 7.26e+03 |\n", "| Time | 190 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 28 |\n", "| AverageEpRet | -578 |\n", "| StdEpRet | 269 |\n", "| MaxEpRet | -185 |\n", "| MinEpRet | -974 |\n", "| AverageTestEpRet | -492 |\n", "| StdTestEpRet | 539 |\n", "| MaxTestEpRet | -109 |\n", "| MinTestEpRet | -1.82e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.62e+04 |\n", "| AverageQ1Vals | -929 |\n", "| StdQ1Vals | 363 |\n", "| MaxQ1Vals | -272 |\n", "| MinQ1Vals | -2.55e+03 |\n", "| AverageQ2Vals | -929 |\n", "| StdQ2Vals | 363 |\n", "| MaxQ2Vals | -271 |\n", "| MinQ2Vals | -2.55e+03 |\n", "| LossPi | 912 |\n", "| LossQ | 7.08e+03 |\n", "| Time | 197 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 29 |\n", "| AverageEpRet | -880 |\n", "| StdEpRet | 645 |\n", "| MaxEpRet | -129 |\n", "| MinEpRet | -2.28e+03 |\n", "| AverageTestEpRet | -948 |\n", "| StdTestEpRet | 639 |\n", "| MaxTestEpRet | -141 |\n", "| MinTestEpRet | -2.43e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.78e+04 |\n", "| AverageQ1Vals | -903 |\n", "| StdQ1Vals | 358 |\n", "| MaxQ1Vals | -255 |\n", "| MinQ1Vals | -2.5e+03 |\n", "| AverageQ2Vals | -903 |\n", "| StdQ2Vals | 358 |\n", "| MaxQ2Vals | -252 |\n", "| MinQ2Vals | -2.49e+03 |\n", "| LossPi | 886 |\n", "| LossQ | 6.79e+03 |\n", "| Time | 204 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 30 |\n", "| AverageEpRet | -519 |\n", "| StdEpRet | 337 |\n", "| MaxEpRet | -102 |\n", "| MinEpRet | -1.11e+03 |\n", "| AverageTestEpRet | -582 |\n", "| StdTestEpRet | 416 |\n", "| MaxTestEpRet | -164 |\n", "| MinTestEpRet | -1.6e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+04 |\n", "| AverageQ1Vals | -876 |\n", "| StdQ1Vals | 353 |\n", "| MaxQ1Vals | -240 |\n", "| MinQ1Vals | -2.47e+03 |\n", "| AverageQ2Vals | -876 |\n", "| StdQ2Vals | 353 |\n", "| MaxQ2Vals | -237 |\n", "| MinQ2Vals | -2.46e+03 |\n", "| LossPi | 862 |\n", "| LossQ | 6.44e+03 |\n", "| Time | 211 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 31 |\n", "| AverageEpRet | -795 |\n", "| StdEpRet | 608 |\n", "| MaxEpRet | -92.9 |\n", "| MinEpRet | -2.52e+03 |\n", "| AverageTestEpRet | -603 |\n", "| StdTestEpRet | 536 |\n", "| MaxTestEpRet | -57 |\n", "| MinTestEpRet | -1.45e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.11e+04 |\n", "| AverageQ1Vals | -853 |\n", "| StdQ1Vals | 348 |\n", "| MaxQ1Vals | -226 |\n", "| MinQ1Vals | -2.45e+03 |\n", "| AverageQ2Vals | -853 |\n", "| StdQ2Vals | 348 |\n", "| MaxQ2Vals | -224 |\n", "| MinQ2Vals | -2.44e+03 |\n", "| LossPi | 839 |\n", "| LossQ | 6.08e+03 |\n", "| Time | 219 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 32 |\n", "| AverageEpRet | -747 |\n", "| StdEpRet | 487 |\n", "| MaxEpRet | -114 |\n", "| MinEpRet | -2.01e+03 |\n", "| AverageTestEpRet | -716 |\n", "| StdTestEpRet | 461 |\n", "| MaxTestEpRet | -122 |\n", "| MinTestEpRet | -1.54e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.28e+04 |\n", "| AverageQ1Vals | -832 |\n", "| StdQ1Vals | 349 |\n", "| MaxQ1Vals | -213 |\n", "| MinQ1Vals | -2.41e+03 |\n", "| AverageQ2Vals | -832 |\n", "| StdQ2Vals | 349 |\n", "| MaxQ2Vals | -211 |\n", "| MinQ2Vals | -2.4e+03 |\n", "| LossPi | 817 |\n", "| LossQ | 5.67e+03 |\n", "| Time | 228 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 33 |\n", "| AverageEpRet | -647 |\n", "| StdEpRet | 437 |\n", "| MaxEpRet | -161 |\n", "| MinEpRet | -1.8e+03 |\n", "| AverageTestEpRet | -1.04e+03 |\n", "| StdTestEpRet | 840 |\n", "| MaxTestEpRet | -173 |\n", "| MinTestEpRet | -2.67e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.44e+04 |\n", "| AverageQ1Vals | -812 |\n", "| StdQ1Vals | 345 |\n", "| MaxQ1Vals | -202 |\n", "| MinQ1Vals | -2.37e+03 |\n", "| AverageQ2Vals | -812 |\n", "| StdQ2Vals | 345 |\n", "| MaxQ2Vals | -200 |\n", "| MinQ2Vals | -2.37e+03 |\n", "| LossPi | 799 |\n", "| LossQ | 5.67e+03 |\n", "| Time | 236 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 34 |\n", "| AverageEpRet | -537 |\n", "| StdEpRet | 471 |\n", "| MaxEpRet | -27.3 |\n", "| MinEpRet | -1.51e+03 |\n", "| AverageTestEpRet | -706 |\n", "| StdTestEpRet | 465 |\n", "| MaxTestEpRet | -49.4 |\n", "| MinTestEpRet | -1.7e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.61e+04 |\n", "| AverageQ1Vals | -795 |\n", "| StdQ1Vals | 343 |\n", "| MaxQ1Vals | -188 |\n", "| MinQ1Vals | -2.36e+03 |\n", "| AverageQ2Vals | -795 |\n", "| StdQ2Vals | 343 |\n", "| MaxQ2Vals | -188 |\n", "| MinQ2Vals | -2.36e+03 |\n", "| LossPi | 781 |\n", "| LossQ | 5.36e+03 |\n", "| Time | 245 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 35 |\n", "| AverageEpRet | -740 |\n", "| StdEpRet | 327 |\n", "| MaxEpRet | -118 |\n", "| MinEpRet | -1.4e+03 |\n", "| AverageTestEpRet | -1.04e+03 |\n", "| StdTestEpRet | 500 |\n", "| MaxTestEpRet | -292 |\n", "| MinTestEpRet | -1.88e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.77e+04 |\n", "| AverageQ1Vals | -776 |\n", "| StdQ1Vals | 342 |\n", "| MaxQ1Vals | -176 |\n", "| MinQ1Vals | -2.37e+03 |\n", "| AverageQ2Vals | -776 |\n", "| StdQ2Vals | 342 |\n", "| MaxQ2Vals | -174 |\n", "| MinQ2Vals | -2.36e+03 |\n", "| LossPi | 764 |\n", "| LossQ | 5.54e+03 |\n", "| Time | 253 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 36 |\n", "| AverageEpRet | -780 |\n", "| StdEpRet | 692 |\n", "| MaxEpRet | -127 |\n", "| MinEpRet | -2.49e+03 |\n", "| AverageTestEpRet | -687 |\n", "| StdTestEpRet | 503 |\n", "| MaxTestEpRet | -95.5 |\n", "| MinTestEpRet | -1.82e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.94e+04 |\n", "| AverageQ1Vals | -758 |\n", "| StdQ1Vals | 341 |\n", "| MaxQ1Vals | -163 |\n", "| MinQ1Vals | -2.33e+03 |\n", "| AverageQ2Vals | -758 |\n", "| StdQ2Vals | 341 |\n", "| MaxQ2Vals | -161 |\n", "| MinQ2Vals | -2.33e+03 |\n", "| LossPi | 746 |\n", "| LossQ | 5.23e+03 |\n", "| Time | 262 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 37 |\n", "| AverageEpRet | -827 |\n", "| StdEpRet | 579 |\n", "| MaxEpRet | -118 |\n", "| MinEpRet | -2.64e+03 |\n", "| AverageTestEpRet | -506 |\n", "| StdTestEpRet | 304 |\n", "| MaxTestEpRet | -75.5 |\n", "| MinTestEpRet | -1.13e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.1e+04 |\n", "| AverageQ1Vals | -743 |\n", "| StdQ1Vals | 342 |\n", "| MaxQ1Vals | -153 |\n", "| MinQ1Vals | -2.34e+03 |\n", "| AverageQ2Vals | -743 |\n", "| StdQ2Vals | 342 |\n", "| MaxQ2Vals | -151 |\n", "| MinQ2Vals | -2.33e+03 |\n", "| LossPi | 730 |\n", "| LossQ | 5.12e+03 |\n", "| Time | 269 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 38 |\n", "| AverageEpRet | -698 |\n", "| StdEpRet | 347 |\n", "| MaxEpRet | -133 |\n", "| MinEpRet | -1.43e+03 |\n", "| AverageTestEpRet | -669 |\n", "| StdTestEpRet | 430 |\n", "| MaxTestEpRet | -158 |\n", "| MinTestEpRet | -1.72e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.27e+04 |\n", "| AverageQ1Vals | -729 |\n", "| StdQ1Vals | 340 |\n", "| MaxQ1Vals | -142 |\n", "| MinQ1Vals | -2.33e+03 |\n", "| AverageQ2Vals | -729 |\n", "| StdQ2Vals | 340 |\n", "| MaxQ2Vals | -140 |\n", "| MinQ2Vals | -2.33e+03 |\n", "| LossPi | 717 |\n", "| LossQ | 5.1e+03 |\n", "| Time | 276 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 39 |\n", "| AverageEpRet | -764 |\n", "| StdEpRet | 402 |\n", "| MaxEpRet | -106 |\n", "| MinEpRet | -1.76e+03 |\n", "| AverageTestEpRet | -524 |\n", "| StdTestEpRet | 467 |\n", "| MaxTestEpRet | -86.4 |\n", "| MinTestEpRet | -1.58e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.43e+04 |\n", "| AverageQ1Vals | -711 |\n", "| StdQ1Vals | 336 |\n", "| MaxQ1Vals | -131 |\n", "| MinQ1Vals | -2.32e+03 |\n", "| AverageQ2Vals | -711 |\n", "| StdQ2Vals | 336 |\n", "| MaxQ2Vals | -127 |\n", "| MinQ2Vals | -2.33e+03 |\n", "| LossPi | 700 |\n", "| LossQ | 4.89e+03 |\n", "| Time | 283 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 40 |\n", "| AverageEpRet | -1.01e+03 |\n", "| StdEpRet | 525 |\n", "| MaxEpRet | -64.4 |\n", "| MinEpRet | -1.81e+03 |\n", "| AverageTestEpRet | -1.19e+03 |\n", "| StdTestEpRet | 794 |\n", "| MaxTestEpRet | -118 |\n", "| MinTestEpRet | -2.76e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+04 |\n", "| AverageQ1Vals | -695 |\n", "| StdQ1Vals | 335 |\n", "| MaxQ1Vals | -122 |\n", "| MinQ1Vals | -2.31e+03 |\n", "| AverageQ2Vals | -695 |\n", "| StdQ2Vals | 335 |\n", "| MaxQ2Vals | -118 |\n", "| MinQ2Vals | -2.31e+03 |\n", "| LossPi | 682 |\n", "| LossQ | 4.8e+03 |\n", "| Time | 291 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 41 |\n", "| AverageEpRet | -1.06e+03 |\n", "| StdEpRet | 904 |\n", "| MaxEpRet | -31.9 |\n", "| MinEpRet | -3.02e+03 |\n", "| AverageTestEpRet | -1.22e+03 |\n", "| StdTestEpRet | 1.04e+03 |\n", "| MaxTestEpRet | -110 |\n", "| MinTestEpRet | -2.79e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.76e+04 |\n", "| AverageQ1Vals | -677 |\n", "| StdQ1Vals | 329 |\n", "| MaxQ1Vals | -114 |\n", "| MinQ1Vals | -2.29e+03 |\n", "| AverageQ2Vals | -678 |\n", "| StdQ2Vals | 329 |\n", "| MaxQ2Vals | -111 |\n", "| MinQ2Vals | -2.29e+03 |\n", "| LossPi | 665 |\n", "| LossQ | 4.41e+03 |\n", "| Time | 297 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 42 |\n", "| AverageEpRet | -819 |\n", "| StdEpRet | 826 |\n", "| MaxEpRet | -42 |\n", "| MinEpRet | -3.15e+03 |\n", "| AverageTestEpRet | -867 |\n", "| StdTestEpRet | 920 |\n", "| MaxTestEpRet | -142 |\n", "| MinTestEpRet | -3.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.93e+04 |\n", "| AverageQ1Vals | -665 |\n", "| StdQ1Vals | 329 |\n", "| MaxQ1Vals | -107 |\n", "| MinQ1Vals | -2.27e+03 |\n", "| AverageQ2Vals | -665 |\n", "| StdQ2Vals | 329 |\n", "| MaxQ2Vals | -107 |\n", "| MinQ2Vals | -2.27e+03 |\n", "| LossPi | 652 |\n", "| LossQ | 4.24e+03 |\n", "| Time | 304 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 43 |\n", "| AverageEpRet | -1.09e+03 |\n", "| StdEpRet | 1.06e+03 |\n", "| MaxEpRet | -127 |\n", "| MinEpRet | -3.68e+03 |\n", "| AverageTestEpRet | -569 |\n", "| StdTestEpRet | 310 |\n", "| MaxTestEpRet | -101 |\n", "| MinTestEpRet | -1.02e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.09e+04 |\n", "| AverageQ1Vals | -651 |\n", "| StdQ1Vals | 325 |\n", "| MaxQ1Vals | -99.9 |\n", "| MinQ1Vals | -2.24e+03 |\n", "| AverageQ2Vals | -651 |\n", "| StdQ2Vals | 325 |\n", "| MaxQ2Vals | -99.7 |\n", "| MinQ2Vals | -2.24e+03 |\n", "| LossPi | 640 |\n", "| LossQ | 4.25e+03 |\n", "| Time | 312 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 44 |\n", "| AverageEpRet | -653 |\n", "| StdEpRet | 479 |\n", "| MaxEpRet | -116 |\n", "| MinEpRet | -1.77e+03 |\n", "| AverageTestEpRet | -621 |\n", "| StdTestEpRet | 325 |\n", "| MaxTestEpRet | -208 |\n", "| MinTestEpRet | -1.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.26e+04 |\n", "| AverageQ1Vals | -634 |\n", "| StdQ1Vals | 321 |\n", "| MaxQ1Vals | -90.1 |\n", "| MinQ1Vals | -2.19e+03 |\n", "| AverageQ2Vals | -634 |\n", "| StdQ2Vals | 321 |\n", "| MaxQ2Vals | -89.6 |\n", "| MinQ2Vals | -2.2e+03 |\n", "| LossPi | 622 |\n", "| LossQ | 4.01e+03 |\n", "| Time | 319 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 45 |\n", "| AverageEpRet | -536 |\n", "| StdEpRet | 377 |\n", "| MaxEpRet | -68.4 |\n", "| MinEpRet | -1.6e+03 |\n", "| AverageTestEpRet | -538 |\n", "| StdTestEpRet | 798 |\n", "| MaxTestEpRet | -125 |\n", "| MinTestEpRet | -2.88e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.42e+04 |\n", "| AverageQ1Vals | -623 |\n", "| StdQ1Vals | 318 |\n", "| MaxQ1Vals | -84.1 |\n", "| MinQ1Vals | -2.16e+03 |\n", "| AverageQ2Vals | -623 |\n", "| StdQ2Vals | 318 |\n", "| MaxQ2Vals | -84.6 |\n", "| MinQ2Vals | -2.16e+03 |\n", "| LossPi | 612 |\n", "| LossQ | 4.07e+03 |\n", "| Time | 326 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 46 |\n", "| AverageEpRet | -792 |\n", "| StdEpRet | 688 |\n", "| MaxEpRet | -142 |\n", "| MinEpRet | -2.73e+03 |\n", "| AverageTestEpRet | -984 |\n", "| StdTestEpRet | 780 |\n", "| MaxTestEpRet | -122 |\n", "| MinTestEpRet | -3.17e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.59e+04 |\n", "| AverageQ1Vals | -609 |\n", "| StdQ1Vals | 316 |\n", "| MaxQ1Vals | -78.5 |\n", "| MinQ1Vals | -2.17e+03 |\n", "| AverageQ2Vals | -609 |\n", "| StdQ2Vals | 316 |\n", "| MaxQ2Vals | -78.3 |\n", "| MinQ2Vals | -2.18e+03 |\n", "| LossPi | 599 |\n", "| LossQ | 3.7e+03 |\n", "| Time | 334 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 47 |\n", "| AverageEpRet | -482 |\n", "| StdEpRet | 323 |\n", "| MaxEpRet | -23.8 |\n", "| MinEpRet | -1.22e+03 |\n", "| AverageTestEpRet | -639 |\n", "| StdTestEpRet | 259 |\n", "| MaxTestEpRet | -240 |\n", "| MinTestEpRet | -1.1e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.75e+04 |\n", "| AverageQ1Vals | -598 |\n", "| StdQ1Vals | 315 |\n", "| MaxQ1Vals | -72 |\n", "| MinQ1Vals | -2.15e+03 |\n", "| AverageQ2Vals | -598 |\n", "| StdQ2Vals | 315 |\n", "| MaxQ2Vals | -71.5 |\n", "| MinQ2Vals | -2.15e+03 |\n", "| LossPi | 588 |\n", "| LossQ | 3.78e+03 |\n", "| Time | 343 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 48 |\n", "| AverageEpRet | -643 |\n", "| StdEpRet | 359 |\n", "| MaxEpRet | -203 |\n", "| MinEpRet | -1.37e+03 |\n", "| AverageTestEpRet | -555 |\n", "| StdTestEpRet | 386 |\n", "| MaxTestEpRet | -69.4 |\n", "| MinTestEpRet | -1.13e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.92e+04 |\n", "| AverageQ1Vals | -584 |\n", "| StdQ1Vals | 313 |\n", "| MaxQ1Vals | -66.4 |\n", "| MinQ1Vals | -2.17e+03 |\n", "| AverageQ2Vals | -584 |\n", "| StdQ2Vals | 313 |\n", "| MaxQ2Vals | -67.5 |\n", "| MinQ2Vals | -2.16e+03 |\n", "| LossPi | 573 |\n", "| LossQ | 3.51e+03 |\n", "| Time | 351 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 49 |\n", "| AverageEpRet | -1.32e+03 |\n", "| StdEpRet | 922 |\n", "| MaxEpRet | -167 |\n", "| MinEpRet | -3.26e+03 |\n", "| AverageTestEpRet | -611 |\n", "| StdTestEpRet | 324 |\n", "| MaxTestEpRet | -167 |\n", "| MinTestEpRet | -1.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.08e+04 |\n", "| AverageQ1Vals | -575 |\n", "| StdQ1Vals | 314 |\n", "| MaxQ1Vals | -63.3 |\n", "| MinQ1Vals | -2.17e+03 |\n", "| AverageQ2Vals | -575 |\n", "| StdQ2Vals | 314 |\n", "| MaxQ2Vals | -62.4 |\n", "| MinQ2Vals | -2.16e+03 |\n", "| LossPi | 564 |\n", "| LossQ | 3.58e+03 |\n", "| Time | 359 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 50 |\n", "| AverageEpRet | -582 |\n", "| StdEpRet | 399 |\n", "| MaxEpRet | -45.7 |\n", "| MinEpRet | -1.57e+03 |\n", "| AverageTestEpRet | -806 |\n", "| StdTestEpRet | 396 |\n", "| MaxTestEpRet | -275 |\n", "| MinTestEpRet | -1.73e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+04 |\n", "| AverageQ1Vals | -564 |\n", "| StdQ1Vals | 312 |\n", "| MaxQ1Vals | -59.5 |\n", "| MinQ1Vals | -2.15e+03 |\n", "| AverageQ2Vals | -564 |\n", "| StdQ2Vals | 312 |\n", "| MaxQ2Vals | -58.3 |\n", "| MinQ2Vals | -2.14e+03 |\n", "| LossPi | 553 |\n", "| LossQ | 3.35e+03 |\n", "| Time | 368 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 51 |\n", "| AverageEpRet | -741 |\n", "| StdEpRet | 669 |\n", "| MaxEpRet | -116 |\n", "| MinEpRet | -2.95e+03 |\n", "| AverageTestEpRet | -519 |\n", "| StdTestEpRet | 287 |\n", "| MaxTestEpRet | -95.1 |\n", "| MinTestEpRet | -1.07e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.41e+04 |\n", "| AverageQ1Vals | -554 |\n", "| StdQ1Vals | 312 |\n", "| MaxQ1Vals | -55.5 |\n", "| MinQ1Vals | -2.11e+03 |\n", "| AverageQ2Vals | -554 |\n", "| StdQ2Vals | 312 |\n", "| MaxQ2Vals | -56.9 |\n", "| MinQ2Vals | -2.1e+03 |\n", "| LossPi | 544 |\n", "| LossQ | 3.44e+03 |\n", "| Time | 375 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 52 |\n", "| AverageEpRet | -850 |\n", "| StdEpRet | 673 |\n", "| MaxEpRet | -37.8 |\n", "| MinEpRet | -2.11e+03 |\n", "| AverageTestEpRet | -460 |\n", "| StdTestEpRet | 356 |\n", "| MaxTestEpRet | -16.4 |\n", "| MinTestEpRet | -1.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.58e+04 |\n", "| AverageQ1Vals | -545 |\n", "| StdQ1Vals | 312 |\n", "| MaxQ1Vals | -54.5 |\n", "| MinQ1Vals | -2.12e+03 |\n", "| AverageQ2Vals | -545 |\n", "| StdQ2Vals | 312 |\n", "| MaxQ2Vals | -55.1 |\n", "| MinQ2Vals | -2.11e+03 |\n", "| LossPi | 535 |\n", "| LossQ | 3.33e+03 |\n", "| Time | 382 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 53 |\n", "| AverageEpRet | -864 |\n", "| StdEpRet | 650 |\n", "| MaxEpRet | -170 |\n", "| MinEpRet | -2.74e+03 |\n", "| AverageTestEpRet | -273 |\n", "| StdTestEpRet | 190 |\n", "| MaxTestEpRet | -16.7 |\n", "| MinTestEpRet | -645 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.74e+04 |\n", "| AverageQ1Vals | -536 |\n", "| StdQ1Vals | 311 |\n", "| MaxQ1Vals | -49.8 |\n", "| MinQ1Vals | -2.13e+03 |\n", "| AverageQ2Vals | -536 |\n", "| StdQ2Vals | 311 |\n", "| MaxQ2Vals | -51.8 |\n", "| MinQ2Vals | -2.11e+03 |\n", "| LossPi | 526 |\n", "| LossQ | 3.56e+03 |\n", "| Time | 390 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 54 |\n", "| AverageEpRet | -781 |\n", "| StdEpRet | 366 |\n", "| MaxEpRet | -62.3 |\n", "| MinEpRet | -1.6e+03 |\n", "| AverageTestEpRet | -550 |\n", "| StdTestEpRet | 425 |\n", "| MaxTestEpRet | -58.6 |\n", "| MinTestEpRet | -1.35e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.91e+04 |\n", "| AverageQ1Vals | -529 |\n", "| StdQ1Vals | 312 |\n", "| MaxQ1Vals | -46.7 |\n", "| MinQ1Vals | -2.14e+03 |\n", "| AverageQ2Vals | -529 |\n", "| StdQ2Vals | 312 |\n", "| MaxQ2Vals | -48 |\n", "| MinQ2Vals | -2.13e+03 |\n", "| LossPi | 517 |\n", "| LossQ | 3.48e+03 |\n", "| Time | 397 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 55 |\n", "| AverageEpRet | -879 |\n", "| StdEpRet | 634 |\n", "| MaxEpRet | -84.6 |\n", "| MinEpRet | -2.26e+03 |\n", "| AverageTestEpRet | -541 |\n", "| StdTestEpRet | 369 |\n", "| MaxTestEpRet | -179 |\n", "| MinTestEpRet | -1.46e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.07e+04 |\n", "| AverageQ1Vals | -518 |\n", "| StdQ1Vals | 309 |\n", "| MaxQ1Vals | -43.9 |\n", "| MinQ1Vals | -2.13e+03 |\n", "| AverageQ2Vals | -518 |\n", "| StdQ2Vals | 309 |\n", "| MaxQ2Vals | -45.3 |\n", "| MinQ2Vals | -2.12e+03 |\n", "| LossPi | 508 |\n", "| LossQ | 3.3e+03 |\n", "| Time | 404 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 56 |\n", "| AverageEpRet | -559 |\n", "| StdEpRet | 428 |\n", "| MaxEpRet | -15.6 |\n", "| MinEpRet | -1.52e+03 |\n", "| AverageTestEpRet | -798 |\n", "| StdTestEpRet | 490 |\n", "| MaxTestEpRet | -86.6 |\n", "| MinTestEpRet | -1.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.24e+04 |\n", "| AverageQ1Vals | -508 |\n", "| StdQ1Vals | 310 |\n", "| MaxQ1Vals | -40.2 |\n", "| MinQ1Vals | -2.09e+03 |\n", "| AverageQ2Vals | -508 |\n", "| StdQ2Vals | 310 |\n", "| MaxQ2Vals | -40.1 |\n", "| MinQ2Vals | -2.07e+03 |\n", "| LossPi | 499 |\n", "| LossQ | 3.33e+03 |\n", "| Time | 411 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 57 |\n", "| AverageEpRet | -637 |\n", "| StdEpRet | 543 |\n", "| MaxEpRet | -90 |\n", "| MinEpRet | -2.3e+03 |\n", "| AverageTestEpRet | -451 |\n", "| StdTestEpRet | 194 |\n", "| MaxTestEpRet | -179 |\n", "| MinTestEpRet | -806 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.4e+04 |\n", "| AverageQ1Vals | -498 |\n", "| StdQ1Vals | 310 |\n", "| MaxQ1Vals | -36.7 |\n", "| MinQ1Vals | -2.15e+03 |\n", "| AverageQ2Vals | -498 |\n", "| StdQ2Vals | 310 |\n", "| MaxQ2Vals | -39.2 |\n", "| MinQ2Vals | -2.13e+03 |\n", "| LossPi | 489 |\n", "| LossQ | 3.11e+03 |\n", "| Time | 418 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 58 |\n", "| AverageEpRet | -755 |\n", "| StdEpRet | 567 |\n", "| MaxEpRet | -111 |\n", "| MinEpRet | -2.44e+03 |\n", "| AverageTestEpRet | -867 |\n", "| StdTestEpRet | 562 |\n", "| MaxTestEpRet | -146 |\n", "| MinTestEpRet | -2.25e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.57e+04 |\n", "| AverageQ1Vals | -490 |\n", "| StdQ1Vals | 310 |\n", "| MaxQ1Vals | -31.7 |\n", "| MinQ1Vals | -2.13e+03 |\n", "| AverageQ2Vals | -490 |\n", "| StdQ2Vals | 310 |\n", "| MaxQ2Vals | -33.3 |\n", "| MinQ2Vals | -2.12e+03 |\n", "| LossPi | 480 |\n", "| LossQ | 3.21e+03 |\n", "| Time | 425 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 59 |\n", "| AverageEpRet | -680 |\n", "| StdEpRet | 388 |\n", "| MaxEpRet | -41 |\n", "| MinEpRet | -1.68e+03 |\n", "| AverageTestEpRet | -816 |\n", "| StdTestEpRet | 498 |\n", "| MaxTestEpRet | -207 |\n", "| MinTestEpRet | -1.77e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.73e+04 |\n", "| AverageQ1Vals | -479 |\n", "| StdQ1Vals | 309 |\n", "| MaxQ1Vals | -27.2 |\n", "| MinQ1Vals | -2.1e+03 |\n", "| AverageQ2Vals | -479 |\n", "| StdQ2Vals | 309 |\n", "| MaxQ2Vals | -29.3 |\n", "| MinQ2Vals | -2.09e+03 |\n", "| LossPi | 470 |\n", "| LossQ | 2.99e+03 |\n", "| Time | 433 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 60 |\n", "| AverageEpRet | -850 |\n", "| StdEpRet | 578 |\n", "| MaxEpRet | -71.3 |\n", "| MinEpRet | -2.19e+03 |\n", "| AverageTestEpRet | -833 |\n", "| StdTestEpRet | 631 |\n", "| MaxTestEpRet | -192 |\n", "| MinTestEpRet | -2.43e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+04 |\n", "| AverageQ1Vals | -471 |\n", "| StdQ1Vals | 310 |\n", "| MaxQ1Vals | -24 |\n", "| MinQ1Vals | -2.05e+03 |\n", "| AverageQ2Vals | -471 |\n", "| StdQ2Vals | 310 |\n", "| MaxQ2Vals | -25.7 |\n", "| MinQ2Vals | -2.04e+03 |\n", "| LossPi | 462 |\n", "| LossQ | 3.06e+03 |\n", "| Time | 440 |\n", "---------------------------------------\n" ] } ], "source": [ "# Setup baseline 0\n", "logger_kwargs = dict(output_dir='td3_b0', exp_name='baseline')\n", "seed_b = 0\n", "epochs_b = 60\n", "maxeplen_b = 110\n", "\n", "spe_b = maxeplen_b * 15\n", "repsize_b = 1000000\n", "gamma_b = 0.99\n", "polyak_b = 0.995\n", "batchsize_b = 100\n", "startsteps_b = 10000\n", "args_b = dict(hidden_sizes=[300,], activation=torch.nn.ReLU)\n", "actnoise_b = 0.1\n", "pilr_b = 0.001\n", "qlr_b = 0.001\n", "\n", "# TD3 specific params\n", "pd_b = 2\n", "targnoise_b = 0.2\n", "noiseclip_b = 0.5\n", "\n", "\n", "# Baseline 0 training\n", "spinup.td3_pytorch(GyroscopeEnv, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n", "polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, act_noise = actnoise_b, pi_lr = pilr_b, q_lr = qlr_b, policy_delay = pd_b, target_noise = targnoise_b, noise_clip = noiseclip_b)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[32;1mLogging data to td3_b1/progress.txt\u001b[0m\n", "\u001b[36;1mSaving config:\n", "\u001b[0m\n", "{\n", " \"ac_kwargs\":\t{\n", " \"activation\":\t\"ReLU\",\n", " \"hidden_sizes\":\t[\n", " 300\n", " ]\n", " },\n", " \"act_noise\":\t0.1,\n", " \"actor_critic\":\t\"MLPActorCritic\",\n", " \"batch_size\":\t100,\n", " \"env_fn\":\t\"GyroscopeEnv\",\n", " \"epochs\":\t60,\n", " \"exp_name\":\t\"baseline\",\n", " \"gamma\":\t0.99,\n", " \"logger\":\t{\n", " \"\":\t{\n", " \"epoch_dict\":\t{},\n", " \"exp_name\":\t\"baseline\",\n", " \"first_row\":\ttrue,\n", " \"log_current_row\":\t{},\n", " \"log_headers\":\t[],\n", " \"output_dir\":\t\"td3_b1\",\n", " \"output_file\":\t{\n", " \"<_io.TextIOWrapper name='td3_b1/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", " \"mode\":\t\"w\"\n", " }\n", " }\n", " }\n", " },\n", " \"logger_kwargs\":\t{\n", " \"exp_name\":\t\"baseline\",\n", " \"output_dir\":\t\"td3_b1\"\n", " },\n", " \"max_ep_len\":\t110,\n", " \"noise_clip\":\t0.1,\n", " \"num_test_episodes\":\t10,\n", " \"pi_lr\":\t0.001,\n", " \"policy_delay\":\t2,\n", " \"polyak\":\t0.995,\n", " \"q_lr\":\t0.001,\n", " \"replay_size\":\t1000000,\n", " \"save_freq\":\t1,\n", " \"seed\":\t0,\n", " \"start_steps\":\t10000,\n", " \"steps_per_epoch\":\t1650,\n", " \"target_noise\":\t0.2,\n", " \"update_after\":\t1000,\n", " \"update_every\":\t50\n", "}\n", "\u001b[32;1m\n", "Number of parameters: \t pi: 3002, \t q1: 3301, \t q2: 3301\n", "\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/matthieulc/.local/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: Box bound precision lowered by casting to float32\u001b[0m\n", " warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 1 |\n", "| AverageEpRet | -6.82e+03 |\n", "| StdEpRet | 1.43e+03 |\n", "| MaxEpRet | -4.34e+03 |\n", "| MinEpRet | -8.99e+03 |\n", "| AverageTestEpRet | -6.48e+03 |\n", "| StdTestEpRet | 1.38e+03 |\n", "| MaxTestEpRet | -4.35e+03 |\n", "| MinTestEpRet | -9.09e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+03 |\n", "| AverageQ1Vals | -82.7 |\n", "| StdQ1Vals | 41 |\n", "| MaxQ1Vals | 3.29 |\n", "| MinQ1Vals | -226 |\n", "| AverageQ2Vals | -82.5 |\n", "| StdQ2Vals | 41.1 |\n", "| MaxQ2Vals | 3.35 |\n", "| MinQ2Vals | -224 |\n", "| LossPi | 75.4 |\n", "| LossQ | 3.05e+03 |\n", "| Time | 4.06 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 2 |\n", "| AverageEpRet | -7.02e+03 |\n", "| StdEpRet | 1.08e+03 |\n", "| MaxEpRet | -5.85e+03 |\n", "| MinEpRet | -9.03e+03 |\n", "| AverageTestEpRet | -6.81e+03 |\n", "| StdTestEpRet | 2.1e+03 |\n", "| MaxTestEpRet | -3.98e+03 |\n", "| MinTestEpRet | -1.13e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+03 |\n", "| AverageQ1Vals | -214 |\n", "| StdQ1Vals | 78.3 |\n", "| MaxQ1Vals | -30.3 |\n", "| MinQ1Vals | -550 |\n", "| AverageQ2Vals | -214 |\n", "| StdQ2Vals | 78.3 |\n", "| MaxQ2Vals | -31.5 |\n", "| MinQ2Vals | -553 |\n", "| LossPi | 202 |\n", "| LossQ | 2.37e+03 |\n", "| Time | 11.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 3 |\n", "| AverageEpRet | -6.6e+03 |\n", "| StdEpRet | 1.5e+03 |\n", "| MaxEpRet | -4.28e+03 |\n", "| MinEpRet | -9.77e+03 |\n", "| AverageTestEpRet | -7.33e+03 |\n", "| StdTestEpRet | 2.78e+03 |\n", "| MaxTestEpRet | -3.04e+03 |\n", "| MinTestEpRet | -1.16e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+03 |\n", "| AverageQ1Vals | -396 |\n", "| StdQ1Vals | 115 |\n", "| MaxQ1Vals | -108 |\n", "| MinQ1Vals | -920 |\n", "| AverageQ2Vals | -396 |\n", "| StdQ2Vals | 115 |\n", "| MaxQ2Vals | -106 |\n", "| MinQ2Vals | -917 |\n", "| LossPi | 383 |\n", "| LossQ | 3.04e+03 |\n", "| Time | 18.2 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 4 |\n", "| AverageEpRet | -7.13e+03 |\n", "| StdEpRet | 1.2e+03 |\n", "| MaxEpRet | -5.4e+03 |\n", "| MinEpRet | -8.81e+03 |\n", "| AverageTestEpRet | -3.67e+03 |\n", "| StdTestEpRet | 1.76e+03 |\n", "| MaxTestEpRet | -1.37e+03 |\n", "| MinTestEpRet | -6.98e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+03 |\n", "| AverageQ1Vals | -568 |\n", "| StdQ1Vals | 151 |\n", "| MaxQ1Vals | -186 |\n", "| MinQ1Vals | -1.23e+03 |\n", "| AverageQ2Vals | -568 |\n", "| StdQ2Vals | 151 |\n", "| MaxQ2Vals | -181 |\n", "| MinQ2Vals | -1.22e+03 |\n", "| LossPi | 552 |\n", "| LossQ | 4.76e+03 |\n", "| Time | 25.2 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 5 |\n", "| AverageEpRet | -6.6e+03 |\n", "| StdEpRet | 1.3e+03 |\n", "| MaxEpRet | -4.92e+03 |\n", "| MinEpRet | -9.9e+03 |\n", "| AverageTestEpRet | -3.16e+03 |\n", "| StdTestEpRet | 1.9e+03 |\n", "| MaxTestEpRet | -1.1e+03 |\n", "| MinTestEpRet | -6.75e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+03 |\n", "| AverageQ1Vals | -727 |\n", "| StdQ1Vals | 178 |\n", "| MaxQ1Vals | -270 |\n", "| MinQ1Vals | -1.47e+03 |\n", "| AverageQ2Vals | -727 |\n", "| StdQ2Vals | 178 |\n", "| MaxQ2Vals | -265 |\n", "| MinQ2Vals | -1.47e+03 |\n", "| LossPi | 708 |\n", "| LossQ | 6.82e+03 |\n", "| Time | 32.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 6 |\n", "| AverageEpRet | -6.87e+03 |\n", "| StdEpRet | 957 |\n", "| MaxEpRet | -5.52e+03 |\n", "| MinEpRet | -8.42e+03 |\n", "| AverageTestEpRet | -3.26e+03 |\n", "| StdTestEpRet | 2.87e+03 |\n", "| MaxTestEpRet | -265 |\n", "| MinTestEpRet | -1.08e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+03 |\n", "| AverageQ1Vals | -869 |\n", "| StdQ1Vals | 197 |\n", "| MaxQ1Vals | -341 |\n", "| MinQ1Vals | -1.69e+03 |\n", "| AverageQ2Vals | -869 |\n", "| StdQ2Vals | 197 |\n", "| MaxQ2Vals | -336 |\n", "| MinQ2Vals | -1.69e+03 |\n", "| LossPi | 848 |\n", "| LossQ | 8.82e+03 |\n", "| Time | 39.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 7 |\n", "| AverageEpRet | -2.89e+03 |\n", "| StdEpRet | 1.7e+03 |\n", "| MaxEpRet | -759 |\n", "| MinEpRet | -7.06e+03 |\n", "| AverageTestEpRet | -3.55e+03 |\n", "| StdTestEpRet | 2.54e+03 |\n", "| MaxTestEpRet | -534 |\n", "| MinTestEpRet | -8.2e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.15e+04 |\n", "| AverageQ1Vals | -977 |\n", "| StdQ1Vals | 221 |\n", "| MaxQ1Vals | -429 |\n", "| MinQ1Vals | -1.85e+03 |\n", "| AverageQ2Vals | -978 |\n", "| StdQ2Vals | 221 |\n", "| MaxQ2Vals | -438 |\n", "| MinQ2Vals | -1.84e+03 |\n", "| LossPi | 953 |\n", "| LossQ | 9.69e+03 |\n", "| Time | 46.2 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 8 |\n", "| AverageEpRet | -2e+03 |\n", "| StdEpRet | 1.73e+03 |\n", "| MaxEpRet | -186 |\n", "| MinEpRet | -6.77e+03 |\n", "| AverageTestEpRet | -1.41e+03 |\n", "| StdTestEpRet | 989 |\n", "| MaxTestEpRet | -385 |\n", "| MinTestEpRet | -3.49e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.32e+04 |\n", "| AverageQ1Vals | -1.04e+03 |\n", "| StdQ1Vals | 250 |\n", "| MaxQ1Vals | -479 |\n", "| MinQ1Vals | -1.97e+03 |\n", "| AverageQ2Vals | -1.04e+03 |\n", "| StdQ2Vals | 250 |\n", "| MaxQ2Vals | -486 |\n", "| MinQ2Vals | -1.96e+03 |\n", "| LossPi | 1.02e+03 |\n", "| LossQ | 9.37e+03 |\n", "| Time | 53.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 9 |\n", "| AverageEpRet | -2.07e+03 |\n", "| StdEpRet | 1.78e+03 |\n", "| MaxEpRet | -247 |\n", "| MinEpRet | -6.3e+03 |\n", "| AverageTestEpRet | -2.43e+03 |\n", "| StdTestEpRet | 1.47e+03 |\n", "| MaxTestEpRet | -647 |\n", "| MinTestEpRet | -5.71e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.48e+04 |\n", "| AverageQ1Vals | -1.09e+03 |\n", "| StdQ1Vals | 275 |\n", "| MaxQ1Vals | -505 |\n", "| MinQ1Vals | -2.08e+03 |\n", "| AverageQ2Vals | -1.09e+03 |\n", "| StdQ2Vals | 275 |\n", "| MaxQ2Vals | -509 |\n", "| MinQ2Vals | -2.08e+03 |\n", "| LossPi | 1.06e+03 |\n", "| LossQ | 9.5e+03 |\n", "| Time | 60.4 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 10 |\n", "| AverageEpRet | -2.14e+03 |\n", "| StdEpRet | 2.1e+03 |\n", "| MaxEpRet | -242 |\n", "| MinEpRet | -8.93e+03 |\n", "| AverageTestEpRet | -2.12e+03 |\n", "| StdTestEpRet | 2.75e+03 |\n", "| MaxTestEpRet | -79.7 |\n", "| MinTestEpRet | -9.07e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+04 |\n", "| AverageQ1Vals | -1.13e+03 |\n", "| StdQ1Vals | 292 |\n", "| MaxQ1Vals | -536 |\n", "| MinQ1Vals | -2.18e+03 |\n", "| AverageQ2Vals | -1.13e+03 |\n", "| StdQ2Vals | 292 |\n", "| MaxQ2Vals | -538 |\n", "| MinQ2Vals | -2.17e+03 |\n", "| LossPi | 1.11e+03 |\n", "| LossQ | 9.45e+03 |\n", "| Time | 67.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 11 |\n", "| AverageEpRet | -1.82e+03 |\n", "| StdEpRet | 2.44e+03 |\n", "| MaxEpRet | -110 |\n", "| MinEpRet | -8.63e+03 |\n", "| AverageTestEpRet | -1.56e+03 |\n", "| StdTestEpRet | 1.74e+03 |\n", "| MaxTestEpRet | -64.8 |\n", "| MinTestEpRet | -6.1e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.81e+04 |\n", "| AverageQ1Vals | -1.16e+03 |\n", "| StdQ1Vals | 310 |\n", "| MaxQ1Vals | -550 |\n", "| MinQ1Vals | -2.38e+03 |\n", "| AverageQ2Vals | -1.16e+03 |\n", "| StdQ2Vals | 310 |\n", "| MaxQ2Vals | -549 |\n", "| MinQ2Vals | -2.39e+03 |\n", "| LossPi | 1.14e+03 |\n", "| LossQ | 9.9e+03 |\n", "| Time | 74.2 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 12 |\n", "| AverageEpRet | -2.3e+03 |\n", "| StdEpRet | 2.51e+03 |\n", "| MaxEpRet | -392 |\n", "| MinEpRet | -1.01e+04 |\n", "| AverageTestEpRet | -998 |\n", "| StdTestEpRet | 589 |\n", "| MaxTestEpRet | -223 |\n", "| MinTestEpRet | -2.29e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.98e+04 |\n", "| AverageQ1Vals | -1.18e+03 |\n", "| StdQ1Vals | 327 |\n", "| MaxQ1Vals | -559 |\n", "| MinQ1Vals | -2.49e+03 |\n", "| AverageQ2Vals | -1.18e+03 |\n", "| StdQ2Vals | 327 |\n", "| MaxQ2Vals | -562 |\n", "| MinQ2Vals | -2.51e+03 |\n", "| LossPi | 1.16e+03 |\n", "| LossQ | 9.91e+03 |\n", "| Time | 81.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 13 |\n", "| AverageEpRet | -1.92e+03 |\n", "| StdEpRet | 2.06e+03 |\n", "| MaxEpRet | -174 |\n", "| MinEpRet | -7.09e+03 |\n", "| AverageTestEpRet | -1.01e+03 |\n", "| StdTestEpRet | 663 |\n", "| MaxTestEpRet | -97.4 |\n", "| MinTestEpRet | -2.07e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.14e+04 |\n", "| AverageQ1Vals | -1.2e+03 |\n", "| StdQ1Vals | 344 |\n", "| MaxQ1Vals | -569 |\n", "| MinQ1Vals | -2.59e+03 |\n", "| AverageQ2Vals | -1.2e+03 |\n", "| StdQ2Vals | 344 |\n", "| MaxQ2Vals | -567 |\n", "| MinQ2Vals | -2.61e+03 |\n", "| LossPi | 1.17e+03 |\n", "| LossQ | 1.04e+04 |\n", "| Time | 88.2 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 14 |\n", "| AverageEpRet | -1.39e+03 |\n", "| StdEpRet | 1.86e+03 |\n", "| MaxEpRet | -80.7 |\n", "| MinEpRet | -7.67e+03 |\n", "| AverageTestEpRet | -1.24e+03 |\n", "| StdTestEpRet | 1.04e+03 |\n", "| MaxTestEpRet | -357 |\n", "| MinTestEpRet | -3.24e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.31e+04 |\n", "| AverageQ1Vals | -1.2e+03 |\n", "| StdQ1Vals | 356 |\n", "| MaxQ1Vals | -570 |\n", "| MinQ1Vals | -2.73e+03 |\n", "| AverageQ2Vals | -1.2e+03 |\n", "| StdQ2Vals | 356 |\n", "| MaxQ2Vals | -568 |\n", "| MinQ2Vals | -2.74e+03 |\n", "| LossPi | 1.18e+03 |\n", "| LossQ | 1.11e+04 |\n", "| Time | 95.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 15 |\n", "| AverageEpRet | -889 |\n", "| StdEpRet | 559 |\n", "| MaxEpRet | -177 |\n", "| MinEpRet | -2.04e+03 |\n", "| AverageTestEpRet | -756 |\n", "| StdTestEpRet | 529 |\n", "| MaxTestEpRet | -128 |\n", "| MinTestEpRet | -1.57e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.47e+04 |\n", "| AverageQ1Vals | -1.2e+03 |\n", "| StdQ1Vals | 370 |\n", "| MaxQ1Vals | -567 |\n", "| MinQ1Vals | -2.81e+03 |\n", "| AverageQ2Vals | -1.2e+03 |\n", "| StdQ2Vals | 370 |\n", "| MaxQ2Vals | -569 |\n", "| MinQ2Vals | -2.81e+03 |\n", "| LossPi | 1.18e+03 |\n", "| LossQ | 1.07e+04 |\n", "| Time | 102 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 16 |\n", "| AverageEpRet | -991 |\n", "| StdEpRet | 672 |\n", "| MaxEpRet | -115 |\n", "| MinEpRet | -2.54e+03 |\n", "| AverageTestEpRet | -900 |\n", "| StdTestEpRet | 748 |\n", "| MaxTestEpRet | -173 |\n", "| MinTestEpRet | -2.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.64e+04 |\n", "| AverageQ1Vals | -1.19e+03 |\n", "| StdQ1Vals | 383 |\n", "| MaxQ1Vals | -542 |\n", "| MinQ1Vals | -2.86e+03 |\n", "| AverageQ2Vals | -1.19e+03 |\n", "| StdQ2Vals | 383 |\n", "| MaxQ2Vals | -542 |\n", "| MinQ2Vals | -2.86e+03 |\n", "| LossPi | 1.16e+03 |\n", "| LossQ | 1.12e+04 |\n", "| Time | 109 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 17 |\n", "| AverageEpRet | -771 |\n", "| StdEpRet | 558 |\n", "| MaxEpRet | -138 |\n", "| MinEpRet | -1.86e+03 |\n", "| AverageTestEpRet | -441 |\n", "| StdTestEpRet | 326 |\n", "| MaxTestEpRet | -112 |\n", "| MinTestEpRet | -1.07e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.8e+04 |\n", "| AverageQ1Vals | -1.17e+03 |\n", "| StdQ1Vals | 390 |\n", "| MaxQ1Vals | -518 |\n", "| MinQ1Vals | -2.93e+03 |\n", "| AverageQ2Vals | -1.17e+03 |\n", "| StdQ2Vals | 390 |\n", "| MaxQ2Vals | -518 |\n", "| MinQ2Vals | -2.93e+03 |\n", "| LossPi | 1.15e+03 |\n", "| LossQ | 1.17e+04 |\n", "| Time | 116 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 18 |\n", "| AverageEpRet | -473 |\n", "| StdEpRet | 244 |\n", "| MaxEpRet | -122 |\n", "| MinEpRet | -991 |\n", "| AverageTestEpRet | -1.22e+03 |\n", "| StdTestEpRet | 1.61e+03 |\n", "| MaxTestEpRet | -46.2 |\n", "| MinTestEpRet | -4.63e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.97e+04 |\n", "| AverageQ1Vals | -1.15e+03 |\n", "| StdQ1Vals | 393 |\n", "| MaxQ1Vals | -499 |\n", "| MinQ1Vals | -2.93e+03 |\n", "| AverageQ2Vals | -1.15e+03 |\n", "| StdQ2Vals | 393 |\n", "| MaxQ2Vals | -499 |\n", "| MinQ2Vals | -2.93e+03 |\n", "| LossPi | 1.13e+03 |\n", "| LossQ | 1.13e+04 |\n", "| Time | 123 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 19 |\n", "| AverageEpRet | -1.01e+03 |\n", "| StdEpRet | 888 |\n", "| MaxEpRet | -42.2 |\n", "| MinEpRet | -3.28e+03 |\n", "| AverageTestEpRet | -691 |\n", "| StdTestEpRet | 425 |\n", "| MaxTestEpRet | -52.2 |\n", "| MinTestEpRet | -1.47e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.13e+04 |\n", "| AverageQ1Vals | -1.13e+03 |\n", "| StdQ1Vals | 398 |\n", "| MaxQ1Vals | -475 |\n", "| MinQ1Vals | -2.96e+03 |\n", "| AverageQ2Vals | -1.13e+03 |\n", "| StdQ2Vals | 398 |\n", "| MaxQ2Vals | -471 |\n", "| MinQ2Vals | -2.96e+03 |\n", "| LossPi | 1.1e+03 |\n", "| LossQ | 1.12e+04 |\n", "| Time | 131 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 20 |\n", "| AverageEpRet | -572 |\n", "| StdEpRet | 334 |\n", "| MaxEpRet | -217 |\n", "| MinEpRet | -1.37e+03 |\n", "| AverageTestEpRet | -1.02e+03 |\n", "| StdTestEpRet | 738 |\n", "| MaxTestEpRet | -39.8 |\n", "| MinTestEpRet | -2.13e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+04 |\n", "| AverageQ1Vals | -1.1e+03 |\n", "| StdQ1Vals | 399 |\n", "| MaxQ1Vals | -448 |\n", "| MinQ1Vals | -2.95e+03 |\n", "| AverageQ2Vals | -1.1e+03 |\n", "| StdQ2Vals | 398 |\n", "| MaxQ2Vals | -446 |\n", "| MinQ2Vals | -2.95e+03 |\n", "| LossPi | 1.08e+03 |\n", "| LossQ | 1.11e+04 |\n", "| Time | 138 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 21 |\n", "| AverageEpRet | -697 |\n", "| StdEpRet | 465 |\n", "| MaxEpRet | -211 |\n", "| MinEpRet | -2.02e+03 |\n", "| AverageTestEpRet | -682 |\n", "| StdTestEpRet | 314 |\n", "| MaxTestEpRet | -216 |\n", "| MinTestEpRet | -1.21e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.46e+04 |\n", "| AverageQ1Vals | -1.07e+03 |\n", "| StdQ1Vals | 399 |\n", "| MaxQ1Vals | -424 |\n", "| MinQ1Vals | -2.94e+03 |\n", "| AverageQ2Vals | -1.07e+03 |\n", "| StdQ2Vals | 399 |\n", "| MaxQ2Vals | -422 |\n", "| MinQ2Vals | -2.94e+03 |\n", "| LossPi | 1.05e+03 |\n", "| LossQ | 1.1e+04 |\n", "| Time | 144 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 22 |\n", "| AverageEpRet | -584 |\n", "| StdEpRet | 449 |\n", "| MaxEpRet | -61.1 |\n", "| MinEpRet | -1.79e+03 |\n", "| AverageTestEpRet | -486 |\n", "| StdTestEpRet | 455 |\n", "| MaxTestEpRet | -67.9 |\n", "| MinTestEpRet | -1.68e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.63e+04 |\n", "| AverageQ1Vals | -1.03e+03 |\n", "| StdQ1Vals | 398 |\n", "| MaxQ1Vals | -406 |\n", "| MinQ1Vals | -2.88e+03 |\n", "| AverageQ2Vals | -1.03e+03 |\n", "| StdQ2Vals | 398 |\n", "| MaxQ2Vals | -402 |\n", "| MinQ2Vals | -2.88e+03 |\n", "| LossPi | 1.01e+03 |\n", "| LossQ | 1.02e+04 |\n", "| Time | 151 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 23 |\n", "| AverageEpRet | -783 |\n", "| StdEpRet | 684 |\n", "| MaxEpRet | -73.7 |\n", "| MinEpRet | -3.06e+03 |\n", "| AverageTestEpRet | -546 |\n", "| StdTestEpRet | 343 |\n", "| MaxTestEpRet | -118 |\n", "| MinTestEpRet | -1.38e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.79e+04 |\n", "| AverageQ1Vals | -994 |\n", "| StdQ1Vals | 397 |\n", "| MaxQ1Vals | -383 |\n", "| MinQ1Vals | -2.8e+03 |\n", "| AverageQ2Vals | -994 |\n", "| StdQ2Vals | 397 |\n", "| MaxQ2Vals | -381 |\n", "| MinQ2Vals | -2.8e+03 |\n", "| LossPi | 973 |\n", "| LossQ | 1.01e+04 |\n", "| Time | 159 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 24 |\n", "| AverageEpRet | -662 |\n", "| StdEpRet | 388 |\n", "| MaxEpRet | -50 |\n", "| MinEpRet | -1.23e+03 |\n", "| AverageTestEpRet | -880 |\n", "| StdTestEpRet | 558 |\n", "| MaxTestEpRet | -180 |\n", "| MinTestEpRet | -2.01e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.96e+04 |\n", "| AverageQ1Vals | -962 |\n", "| StdQ1Vals | 391 |\n", "| MaxQ1Vals | -361 |\n", "| MinQ1Vals | -2.8e+03 |\n", "| AverageQ2Vals | -962 |\n", "| StdQ2Vals | 391 |\n", "| MaxQ2Vals | -356 |\n", "| MinQ2Vals | -2.81e+03 |\n", "| LossPi | 941 |\n", "| LossQ | 9.66e+03 |\n", "| Time | 165 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 25 |\n", "| AverageEpRet | -845 |\n", "| StdEpRet | 826 |\n", "| MaxEpRet | -79.2 |\n", "| MinEpRet | -3.5e+03 |\n", "| AverageTestEpRet | -535 |\n", "| StdTestEpRet | 432 |\n", "| MaxTestEpRet | -93.4 |\n", "| MinTestEpRet | -1.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.12e+04 |\n", "| AverageQ1Vals | -925 |\n", "| StdQ1Vals | 386 |\n", "| MaxQ1Vals | -337 |\n", "| MinQ1Vals | -2.77e+03 |\n", "| AverageQ2Vals | -925 |\n", "| StdQ2Vals | 385 |\n", "| MaxQ2Vals | -331 |\n", "| MinQ2Vals | -2.78e+03 |\n", "| LossPi | 906 |\n", "| LossQ | 8.82e+03 |\n", "| Time | 173 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 26 |\n", "| AverageEpRet | -635 |\n", "| StdEpRet | 399 |\n", "| MaxEpRet | -25.9 |\n", "| MinEpRet | -1.25e+03 |\n", "| AverageTestEpRet | -577 |\n", "| StdTestEpRet | 425 |\n", "| MaxTestEpRet | -24.4 |\n", "| MinTestEpRet | -1.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.29e+04 |\n", "| AverageQ1Vals | -891 |\n", "| StdQ1Vals | 382 |\n", "| MaxQ1Vals | -312 |\n", "| MinQ1Vals | -2.68e+03 |\n", "| AverageQ2Vals | -891 |\n", "| StdQ2Vals | 382 |\n", "| MaxQ2Vals | -307 |\n", "| MinQ2Vals | -2.68e+03 |\n", "| LossPi | 873 |\n", "| LossQ | 8.52e+03 |\n", "| Time | 180 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 27 |\n", "| AverageEpRet | -622 |\n", "| StdEpRet | 597 |\n", "| MaxEpRet | -15.8 |\n", "| MinEpRet | -2.45e+03 |\n", "| AverageTestEpRet | -837 |\n", "| StdTestEpRet | 383 |\n", "| MaxTestEpRet | -208 |\n", "| MinTestEpRet | -1.46e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.45e+04 |\n", "| AverageQ1Vals | -863 |\n", "| StdQ1Vals | 379 |\n", "| MaxQ1Vals | -295 |\n", "| MinQ1Vals | -2.64e+03 |\n", "| AverageQ2Vals | -863 |\n", "| StdQ2Vals | 379 |\n", "| MaxQ2Vals | -292 |\n", "| MinQ2Vals | -2.65e+03 |\n", "| LossPi | 847 |\n", "| LossQ | 7.59e+03 |\n", "| Time | 187 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 28 |\n", "| AverageEpRet | -596 |\n", "| StdEpRet | 452 |\n", "| MaxEpRet | -76.2 |\n", "| MinEpRet | -1.5e+03 |\n", "| AverageTestEpRet | -537 |\n", "| StdTestEpRet | 234 |\n", "| MaxTestEpRet | -146 |\n", "| MinTestEpRet | -971 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.62e+04 |\n", "| AverageQ1Vals | -840 |\n", "| StdQ1Vals | 377 |\n", "| MaxQ1Vals | -277 |\n", "| MinQ1Vals | -2.63e+03 |\n", "| AverageQ2Vals | -840 |\n", "| StdQ2Vals | 377 |\n", "| MaxQ2Vals | -273 |\n", "| MinQ2Vals | -2.64e+03 |\n", "| LossPi | 824 |\n", "| LossQ | 7.53e+03 |\n", "| Time | 194 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 29 |\n", "| AverageEpRet | -765 |\n", "| StdEpRet | 322 |\n", "| MaxEpRet | -225 |\n", "| MinEpRet | -1.52e+03 |\n", "| AverageTestEpRet | -733 |\n", "| StdTestEpRet | 383 |\n", "| MaxTestEpRet | -100 |\n", "| MinTestEpRet | -1.5e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.78e+04 |\n", "| AverageQ1Vals | -813 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | -255 |\n", "| MinQ1Vals | -2.57e+03 |\n", "| AverageQ2Vals | -813 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | -252 |\n", "| MinQ2Vals | -2.57e+03 |\n", "| LossPi | 796 |\n", "| LossQ | 7.44e+03 |\n", "| Time | 201 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 30 |\n", "| AverageEpRet | -551 |\n", "| StdEpRet | 415 |\n", "| MaxEpRet | -42.4 |\n", "| MinEpRet | -1.62e+03 |\n", "| AverageTestEpRet | -860 |\n", "| StdTestEpRet | 372 |\n", "| MaxTestEpRet | -254 |\n", "| MinTestEpRet | -1.48e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+04 |\n", "| AverageQ1Vals | -790 |\n", "| StdQ1Vals | 371 |\n", "| MaxQ1Vals | -232 |\n", "| MinQ1Vals | -2.51e+03 |\n", "| AverageQ2Vals | -790 |\n", "| StdQ2Vals | 371 |\n", "| MaxQ2Vals | -231 |\n", "| MinQ2Vals | -2.51e+03 |\n", "| LossPi | 774 |\n", "| LossQ | 7.09e+03 |\n", "| Time | 208 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 31 |\n", "| AverageEpRet | -624 |\n", "| StdEpRet | 515 |\n", "| MaxEpRet | -156 |\n", "| MinEpRet | -1.69e+03 |\n", "| AverageTestEpRet | -839 |\n", "| StdTestEpRet | 472 |\n", "| MaxTestEpRet | -316 |\n", "| MinTestEpRet | -1.65e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.11e+04 |\n", "| AverageQ1Vals | -768 |\n", "| StdQ1Vals | 369 |\n", "| MaxQ1Vals | -216 |\n", "| MinQ1Vals | -2.47e+03 |\n", "| AverageQ2Vals | -768 |\n", "| StdQ2Vals | 369 |\n", "| MaxQ2Vals | -214 |\n", "| MinQ2Vals | -2.47e+03 |\n", "| LossPi | 753 |\n", "| LossQ | 6.56e+03 |\n", "| Time | 215 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 32 |\n", "| AverageEpRet | -812 |\n", "| StdEpRet | 489 |\n", "| MaxEpRet | -232 |\n", "| MinEpRet | -1.98e+03 |\n", "| AverageTestEpRet | -508 |\n", "| StdTestEpRet | 326 |\n", "| MaxTestEpRet | -88.3 |\n", "| MinTestEpRet | -955 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.28e+04 |\n", "| AverageQ1Vals | -751 |\n", "| StdQ1Vals | 366 |\n", "| MaxQ1Vals | -196 |\n", "| MinQ1Vals | -2.48e+03 |\n", "| AverageQ2Vals | -751 |\n", "| StdQ2Vals | 366 |\n", "| MaxQ2Vals | -195 |\n", "| MinQ2Vals | -2.49e+03 |\n", "| LossPi | 734 |\n", "| LossQ | 6.78e+03 |\n", "| Time | 222 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 33 |\n", "| AverageEpRet | -862 |\n", "| StdEpRet | 472 |\n", "| MaxEpRet | -190 |\n", "| MinEpRet | -1.63e+03 |\n", "| AverageTestEpRet | -677 |\n", "| StdTestEpRet | 347 |\n", "| MaxTestEpRet | -137 |\n", "| MinTestEpRet | -1.24e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.44e+04 |\n", "| AverageQ1Vals | -730 |\n", "| StdQ1Vals | 366 |\n", "| MaxQ1Vals | -174 |\n", "| MinQ1Vals | -2.41e+03 |\n", "| AverageQ2Vals | -730 |\n", "| StdQ2Vals | 366 |\n", "| MaxQ2Vals | -171 |\n", "| MinQ2Vals | -2.41e+03 |\n", "| LossPi | 715 |\n", "| LossQ | 6.46e+03 |\n", "| Time | 229 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 34 |\n", "| AverageEpRet | -603 |\n", "| StdEpRet | 334 |\n", "| MaxEpRet | -174 |\n", "| MinEpRet | -1.17e+03 |\n", "| AverageTestEpRet | -700 |\n", "| StdTestEpRet | 318 |\n", "| MaxTestEpRet | -195 |\n", "| MinTestEpRet | -1.38e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.61e+04 |\n", "| AverageQ1Vals | -710 |\n", "| StdQ1Vals | 363 |\n", "| MaxQ1Vals | -156 |\n", "| MinQ1Vals | -2.38e+03 |\n", "| AverageQ2Vals | -710 |\n", "| StdQ2Vals | 363 |\n", "| MaxQ2Vals | -154 |\n", "| MinQ2Vals | -2.38e+03 |\n", "| LossPi | 697 |\n", "| LossQ | 6.56e+03 |\n", "| Time | 237 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 35 |\n", "| AverageEpRet | -510 |\n", "| StdEpRet | 357 |\n", "| MaxEpRet | -77.1 |\n", "| MinEpRet | -1.23e+03 |\n", "| AverageTestEpRet | -713 |\n", "| StdTestEpRet | 344 |\n", "| MaxTestEpRet | -231 |\n", "| MinTestEpRet | -1.32e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.77e+04 |\n", "| AverageQ1Vals | -689 |\n", "| StdQ1Vals | 361 |\n", "| MaxQ1Vals | -143 |\n", "| MinQ1Vals | -2.36e+03 |\n", "| AverageQ2Vals | -689 |\n", "| StdQ2Vals | 361 |\n", "| MaxQ2Vals | -141 |\n", "| MinQ2Vals | -2.36e+03 |\n", "| LossPi | 675 |\n", "| LossQ | 6.29e+03 |\n", "| Time | 243 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 36 |\n", "| AverageEpRet | -654 |\n", "| StdEpRet | 370 |\n", "| MaxEpRet | -123 |\n", "| MinEpRet | -1.31e+03 |\n", "| AverageTestEpRet | -604 |\n", "| StdTestEpRet | 216 |\n", "| MaxTestEpRet | -340 |\n", "| MinTestEpRet | -1.03e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.94e+04 |\n", "| AverageQ1Vals | -670 |\n", "| StdQ1Vals | 358 |\n", "| MaxQ1Vals | -123 |\n", "| MinQ1Vals | -2.3e+03 |\n", "| AverageQ2Vals | -670 |\n", "| StdQ2Vals | 358 |\n", "| MaxQ2Vals | -118 |\n", "| MinQ2Vals | -2.32e+03 |\n", "| LossPi | 656 |\n", "| LossQ | 5.87e+03 |\n", "| Time | 250 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 37 |\n", "| AverageEpRet | -560 |\n", "| StdEpRet | 254 |\n", "| MaxEpRet | -83.2 |\n", "| MinEpRet | -1.03e+03 |\n", "| AverageTestEpRet | -541 |\n", "| StdTestEpRet | 295 |\n", "| MaxTestEpRet | -106 |\n", "| MinTestEpRet | -980 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.1e+04 |\n", "| AverageQ1Vals | -651 |\n", "| StdQ1Vals | 353 |\n", "| MaxQ1Vals | -108 |\n", "| MinQ1Vals | -2.28e+03 |\n", "| AverageQ2Vals | -651 |\n", "| StdQ2Vals | 353 |\n", "| MaxQ2Vals | -104 |\n", "| MinQ2Vals | -2.29e+03 |\n", "| LossPi | 637 |\n", "| LossQ | 5.67e+03 |\n", "| Time | 257 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 38 |\n", "| AverageEpRet | -731 |\n", "| StdEpRet | 239 |\n", "| MaxEpRet | -301 |\n", "| MinEpRet | -1.13e+03 |\n", "| AverageTestEpRet | -622 |\n", "| StdTestEpRet | 271 |\n", "| MaxTestEpRet | -192 |\n", "| MinTestEpRet | -1.08e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.27e+04 |\n", "| AverageQ1Vals | -633 |\n", "| StdQ1Vals | 352 |\n", "| MaxQ1Vals | -89.6 |\n", "| MinQ1Vals | -2.25e+03 |\n", "| AverageQ2Vals | -633 |\n", "| StdQ2Vals | 352 |\n", "| MaxQ2Vals | -85 |\n", "| MinQ2Vals | -2.28e+03 |\n", "| LossPi | 620 |\n", "| LossQ | 5.35e+03 |\n", "| Time | 264 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 39 |\n", "| AverageEpRet | -740 |\n", "| StdEpRet | 365 |\n", "| MaxEpRet | -155 |\n", "| MinEpRet | -1.64e+03 |\n", "| AverageTestEpRet | -497 |\n", "| StdTestEpRet | 365 |\n", "| MaxTestEpRet | -64.6 |\n", "| MinTestEpRet | -1.05e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.43e+04 |\n", "| AverageQ1Vals | -614 |\n", "| StdQ1Vals | 348 |\n", "| MaxQ1Vals | -80.7 |\n", "| MinQ1Vals | -2.26e+03 |\n", "| AverageQ2Vals | -614 |\n", "| StdQ2Vals | 349 |\n", "| MaxQ2Vals | -77.1 |\n", "| MinQ2Vals | -2.28e+03 |\n", "| LossPi | 601 |\n", "| LossQ | 5.23e+03 |\n", "| Time | 271 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 40 |\n", "| AverageEpRet | -637 |\n", "| StdEpRet | 394 |\n", "| MaxEpRet | -102 |\n", "| MinEpRet | -1.45e+03 |\n", "| AverageTestEpRet | -501 |\n", "| StdTestEpRet | 413 |\n", "| MaxTestEpRet | -17.8 |\n", "| MinTestEpRet | -1.33e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+04 |\n", "| AverageQ1Vals | -596 |\n", "| StdQ1Vals | 346 |\n", "| MaxQ1Vals | -71.5 |\n", "| MinQ1Vals | -2.21e+03 |\n", "| AverageQ2Vals | -596 |\n", "| StdQ2Vals | 346 |\n", "| MaxQ2Vals | -67.1 |\n", "| MinQ2Vals | -2.24e+03 |\n", "| LossPi | 585 |\n", "| LossQ | 5.17e+03 |\n", "| Time | 278 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 41 |\n", "| AverageEpRet | -526 |\n", "| StdEpRet | 360 |\n", "| MaxEpRet | -50 |\n", "| MinEpRet | -1.43e+03 |\n", "| AverageTestEpRet | -339 |\n", "| StdTestEpRet | 506 |\n", "| MaxTestEpRet | -24.9 |\n", "| MinTestEpRet | -1.82e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.76e+04 |\n", "| AverageQ1Vals | -578 |\n", "| StdQ1Vals | 344 |\n", "| MaxQ1Vals | -58.1 |\n", "| MinQ1Vals | -2.2e+03 |\n", "| AverageQ2Vals | -578 |\n", "| StdQ2Vals | 344 |\n", "| MaxQ2Vals | -55.4 |\n", "| MinQ2Vals | -2.23e+03 |\n", "| LossPi | 564 |\n", "| LossQ | 5.13e+03 |\n", "| Time | 286 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 42 |\n", "| AverageEpRet | -629 |\n", "| StdEpRet | 411 |\n", "| MaxEpRet | -83.7 |\n", "| MinEpRet | -1.29e+03 |\n", "| AverageTestEpRet | -442 |\n", "| StdTestEpRet | 265 |\n", "| MaxTestEpRet | -39.6 |\n", "| MinTestEpRet | -764 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.93e+04 |\n", "| AverageQ1Vals | -559 |\n", "| StdQ1Vals | 340 |\n", "| MaxQ1Vals | -52.2 |\n", "| MinQ1Vals | -2.22e+03 |\n", "| AverageQ2Vals | -559 |\n", "| StdQ2Vals | 340 |\n", "| MaxQ2Vals | -48.7 |\n", "| MinQ2Vals | -2.25e+03 |\n", "| LossPi | 544 |\n", "| LossQ | 5.16e+03 |\n", "| Time | 293 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 43 |\n", "| AverageEpRet | -583 |\n", "| StdEpRet | 442 |\n", "| MaxEpRet | -58.4 |\n", "| MinEpRet | -1.69e+03 |\n", "| AverageTestEpRet | -752 |\n", "| StdTestEpRet | 430 |\n", "| MaxTestEpRet | -128 |\n", "| MinTestEpRet | -1.68e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.09e+04 |\n", "| AverageQ1Vals | -545 |\n", "| StdQ1Vals | 341 |\n", "| MaxQ1Vals | -42.5 |\n", "| MinQ1Vals | -2.21e+03 |\n", "| AverageQ2Vals | -545 |\n", "| StdQ2Vals | 341 |\n", "| MaxQ2Vals | -41 |\n", "| MinQ2Vals | -2.25e+03 |\n", "| LossPi | 533 |\n", "| LossQ | 4.94e+03 |\n", "| Time | 300 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 44 |\n", "| AverageEpRet | -665 |\n", "| StdEpRet | 424 |\n", "| MaxEpRet | -79.1 |\n", "| MinEpRet | -1.76e+03 |\n", "| AverageTestEpRet | -456 |\n", "| StdTestEpRet | 305 |\n", "| MaxTestEpRet | -60.8 |\n", "| MinTestEpRet | -927 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.26e+04 |\n", "| AverageQ1Vals | -525 |\n", "| StdQ1Vals | 334 |\n", "| MaxQ1Vals | -31.8 |\n", "| MinQ1Vals | -2.17e+03 |\n", "| AverageQ2Vals | -525 |\n", "| StdQ2Vals | 334 |\n", "| MaxQ2Vals | -31.3 |\n", "| MinQ2Vals | -2.2e+03 |\n", "| LossPi | 512 |\n", "| LossQ | 4.52e+03 |\n", "| Time | 307 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 45 |\n", "| AverageEpRet | -445 |\n", "| StdEpRet | 279 |\n", "| MaxEpRet | -104 |\n", "| MinEpRet | -1.17e+03 |\n", "| AverageTestEpRet | -728 |\n", "| StdTestEpRet | 473 |\n", "| MaxTestEpRet | -71.2 |\n", "| MinTestEpRet | -1.55e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.42e+04 |\n", "| AverageQ1Vals | -510 |\n", "| StdQ1Vals | 331 |\n", "| MaxQ1Vals | -17.2 |\n", "| MinQ1Vals | -2.15e+03 |\n", "| AverageQ2Vals | -510 |\n", "| StdQ2Vals | 331 |\n", "| MaxQ2Vals | -22.8 |\n", "| MinQ2Vals | -2.17e+03 |\n", "| LossPi | 500 |\n", "| LossQ | 4.64e+03 |\n", "| Time | 314 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 46 |\n", "| AverageEpRet | -652 |\n", "| StdEpRet | 381 |\n", "| MaxEpRet | -151 |\n", "| MinEpRet | -1.28e+03 |\n", "| AverageTestEpRet | -916 |\n", "| StdTestEpRet | 598 |\n", "| MaxTestEpRet | -259 |\n", "| MinTestEpRet | -2.47e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.59e+04 |\n", "| AverageQ1Vals | -493 |\n", "| StdQ1Vals | 326 |\n", "| MaxQ1Vals | -6.54 |\n", "| MinQ1Vals | -2.13e+03 |\n", "| AverageQ2Vals | -493 |\n", "| StdQ2Vals | 326 |\n", "| MaxQ2Vals | -11.6 |\n", "| MinQ2Vals | -2.15e+03 |\n", "| LossPi | 483 |\n", "| LossQ | 4.52e+03 |\n", "| Time | 321 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 47 |\n", "| AverageEpRet | -553 |\n", "| StdEpRet | 373 |\n", "| MaxEpRet | -130 |\n", "| MinEpRet | -1.31e+03 |\n", "| AverageTestEpRet | -518 |\n", "| StdTestEpRet | 434 |\n", "| MaxTestEpRet | -29.3 |\n", "| MinTestEpRet | -1.69e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.75e+04 |\n", "| AverageQ1Vals | -479 |\n", "| StdQ1Vals | 322 |\n", "| MaxQ1Vals | -0.235 |\n", "| MinQ1Vals | -2.11e+03 |\n", "| AverageQ2Vals | -479 |\n", "| StdQ2Vals | 322 |\n", "| MaxQ2Vals | 0.744 |\n", "| MinQ2Vals | -2.15e+03 |\n", "| LossPi | 467 |\n", "| LossQ | 4.28e+03 |\n", "| Time | 328 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 48 |\n", "| AverageEpRet | -714 |\n", "| StdEpRet | 329 |\n", "| MaxEpRet | -279 |\n", "| MinEpRet | -1.36e+03 |\n", "| AverageTestEpRet | -888 |\n", "| StdTestEpRet | 490 |\n", "| MaxTestEpRet | -312 |\n", "| MinTestEpRet | -1.94e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.92e+04 |\n", "| AverageQ1Vals | -466 |\n", "| StdQ1Vals | 318 |\n", "| MaxQ1Vals | 4.95 |\n", "| MinQ1Vals | -2.08e+03 |\n", "| AverageQ2Vals | -466 |\n", "| StdQ2Vals | 318 |\n", "| MaxQ2Vals | 3.89 |\n", "| MinQ2Vals | -2.1e+03 |\n", "| LossPi | 454 |\n", "| LossQ | 4.15e+03 |\n", "| Time | 336 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 49 |\n", "| AverageEpRet | -517 |\n", "| StdEpRet | 301 |\n", "| MaxEpRet | -52.9 |\n", "| MinEpRet | -1.13e+03 |\n", "| AverageTestEpRet | -607 |\n", "| StdTestEpRet | 534 |\n", "| MaxTestEpRet | -77.2 |\n", "| MinTestEpRet | -1.85e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.08e+04 |\n", "| AverageQ1Vals | -453 |\n", "| StdQ1Vals | 316 |\n", "| MaxQ1Vals | 9.3 |\n", "| MinQ1Vals | -2.06e+03 |\n", "| AverageQ2Vals | -453 |\n", "| StdQ2Vals | 316 |\n", "| MaxQ2Vals | 7.32 |\n", "| MinQ2Vals | -2.08e+03 |\n", "| LossPi | 440 |\n", "| LossQ | 4.02e+03 |\n", "| Time | 342 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 50 |\n", "| AverageEpRet | -565 |\n", "| StdEpRet | 219 |\n", "| MaxEpRet | -130 |\n", "| MinEpRet | -899 |\n", "| AverageTestEpRet | -532 |\n", "| StdTestEpRet | 249 |\n", "| MaxTestEpRet | -142 |\n", "| MinTestEpRet | -934 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+04 |\n", "| AverageQ1Vals | -439 |\n", "| StdQ1Vals | 313 |\n", "| MaxQ1Vals | 21.9 |\n", "| MinQ1Vals | -2.05e+03 |\n", "| AverageQ2Vals | -439 |\n", "| StdQ2Vals | 313 |\n", "| MaxQ2Vals | 16 |\n", "| MinQ2Vals | -2.09e+03 |\n", "| LossPi | 427 |\n", "| LossQ | 4.01e+03 |\n", "| Time | 349 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 51 |\n", "| AverageEpRet | -695 |\n", "| StdEpRet | 414 |\n", "| MaxEpRet | -119 |\n", "| MinEpRet | -1.43e+03 |\n", "| AverageTestEpRet | -470 |\n", "| StdTestEpRet | 271 |\n", "| MaxTestEpRet | -87.5 |\n", "| MinTestEpRet | -1.04e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.41e+04 |\n", "| AverageQ1Vals | -425 |\n", "| StdQ1Vals | 309 |\n", "| MaxQ1Vals | 23.1 |\n", "| MinQ1Vals | -2.01e+03 |\n", "| AverageQ2Vals | -425 |\n", "| StdQ2Vals | 309 |\n", "| MaxQ2Vals | 19.8 |\n", "| MinQ2Vals | -2.04e+03 |\n", "| LossPi | 414 |\n", "| LossQ | 3.85e+03 |\n", "| Time | 356 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 52 |\n", "| AverageEpRet | -719 |\n", "| StdEpRet | 495 |\n", "| MaxEpRet | -56.4 |\n", "| MinEpRet | -1.78e+03 |\n", "| AverageTestEpRet | -830 |\n", "| StdTestEpRet | 538 |\n", "| MaxTestEpRet | -273 |\n", "| MinTestEpRet | -1.72e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.58e+04 |\n", "| AverageQ1Vals | -415 |\n", "| StdQ1Vals | 306 |\n", "| MaxQ1Vals | 55 |\n", "| MinQ1Vals | -1.98e+03 |\n", "| AverageQ2Vals | -415 |\n", "| StdQ2Vals | 306 |\n", "| MaxQ2Vals | 57.6 |\n", "| MinQ2Vals | -2e+03 |\n", "| LossPi | 402 |\n", "| LossQ | 3.65e+03 |\n", "| Time | 363 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 53 |\n", "| AverageEpRet | -679 |\n", "| StdEpRet | 322 |\n", "| MaxEpRet | -160 |\n", "| MinEpRet | -1.21e+03 |\n", "| AverageTestEpRet | -617 |\n", "| StdTestEpRet | 298 |\n", "| MaxTestEpRet | -131 |\n", "| MinTestEpRet | -1.1e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.74e+04 |\n", "| AverageQ1Vals | -400 |\n", "| StdQ1Vals | 302 |\n", "| MaxQ1Vals | 59.8 |\n", "| MinQ1Vals | -2e+03 |\n", "| AverageQ2Vals | -400 |\n", "| StdQ2Vals | 302 |\n", "| MaxQ2Vals | 60.3 |\n", "| MinQ2Vals | -2.01e+03 |\n", "| LossPi | 388 |\n", "| LossQ | 3.76e+03 |\n", "| Time | 370 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 54 |\n", "| AverageEpRet | -742 |\n", "| StdEpRet | 395 |\n", "| MaxEpRet | -171 |\n", "| MinEpRet | -1.34e+03 |\n", "| AverageTestEpRet | -748 |\n", "| StdTestEpRet | 478 |\n", "| MaxTestEpRet | -111 |\n", "| MinTestEpRet | -1.66e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.91e+04 |\n", "| AverageQ1Vals | -390 |\n", "| StdQ1Vals | 302 |\n", "| MaxQ1Vals | 61.9 |\n", "| MinQ1Vals | -1.98e+03 |\n", "| AverageQ2Vals | -390 |\n", "| StdQ2Vals | 302 |\n", "| MaxQ2Vals | 62.4 |\n", "| MinQ2Vals | -1.98e+03 |\n", "| LossPi | 379 |\n", "| LossQ | 3.6e+03 |\n", "| Time | 377 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 55 |\n", "| AverageEpRet | -638 |\n", "| StdEpRet | 313 |\n", "| MaxEpRet | -81.5 |\n", "| MinEpRet | -1.16e+03 |\n", "| AverageTestEpRet | -547 |\n", "| StdTestEpRet | 359 |\n", "| MaxTestEpRet | -87.9 |\n", "| MinTestEpRet | -1.03e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.07e+04 |\n", "| AverageQ1Vals | -378 |\n", "| StdQ1Vals | 301 |\n", "| MaxQ1Vals | 62.3 |\n", "| MinQ1Vals | -1.96e+03 |\n", "| AverageQ2Vals | -378 |\n", "| StdQ2Vals | 301 |\n", "| MaxQ2Vals | 61.1 |\n", "| MinQ2Vals | -1.98e+03 |\n", "| LossPi | 369 |\n", "| LossQ | 3.45e+03 |\n", "| Time | 385 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 56 |\n", "| AverageEpRet | -702 |\n", "| StdEpRet | 469 |\n", "| MaxEpRet | -136 |\n", "| MinEpRet | -1.51e+03 |\n", "| AverageTestEpRet | -387 |\n", "| StdTestEpRet | 258 |\n", "| MaxTestEpRet | -26.8 |\n", "| MinTestEpRet | -763 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.24e+04 |\n", "| AverageQ1Vals | -366 |\n", "| StdQ1Vals | 297 |\n", "| MaxQ1Vals | 61.2 |\n", "| MinQ1Vals | -1.93e+03 |\n", "| AverageQ2Vals | -366 |\n", "| StdQ2Vals | 297 |\n", "| MaxQ2Vals | 59 |\n", "| MinQ2Vals | -1.94e+03 |\n", "| LossPi | 355 |\n", "| LossQ | 3.48e+03 |\n", "| Time | 392 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 57 |\n", "| AverageEpRet | -623 |\n", "| StdEpRet | 242 |\n", "| MaxEpRet | -314 |\n", "| MinEpRet | -1.2e+03 |\n", "| AverageTestEpRet | -763 |\n", "| StdTestEpRet | 471 |\n", "| MaxTestEpRet | -84.6 |\n", "| MinTestEpRet | -1.52e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.4e+04 |\n", "| AverageQ1Vals | -357 |\n", "| StdQ1Vals | 297 |\n", "| MaxQ1Vals | 63.8 |\n", "| MinQ1Vals | -1.97e+03 |\n", "| AverageQ2Vals | -357 |\n", "| StdQ2Vals | 297 |\n", "| MaxQ2Vals | 60.2 |\n", "| MinQ2Vals | -1.94e+03 |\n", "| LossPi | 344 |\n", "| LossQ | 3.44e+03 |\n", "| Time | 399 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 58 |\n", "| AverageEpRet | -776 |\n", "| StdEpRet | 437 |\n", "| MaxEpRet | -180 |\n", "| MinEpRet | -1.7e+03 |\n", "| AverageTestEpRet | -739 |\n", "| StdTestEpRet | 295 |\n", "| MaxTestEpRet | -224 |\n", "| MinTestEpRet | -1.18e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.57e+04 |\n", "| AverageQ1Vals | -344 |\n", "| StdQ1Vals | 290 |\n", "| MaxQ1Vals | 70.5 |\n", "| MinQ1Vals | -1.92e+03 |\n", "| AverageQ2Vals | -344 |\n", "| StdQ2Vals | 290 |\n", "| MaxQ2Vals | 64.3 |\n", "| MinQ2Vals | -1.89e+03 |\n", "| LossPi | 333 |\n", "| LossQ | 3.5e+03 |\n", "| Time | 406 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 59 |\n", "| AverageEpRet | -525 |\n", "| StdEpRet | 453 |\n", "| MaxEpRet | -51 |\n", "| MinEpRet | -1.52e+03 |\n", "| AverageTestEpRet | -580 |\n", "| StdTestEpRet | 353 |\n", "| MaxTestEpRet | -112 |\n", "| MinTestEpRet | -1.45e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.73e+04 |\n", "| AverageQ1Vals | -332 |\n", "| StdQ1Vals | 287 |\n", "| MaxQ1Vals | 75.6 |\n", "| MinQ1Vals | -1.94e+03 |\n", "| AverageQ2Vals | -332 |\n", "| StdQ2Vals | 287 |\n", "| MaxQ2Vals | 71.7 |\n", "| MinQ2Vals | -1.92e+03 |\n", "| LossPi | 321 |\n", "| LossQ | 3.2e+03 |\n", "| Time | 413 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 60 |\n", "| AverageEpRet | -670 |\n", "| StdEpRet | 376 |\n", "| MaxEpRet | -154 |\n", "| MinEpRet | -1.47e+03 |\n", "| AverageTestEpRet | -671 |\n", "| StdTestEpRet | 365 |\n", "| MaxTestEpRet | -59.3 |\n", "| MinTestEpRet | -1.16e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+04 |\n", "| AverageQ1Vals | -324 |\n", "| StdQ1Vals | 285 |\n", "| MaxQ1Vals | 90.1 |\n", "| MinQ1Vals | -1.91e+03 |\n", "| AverageQ2Vals | -324 |\n", "| StdQ2Vals | 285 |\n", "| MaxQ2Vals | 86 |\n", "| MinQ2Vals | -1.89e+03 |\n", "| LossPi | 314 |\n", "| LossQ | 3.16e+03 |\n", "| Time | 420 |\n", "---------------------------------------\n" ] } ], "source": [ "# Setup baseline 1\n", "logger_kwargs = dict(output_dir='td3_b1', exp_name='baseline')\n", "seed_b = 0\n", "epochs_b = 60\n", "maxeplen_b = 110\n", "\n", "spe_b = maxeplen_b * 15\n", "repsize_b = 1000000\n", "gamma_b = 0.99\n", "polyak_b = 0.995\n", "batchsize_b = 100\n", "startsteps_b = 10000\n", "args_b = dict(hidden_sizes=[300,], activation=torch.nn.ReLU)\n", "actnoise_b = 0.1\n", "pilr_b = 0.001\n", "qlr_b = 0.001\n", "\n", "# TD3 specific params\n", "pd_b = 2\n", "targnoise_b = 0.2\n", "noiseclip_b = 0.1\n", "\n", "\n", "# Baseline 1 training\n", "spinup.td3_pytorch(GyroscopeEnv, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n", "polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, act_noise = actnoise_b, pi_lr = pilr_b, q_lr = qlr_b, policy_delay = pd_b, target_noise = targnoise_b, noise_clip = noiseclip_b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### SAC" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning: Log dir sac_b0 already exists! Storing info there anyway.\n", "\u001b[32;1mLogging data to sac_b0/progress.txt\u001b[0m\n", "\u001b[36;1mSaving config:\n", "\u001b[0m\n", "{\n", " \"ac_kwargs\":\t{\n", " \"activation\":\t\"ReLU\",\n", " \"hidden_sizes\":\t[\n", " 300\n", " ]\n", " },\n", " \"actor_critic\":\t\"MLPActorCritic\",\n", " \"alpha\":\t0.2,\n", " \"batch_size\":\t100,\n", " \"env_fn\":\t\"GyroscopeEnv\",\n", " \"epochs\":\t60,\n", " \"exp_name\":\t\"baseline\",\n", " \"gamma\":\t0.99,\n", " \"logger\":\t{\n", " \"\":\t{\n", " \"epoch_dict\":\t{},\n", " \"exp_name\":\t\"baseline\",\n", " \"first_row\":\ttrue,\n", " \"log_current_row\":\t{},\n", " \"log_headers\":\t[],\n", " \"output_dir\":\t\"sac_b0\",\n", " \"output_file\":\t{\n", " \"<_io.TextIOWrapper name='sac_b0/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", " \"mode\":\t\"w\"\n", " }\n", " }\n", " }\n", " },\n", " \"logger_kwargs\":\t{\n", " \"exp_name\":\t\"baseline\",\n", " \"output_dir\":\t\"sac_b0\"\n", " },\n", " \"lr\":\t0.001,\n", " \"max_ep_len\":\t110,\n", " \"num_test_episodes\":\t10,\n", " \"polyak\":\t0.995,\n", " \"replay_size\":\t1000000,\n", " \"save_freq\":\t1,\n", " \"seed\":\t0,\n", " \"start_steps\":\t10000,\n", " \"steps_per_epoch\":\t1650,\n", " \"update_after\":\t1000,\n", " \"update_every\":\t50\n", "}\n", "\u001b[32;1m\n", "Number of parameters: \t pi: 3604, \t q1: 3301, \t q2: 3301\n", "\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/matthieulc/.local/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: Box bound precision lowered by casting to float32\u001b[0m\n", " warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 1 |\n", "| AverageEpRet | -6.79e+03 |\n", "| StdEpRet | 1.37e+03 |\n", "| MaxEpRet | -4.52e+03 |\n", "| MinEpRet | -1.03e+04 |\n", "| AverageTestEpRet | -6.93e+03 |\n", "| StdTestEpRet | 2.29e+03 |\n", "| MaxTestEpRet | -3.04e+03 |\n", "| MinTestEpRet | -1.13e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+03 |\n", "| AverageQ1Vals | -107 |\n", "| StdQ1Vals | 56 |\n", "| MaxQ1Vals | 4.59 |\n", "| MinQ1Vals | -318 |\n", "| AverageQ2Vals | -108 |\n", "| StdQ2Vals | 55.5 |\n", "| MaxQ2Vals | 2.45 |\n", "| MinQ2Vals | -322 |\n", "| AverageLogPi | 2.25 |\n", "| StdLogPi | 1.43 |\n", "| MaxLogPi | 28.4 |\n", "| MinLogPi | -7.32 |\n", "| LossPi | 99 |\n", "| LossQ | 3.32e+03 |\n", "| Time | 6.36 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 2 |\n", "| AverageEpRet | -6.82e+03 |\n", "| StdEpRet | 1.46e+03 |\n", "| MaxEpRet | -4.73e+03 |\n", "| MinEpRet | -9.67e+03 |\n", "| AverageTestEpRet | -5.9e+03 |\n", "| StdTestEpRet | 2.22e+03 |\n", "| MaxTestEpRet | -3.72e+03 |\n", "| MinTestEpRet | -1.17e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+03 |\n", "| AverageQ1Vals | -323 |\n", "| StdQ1Vals | 132 |\n", "| MaxQ1Vals | -22.3 |\n", "| MinQ1Vals | -889 |\n", "| AverageQ2Vals | -323 |\n", "| StdQ2Vals | 132 |\n", "| MaxQ2Vals | -19.1 |\n", "| MinQ2Vals | -889 |\n", "| AverageLogPi | 2.76 |\n", "| StdLogPi | 1.2 |\n", "| MaxLogPi | 8.62 |\n", "| MinLogPi | -8.57 |\n", "| LossPi | 307 |\n", "| LossQ | 3.07e+03 |\n", "| Time | 17.9 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 3 |\n", "| AverageEpRet | -6.55e+03 |\n", "| StdEpRet | 1.29e+03 |\n", "| MaxEpRet | -4.36e+03 |\n", "| MinEpRet | -9.04e+03 |\n", "| AverageTestEpRet | -3.5e+03 |\n", "| StdTestEpRet | 1.69e+03 |\n", "| MaxTestEpRet | -1.19e+03 |\n", "| MinTestEpRet | -6.63e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+03 |\n", "| AverageQ1Vals | -617 |\n", "| StdQ1Vals | 197 |\n", "| MaxQ1Vals | -93.1 |\n", "| MinQ1Vals | -1.45e+03 |\n", "| AverageQ2Vals | -617 |\n", "| StdQ2Vals | 197 |\n", "| MaxQ2Vals | -90.1 |\n", "| MinQ2Vals | -1.46e+03 |\n", "| AverageLogPi | 2.83 |\n", "| StdLogPi | 1.32 |\n", "| MaxLogPi | 14 |\n", "| MinLogPi | -7.4 |\n", "| LossPi | 599 |\n", "| LossQ | 4.79e+03 |\n", "| Time | 29 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 4 |\n", "| AverageEpRet | -7e+03 |\n", "| StdEpRet | 959 |\n", "| MaxEpRet | -5.27e+03 |\n", "| MinEpRet | -9.54e+03 |\n", "| AverageTestEpRet | -3.01e+03 |\n", "| StdTestEpRet | 963 |\n", "| MaxTestEpRet | -1.15e+03 |\n", "| MinTestEpRet | -4.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+03 |\n", "| AverageQ1Vals | -895 |\n", "| StdQ1Vals | 247 |\n", "| MaxQ1Vals | -212 |\n", "| MinQ1Vals | -2.02e+03 |\n", "| AverageQ2Vals | -895 |\n", "| StdQ2Vals | 247 |\n", "| MaxQ2Vals | -208 |\n", "| MinQ2Vals | -2.03e+03 |\n", "| AverageLogPi | 3.22 |\n", "| StdLogPi | 1.59 |\n", "| MaxLogPi | 17.6 |\n", "| MinLogPi | -7.79 |\n", "| LossPi | 873 |\n", "| LossQ | 8.24e+03 |\n", "| Time | 40.7 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 5 |\n", "| AverageEpRet | -6.77e+03 |\n", "| StdEpRet | 1.58e+03 |\n", "| MaxEpRet | -4.25e+03 |\n", "| MinEpRet | -9.61e+03 |\n", "| AverageTestEpRet | -2.4e+03 |\n", "| StdTestEpRet | 1.95e+03 |\n", "| MaxTestEpRet | -497 |\n", "| MinTestEpRet | -6.72e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+03 |\n", "| AverageQ1Vals | -1.1e+03 |\n", "| StdQ1Vals | 280 |\n", "| MaxQ1Vals | -355 |\n", "| MinQ1Vals | -2.33e+03 |\n", "| AverageQ2Vals | -1.1e+03 |\n", "| StdQ2Vals | 280 |\n", "| MaxQ2Vals | -347 |\n", "| MinQ2Vals | -2.33e+03 |\n", "| AverageLogPi | 3.5 |\n", "| StdLogPi | 1.73 |\n", "| MaxLogPi | 23.4 |\n", "| MinLogPi | -8.29 |\n", "| LossPi | 1.07e+03 |\n", "| LossQ | 1.12e+04 |\n", "| Time | 52.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 6 |\n", "| AverageEpRet | -6.36e+03 |\n", "| StdEpRet | 1.42e+03 |\n", "| MaxEpRet | -3.15e+03 |\n", "| MinEpRet | -8.3e+03 |\n", "| AverageTestEpRet | -3.23e+03 |\n", "| StdTestEpRet | 1.05e+03 |\n", "| MaxTestEpRet | -1.15e+03 |\n", "| MinTestEpRet | -5.08e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+03 |\n", "| AverageQ1Vals | -1.27e+03 |\n", "| StdQ1Vals | 305 |\n", "| MaxQ1Vals | -454 |\n", "| MinQ1Vals | -2.52e+03 |\n", "| AverageQ2Vals | -1.27e+03 |\n", "| StdQ2Vals | 305 |\n", "| MaxQ2Vals | -454 |\n", "| MinQ2Vals | -2.51e+03 |\n", "| AverageLogPi | 3.42 |\n", "| StdLogPi | 1.56 |\n", "| MaxLogPi | 19.3 |\n", "| MinLogPi | -10.4 |\n", "| LossPi | 1.24e+03 |\n", "| LossQ | 1.26e+04 |\n", "| Time | 63.9 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 7 |\n", "| AverageEpRet | -2.58e+03 |\n", "| StdEpRet | 1.97e+03 |\n", "| MaxEpRet | -201 |\n", "| MinEpRet | -7.15e+03 |\n", "| AverageTestEpRet | -2.99e+03 |\n", "| StdTestEpRet | 1.57e+03 |\n", "| MaxTestEpRet | -964 |\n", "| MinTestEpRet | -5.67e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.15e+04 |\n", "| AverageQ1Vals | -1.4e+03 |\n", "| StdQ1Vals | 324 |\n", "| MaxQ1Vals | -551 |\n", "| MinQ1Vals | -2.7e+03 |\n", "| AverageQ2Vals | -1.4e+03 |\n", "| StdQ2Vals | 324 |\n", "| MaxQ2Vals | -549 |\n", "| MinQ2Vals | -2.69e+03 |\n", "| AverageLogPi | 3.47 |\n", "| StdLogPi | 1.64 |\n", "| MaxLogPi | 15.8 |\n", "| MinLogPi | -8.49 |\n", "| LossPi | 1.38e+03 |\n", "| LossQ | 1.28e+04 |\n", "| Time | 75.7 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 8 |\n", "| AverageEpRet | -2.61e+03 |\n", "| StdEpRet | 1.69e+03 |\n", "| MaxEpRet | -404 |\n", "| MinEpRet | -5.77e+03 |\n", "| AverageTestEpRet | -2.44e+03 |\n", "| StdTestEpRet | 2.19e+03 |\n", "| MaxTestEpRet | -366 |\n", "| MinTestEpRet | -7.24e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.32e+04 |\n", "| AverageQ1Vals | -1.5e+03 |\n", "| StdQ1Vals | 332 |\n", "| MaxQ1Vals | -673 |\n", "| MinQ1Vals | -2.88e+03 |\n", "| AverageQ2Vals | -1.5e+03 |\n", "| StdQ2Vals | 332 |\n", "| MaxQ2Vals | -673 |\n", "| MinQ2Vals | -2.87e+03 |\n", "| AverageLogPi | 3.34 |\n", "| StdLogPi | 1.47 |\n", "| MaxLogPi | 11 |\n", "| MinLogPi | -10 |\n", "| LossPi | 1.47e+03 |\n", "| LossQ | 1.22e+04 |\n", "| Time | 86.8 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 9 |\n", "| AverageEpRet | -2.8e+03 |\n", "| StdEpRet | 2.15e+03 |\n", "| MaxEpRet | -388 |\n", "| MinEpRet | -8.4e+03 |\n", "| AverageTestEpRet | -1.71e+03 |\n", "| StdTestEpRet | 1.22e+03 |\n", "| MaxTestEpRet | -561 |\n", "| MinTestEpRet | -4.08e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.48e+04 |\n", "| AverageQ1Vals | -1.58e+03 |\n", "| StdQ1Vals | 351 |\n", "| MaxQ1Vals | -764 |\n", "| MinQ1Vals | -2.98e+03 |\n", "| AverageQ2Vals | -1.58e+03 |\n", "| StdQ2Vals | 351 |\n", "| MaxQ2Vals | -758 |\n", "| MinQ2Vals | -2.98e+03 |\n", "| AverageLogPi | 3.41 |\n", "| StdLogPi | 1.47 |\n", "| MaxLogPi | 12.9 |\n", "| MinLogPi | -8.49 |\n", "| LossPi | 1.56e+03 |\n", "| LossQ | 1.22e+04 |\n", "| Time | 98.7 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 10 |\n", "| AverageEpRet | -2.21e+03 |\n", "| StdEpRet | 1.68e+03 |\n", "| MaxEpRet | -320 |\n", "| MinEpRet | -6.11e+03 |\n", "| AverageTestEpRet | -2.59e+03 |\n", "| StdTestEpRet | 1.79e+03 |\n", "| MaxTestEpRet | -434 |\n", "| MinTestEpRet | -4.84e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+04 |\n", "| AverageQ1Vals | -1.63e+03 |\n", "| StdQ1Vals | 366 |\n", "| MaxQ1Vals | -757 |\n", "| MinQ1Vals | -3.08e+03 |\n", "| AverageQ2Vals | -1.63e+03 |\n", "| StdQ2Vals | 365 |\n", "| MaxQ2Vals | -754 |\n", "| MinQ2Vals | -3.08e+03 |\n", "| AverageLogPi | 3.53 |\n", "| StdLogPi | 1.48 |\n", "| MaxLogPi | 12.7 |\n", "| MinLogPi | -10.4 |\n", "| LossPi | 1.61e+03 |\n", "| LossQ | 1.24e+04 |\n", "| Time | 110 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 11 |\n", "| AverageEpRet | -2.06e+03 |\n", "| StdEpRet | 1.12e+03 |\n", "| MaxEpRet | -521 |\n", "| MinEpRet | -4.23e+03 |\n", "| AverageTestEpRet | -1.78e+03 |\n", "| StdTestEpRet | 1.74e+03 |\n", "| MaxTestEpRet | -386 |\n", "| MinTestEpRet | -5.57e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.81e+04 |\n", "| AverageQ1Vals | -1.67e+03 |\n", "| StdQ1Vals | 373 |\n", "| MaxQ1Vals | -813 |\n", "| MinQ1Vals | -3.15e+03 |\n", "| AverageQ2Vals | -1.67e+03 |\n", "| StdQ2Vals | 372 |\n", "| MaxQ2Vals | -808 |\n", "| MinQ2Vals | -3.14e+03 |\n", "| AverageLogPi | 3.52 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 13.8 |\n", "| MinLogPi | -9.94 |\n", "| LossPi | 1.65e+03 |\n", "| LossQ | 1.2e+04 |\n", "| Time | 122 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 12 |\n", "| AverageEpRet | -1.93e+03 |\n", "| StdEpRet | 1.05e+03 |\n", "| MaxEpRet | -481 |\n", "| MinEpRet | -3.54e+03 |\n", "| AverageTestEpRet | -1.56e+03 |\n", "| StdTestEpRet | 2.05e+03 |\n", "| MaxTestEpRet | -103 |\n", "| MinTestEpRet | -7.17e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.98e+04 |\n", "| AverageQ1Vals | -1.71e+03 |\n", "| StdQ1Vals | 373 |\n", "| MaxQ1Vals | -859 |\n", "| MinQ1Vals | -3.18e+03 |\n", "| AverageQ2Vals | -1.71e+03 |\n", "| StdQ2Vals | 373 |\n", "| MaxQ2Vals | -856 |\n", "| MinQ2Vals | -3.17e+03 |\n", "| AverageLogPi | 3.56 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 13.7 |\n", "| MinLogPi | -8.51 |\n", "| LossPi | 1.69e+03 |\n", "| LossQ | 1.2e+04 |\n", "| Time | 134 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 13 |\n", "| AverageEpRet | -1.77e+03 |\n", "| StdEpRet | 1.59e+03 |\n", "| MaxEpRet | -184 |\n", "| MinEpRet | -5.56e+03 |\n", "| AverageTestEpRet | -1.91e+03 |\n", "| StdTestEpRet | 1.73e+03 |\n", "| MaxTestEpRet | -166 |\n", "| MinTestEpRet | -4.78e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.14e+04 |\n", "| AverageQ1Vals | -1.72e+03 |\n", "| StdQ1Vals | 383 |\n", "| MaxQ1Vals | -888 |\n", "| MinQ1Vals | -3.25e+03 |\n", "| AverageQ2Vals | -1.72e+03 |\n", "| StdQ2Vals | 382 |\n", "| MaxQ2Vals | -887 |\n", "| MinQ2Vals | -3.24e+03 |\n", "| AverageLogPi | 3.54 |\n", "| StdLogPi | 1.43 |\n", "| MaxLogPi | 12.1 |\n", "| MinLogPi | -8.31 |\n", "| LossPi | 1.71e+03 |\n", "| LossQ | 1.2e+04 |\n", "| Time | 145 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 14 |\n", "| AverageEpRet | -1.55e+03 |\n", "| StdEpRet | 1.65e+03 |\n", "| MaxEpRet | -199 |\n", "| MinEpRet | -6.31e+03 |\n", "| AverageTestEpRet | -1.26e+03 |\n", "| StdTestEpRet | 1.34e+03 |\n", "| MaxTestEpRet | -237 |\n", "| MinTestEpRet | -4.8e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.31e+04 |\n", "| AverageQ1Vals | -1.73e+03 |\n", "| StdQ1Vals | 390 |\n", "| MaxQ1Vals | -893 |\n", "| MinQ1Vals | -3.25e+03 |\n", "| AverageQ2Vals | -1.73e+03 |\n", "| StdQ2Vals | 390 |\n", "| MaxQ2Vals | -893 |\n", "| MinQ2Vals | -3.24e+03 |\n", "| AverageLogPi | 3.67 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 15.8 |\n", "| MinLogPi | -7.82 |\n", "| LossPi | 1.71e+03 |\n", "| LossQ | 1.2e+04 |\n", "| Time | 157 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 15 |\n", "| AverageEpRet | -620 |\n", "| StdEpRet | 373 |\n", "| MaxEpRet | -258 |\n", "| MinEpRet | -1.65e+03 |\n", "| AverageTestEpRet | -1.16e+03 |\n", "| StdTestEpRet | 1.05e+03 |\n", "| MaxTestEpRet | -146 |\n", "| MinTestEpRet | -3.81e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.47e+04 |\n", "| AverageQ1Vals | -1.72e+03 |\n", "| StdQ1Vals | 396 |\n", "| MaxQ1Vals | -885 |\n", "| MinQ1Vals | -3.3e+03 |\n", "| AverageQ2Vals | -1.72e+03 |\n", "| StdQ2Vals | 396 |\n", "| MaxQ2Vals | -883 |\n", "| MinQ2Vals | -3.31e+03 |\n", "| AverageLogPi | 3.72 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 13.2 |\n", "| MinLogPi | -8.63 |\n", "| LossPi | 1.7e+03 |\n", "| LossQ | 1.14e+04 |\n", "| Time | 169 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 16 |\n", "| AverageEpRet | -763 |\n", "| StdEpRet | 796 |\n", "| MaxEpRet | -80.9 |\n", "| MinEpRet | -3.16e+03 |\n", "| AverageTestEpRet | -1.25e+03 |\n", "| StdTestEpRet | 1.06e+03 |\n", "| MaxTestEpRet | -142 |\n", "| MinTestEpRet | -3.04e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.64e+04 |\n", "| AverageQ1Vals | -1.69e+03 |\n", "| StdQ1Vals | 399 |\n", "| MaxQ1Vals | -869 |\n", "| MinQ1Vals | -3.33e+03 |\n", "| AverageQ2Vals | -1.69e+03 |\n", "| StdQ2Vals | 399 |\n", "| MaxQ2Vals | -867 |\n", "| MinQ2Vals | -3.33e+03 |\n", "| AverageLogPi | 3.77 |\n", "| StdLogPi | 1.52 |\n", "| MaxLogPi | 13.6 |\n", "| MinLogPi | -6.79 |\n", "| LossPi | 1.68e+03 |\n", "| LossQ | 1.2e+04 |\n", "| Time | 181 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 17 |\n", "| AverageEpRet | -1.12e+03 |\n", "| StdEpRet | 950 |\n", "| MaxEpRet | -76.5 |\n", "| MinEpRet | -3.22e+03 |\n", "| AverageTestEpRet | -846 |\n", "| StdTestEpRet | 779 |\n", "| MaxTestEpRet | -185 |\n", "| MinTestEpRet | -2.96e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.8e+04 |\n", "| AverageQ1Vals | -1.66e+03 |\n", "| StdQ1Vals | 404 |\n", "| MaxQ1Vals | -851 |\n", "| MinQ1Vals | -3.32e+03 |\n", "| AverageQ2Vals | -1.66e+03 |\n", "| StdQ2Vals | 404 |\n", "| MaxQ2Vals | -848 |\n", "| MinQ2Vals | -3.33e+03 |\n", "| AverageLogPi | 3.89 |\n", "| StdLogPi | 1.54 |\n", "| MaxLogPi | 15.2 |\n", "| MinLogPi | -7.62 |\n", "| LossPi | 1.65e+03 |\n", "| LossQ | 1.2e+04 |\n", "| Time | 193 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 18 |\n", "| AverageEpRet | -992 |\n", "| StdEpRet | 899 |\n", "| MaxEpRet | -70.1 |\n", "| MinEpRet | -3.52e+03 |\n", "| AverageTestEpRet | -992 |\n", "| StdTestEpRet | 794 |\n", "| MaxTestEpRet | -114 |\n", "| MinTestEpRet | -3.16e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.97e+04 |\n", "| AverageQ1Vals | -1.62e+03 |\n", "| StdQ1Vals | 403 |\n", "| MaxQ1Vals | -822 |\n", "| MinQ1Vals | -3.29e+03 |\n", "| AverageQ2Vals | -1.62e+03 |\n", "| StdQ2Vals | 403 |\n", "| MaxQ2Vals | -819 |\n", "| MinQ2Vals | -3.3e+03 |\n", "| AverageLogPi | 3.92 |\n", "| StdLogPi | 1.53 |\n", "| MaxLogPi | 16.3 |\n", "| MinLogPi | -7.69 |\n", "| LossPi | 1.61e+03 |\n", "| LossQ | 1.13e+04 |\n", "| Time | 204 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 19 |\n", "| AverageEpRet | -627 |\n", "| StdEpRet | 514 |\n", "| MaxEpRet | -98.9 |\n", "| MinEpRet | -2.01e+03 |\n", "| AverageTestEpRet | -921 |\n", "| StdTestEpRet | 820 |\n", "| MaxTestEpRet | -59.4 |\n", "| MinTestEpRet | -3e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.13e+04 |\n", "| AverageQ1Vals | -1.58e+03 |\n", "| StdQ1Vals | 410 |\n", "| MaxQ1Vals | -786 |\n", "| MinQ1Vals | -3.25e+03 |\n", "| AverageQ2Vals | -1.58e+03 |\n", "| StdQ2Vals | 410 |\n", "| MaxQ2Vals | -784 |\n", "| MinQ2Vals | -3.25e+03 |\n", "| AverageLogPi | 3.99 |\n", "| StdLogPi | 1.57 |\n", "| MaxLogPi | 19.4 |\n", "| MinLogPi | -9.84 |\n", "| LossPi | 1.56e+03 |\n", "| LossQ | 1.1e+04 |\n", "| Time | 216 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 20 |\n", "| AverageEpRet | -1.01e+03 |\n", "| StdEpRet | 775 |\n", "| MaxEpRet | -87.4 |\n", "| MinEpRet | -3.24e+03 |\n", "| AverageTestEpRet | -1.19e+03 |\n", "| StdTestEpRet | 1.02e+03 |\n", "| MaxTestEpRet | -180 |\n", "| MinTestEpRet | -3.26e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+04 |\n", "| AverageQ1Vals | -1.52e+03 |\n", "| StdQ1Vals | 416 |\n", "| MaxQ1Vals | -752 |\n", "| MinQ1Vals | -3.23e+03 |\n", "| AverageQ2Vals | -1.52e+03 |\n", "| StdQ2Vals | 416 |\n", "| MaxQ2Vals | -749 |\n", "| MinQ2Vals | -3.23e+03 |\n", "| AverageLogPi | 4 |\n", "| StdLogPi | 1.52 |\n", "| MaxLogPi | 16.5 |\n", "| MinLogPi | -7.32 |\n", "| LossPi | 1.51e+03 |\n", "| LossQ | 1.1e+04 |\n", "| Time | 227 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 21 |\n", "| AverageEpRet | -763 |\n", "| StdEpRet | 711 |\n", "| MaxEpRet | -63.6 |\n", "| MinEpRet | -2.73e+03 |\n", "| AverageTestEpRet | -669 |\n", "| StdTestEpRet | 650 |\n", "| MaxTestEpRet | -77.2 |\n", "| MinTestEpRet | -2.45e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.46e+04 |\n", "| AverageQ1Vals | -1.47e+03 |\n", "| StdQ1Vals | 417 |\n", "| MaxQ1Vals | -707 |\n", "| MinQ1Vals | -3.21e+03 |\n", "| AverageQ2Vals | -1.47e+03 |\n", "| StdQ2Vals | 417 |\n", "| MaxQ2Vals | -704 |\n", "| MinQ2Vals | -3.22e+03 |\n", "| AverageLogPi | 4.25 |\n", "| StdLogPi | 1.63 |\n", "| MaxLogPi | 16.6 |\n", "| MinLogPi | -9.13 |\n", "| LossPi | 1.45e+03 |\n", "| LossQ | 1.05e+04 |\n", "| Time | 238 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 22 |\n", "| AverageEpRet | -493 |\n", "| StdEpRet | 257 |\n", "| MaxEpRet | -84.8 |\n", "| MinEpRet | -960 |\n", "| AverageTestEpRet | -765 |\n", "| StdTestEpRet | 398 |\n", "| MaxTestEpRet | -51.7 |\n", "| MinTestEpRet | -1.4e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.63e+04 |\n", "| AverageQ1Vals | -1.42e+03 |\n", "| StdQ1Vals | 418 |\n", "| MaxQ1Vals | -671 |\n", "| MinQ1Vals | -3.18e+03 |\n", "| AverageQ2Vals | -1.42e+03 |\n", "| StdQ2Vals | 417 |\n", "| MaxQ2Vals | -670 |\n", "| MinQ2Vals | -3.19e+03 |\n", "| AverageLogPi | 4.26 |\n", "| StdLogPi | 1.65 |\n", "| MaxLogPi | 16 |\n", "| MinLogPi | -6.41 |\n", "| LossPi | 1.4e+03 |\n", "| LossQ | 1.02e+04 |\n", "| Time | 250 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 23 |\n", "| AverageEpRet | -803 |\n", "| StdEpRet | 684 |\n", "| MaxEpRet | -156 |\n", "| MinEpRet | -2.58e+03 |\n", "| AverageTestEpRet | -705 |\n", "| StdTestEpRet | 570 |\n", "| MaxTestEpRet | -177 |\n", "| MinTestEpRet | -1.79e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.79e+04 |\n", "| AverageQ1Vals | -1.36e+03 |\n", "| StdQ1Vals | 415 |\n", "| MaxQ1Vals | -634 |\n", "| MinQ1Vals | -3.11e+03 |\n", "| AverageQ2Vals | -1.36e+03 |\n", "| StdQ2Vals | 415 |\n", "| MaxQ2Vals | -633 |\n", "| MinQ2Vals | -3.12e+03 |\n", "| AverageLogPi | 4.3 |\n", "| StdLogPi | 1.61 |\n", "| MaxLogPi | 18.7 |\n", "| MinLogPi | -8.29 |\n", "| LossPi | 1.35e+03 |\n", "| LossQ | 9.95e+03 |\n", "| Time | 261 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 24 |\n", "| AverageEpRet | -831 |\n", "| StdEpRet | 721 |\n", "| MaxEpRet | -125 |\n", "| MinEpRet | -3.04e+03 |\n", "| AverageTestEpRet | -896 |\n", "| StdTestEpRet | 811 |\n", "| MaxTestEpRet | -41.3 |\n", "| MinTestEpRet | -2.91e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.96e+04 |\n", "| AverageQ1Vals | -1.31e+03 |\n", "| StdQ1Vals | 413 |\n", "| MaxQ1Vals | -595 |\n", "| MinQ1Vals | -2.99e+03 |\n", "| AverageQ2Vals | -1.31e+03 |\n", "| StdQ2Vals | 413 |\n", "| MaxQ2Vals | -596 |\n", "| MinQ2Vals | -3e+03 |\n", "| AverageLogPi | 4.32 |\n", "| StdLogPi | 1.62 |\n", "| MaxLogPi | 17.2 |\n", "| MinLogPi | -8.05 |\n", "| LossPi | 1.29e+03 |\n", "| LossQ | 9.49e+03 |\n", "| Time | 273 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 25 |\n", "| AverageEpRet | -686 |\n", "| StdEpRet | 699 |\n", "| MaxEpRet | -124 |\n", "| MinEpRet | -2.36e+03 |\n", "| AverageTestEpRet | -1.26e+03 |\n", "| StdTestEpRet | 1.17e+03 |\n", "| MaxTestEpRet | -210 |\n", "| MinTestEpRet | -4.37e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.12e+04 |\n", "| AverageQ1Vals | -1.26e+03 |\n", "| StdQ1Vals | 410 |\n", "| MaxQ1Vals | -555 |\n", "| MinQ1Vals | -3.07e+03 |\n", "| AverageQ2Vals | -1.26e+03 |\n", "| StdQ2Vals | 409 |\n", "| MaxQ2Vals | -557 |\n", "| MinQ2Vals | -3.07e+03 |\n", "| AverageLogPi | 4.38 |\n", "| StdLogPi | 1.66 |\n", "| MaxLogPi | 17.7 |\n", "| MinLogPi | -7.55 |\n", "| LossPi | 1.24e+03 |\n", "| LossQ | 9.55e+03 |\n", "| Time | 285 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 26 |\n", "| AverageEpRet | -566 |\n", "| StdEpRet | 624 |\n", "| MaxEpRet | -27.8 |\n", "| MinEpRet | -2.76e+03 |\n", "| AverageTestEpRet | -927 |\n", "| StdTestEpRet | 880 |\n", "| MaxTestEpRet | -18 |\n", "| MinTestEpRet | -3.3e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.29e+04 |\n", "| AverageQ1Vals | -1.2e+03 |\n", "| StdQ1Vals | 401 |\n", "| MaxQ1Vals | -527 |\n", "| MinQ1Vals | -2.92e+03 |\n", "| AverageQ2Vals | -1.2e+03 |\n", "| StdQ2Vals | 401 |\n", "| MaxQ2Vals | -528 |\n", "| MinQ2Vals | -2.92e+03 |\n", "| AverageLogPi | 4.29 |\n", "| StdLogPi | 1.62 |\n", "| MaxLogPi | 18.3 |\n", "| MinLogPi | -10.1 |\n", "| LossPi | 1.19e+03 |\n", "| LossQ | 8.8e+03 |\n", "| Time | 297 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 27 |\n", "| AverageEpRet | -957 |\n", "| StdEpRet | 628 |\n", "| MaxEpRet | -197 |\n", "| MinEpRet | -2.25e+03 |\n", "| AverageTestEpRet | -1.1e+03 |\n", "| StdTestEpRet | 1.07e+03 |\n", "| MaxTestEpRet | -193 |\n", "| MinTestEpRet | -3.48e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.45e+04 |\n", "| AverageQ1Vals | -1.16e+03 |\n", "| StdQ1Vals | 399 |\n", "| MaxQ1Vals | -492 |\n", "| MinQ1Vals | -2.94e+03 |\n", "| AverageQ2Vals | -1.16e+03 |\n", "| StdQ2Vals | 399 |\n", "| MaxQ2Vals | -494 |\n", "| MinQ2Vals | -2.94e+03 |\n", "| AverageLogPi | 4.34 |\n", "| StdLogPi | 1.61 |\n", "| MaxLogPi | 16.3 |\n", "| MinLogPi | -6.98 |\n", "| LossPi | 1.15e+03 |\n", "| LossQ | 8.3e+03 |\n", "| Time | 308 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 28 |\n", "| AverageEpRet | -737 |\n", "| StdEpRet | 484 |\n", "| MaxEpRet | -77.4 |\n", "| MinEpRet | -1.73e+03 |\n", "| AverageTestEpRet | -581 |\n", "| StdTestEpRet | 322 |\n", "| MaxTestEpRet | -131 |\n", "| MinTestEpRet | -1.33e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.62e+04 |\n", "| AverageQ1Vals | -1.11e+03 |\n", "| StdQ1Vals | 396 |\n", "| MaxQ1Vals | -467 |\n", "| MinQ1Vals | -2.9e+03 |\n", "| AverageQ2Vals | -1.11e+03 |\n", "| StdQ2Vals | 396 |\n", "| MaxQ2Vals | -469 |\n", "| MinQ2Vals | -2.9e+03 |\n", "| AverageLogPi | 4.33 |\n", "| StdLogPi | 1.6 |\n", "| MaxLogPi | 17.5 |\n", "| MinLogPi | -7.95 |\n", "| LossPi | 1.1e+03 |\n", "| LossQ | 7.9e+03 |\n", "| Time | 320 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 29 |\n", "| AverageEpRet | -737 |\n", "| StdEpRet | 341 |\n", "| MaxEpRet | -269 |\n", "| MinEpRet | -1.6e+03 |\n", "| AverageTestEpRet | -858 |\n", "| StdTestEpRet | 578 |\n", "| MaxTestEpRet | -168 |\n", "| MinTestEpRet | -2.09e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.78e+04 |\n", "| AverageQ1Vals | -1.07e+03 |\n", "| StdQ1Vals | 391 |\n", "| MaxQ1Vals | -437 |\n", "| MinQ1Vals | -2.88e+03 |\n", "| AverageQ2Vals | -1.07e+03 |\n", "| StdQ2Vals | 391 |\n", "| MaxQ2Vals | -440 |\n", "| MinQ2Vals | -2.88e+03 |\n", "| AverageLogPi | 4.4 |\n", "| StdLogPi | 1.61 |\n", "| MaxLogPi | 16.5 |\n", "| MinLogPi | -8.41 |\n", "| LossPi | 1.06e+03 |\n", "| LossQ | 7.62e+03 |\n", "| Time | 332 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 30 |\n", "| AverageEpRet | -917 |\n", "| StdEpRet | 670 |\n", "| MaxEpRet | -152 |\n", "| MinEpRet | -2.36e+03 |\n", "| AverageTestEpRet | -792 |\n", "| StdTestEpRet | 530 |\n", "| MaxTestEpRet | -192 |\n", "| MinTestEpRet | -1.69e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+04 |\n", "| AverageQ1Vals | -1.03e+03 |\n", "| StdQ1Vals | 391 |\n", "| MaxQ1Vals | -415 |\n", "| MinQ1Vals | -2.86e+03 |\n", "| AverageQ2Vals | -1.03e+03 |\n", "| StdQ2Vals | 390 |\n", "| MaxQ2Vals | -415 |\n", "| MinQ2Vals | -2.86e+03 |\n", "| AverageLogPi | 4.41 |\n", "| StdLogPi | 1.61 |\n", "| MaxLogPi | 18.7 |\n", "| MinLogPi | -9.6 |\n", "| LossPi | 1.01e+03 |\n", "| LossQ | 7.63e+03 |\n", "| Time | 343 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 31 |\n", "| AverageEpRet | -927 |\n", "| StdEpRet | 705 |\n", "| MaxEpRet | -111 |\n", "| MinEpRet | -3.02e+03 |\n", "| AverageTestEpRet | -623 |\n", "| StdTestEpRet | 434 |\n", "| MaxTestEpRet | -161 |\n", "| MinTestEpRet | -1.58e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.11e+04 |\n", "| AverageQ1Vals | -994 |\n", "| StdQ1Vals | 388 |\n", "| MaxQ1Vals | -388 |\n", "| MinQ1Vals | -2.84e+03 |\n", "| AverageQ2Vals | -994 |\n", "| StdQ2Vals | 388 |\n", "| MaxQ2Vals | -389 |\n", "| MinQ2Vals | -2.84e+03 |\n", "| AverageLogPi | 4.42 |\n", "| StdLogPi | 1.6 |\n", "| MaxLogPi | 15.7 |\n", "| MinLogPi | -7.39 |\n", "| LossPi | 981 |\n", "| LossQ | 7.38e+03 |\n", "| Time | 355 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 32 |\n", "| AverageEpRet | -555 |\n", "| StdEpRet | 294 |\n", "| MaxEpRet | -63.6 |\n", "| MinEpRet | -1.01e+03 |\n", "| AverageTestEpRet | -533 |\n", "| StdTestEpRet | 90.9 |\n", "| MaxTestEpRet | -300 |\n", "| MinTestEpRet | -653 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.28e+04 |\n", "| AverageQ1Vals | -961 |\n", "| StdQ1Vals | 383 |\n", "| MaxQ1Vals | -369 |\n", "| MinQ1Vals | -2.76e+03 |\n", "| AverageQ2Vals | -961 |\n", "| StdQ2Vals | 383 |\n", "| MaxQ2Vals | -368 |\n", "| MinQ2Vals | -2.77e+03 |\n", "| AverageLogPi | 4.41 |\n", "| StdLogPi | 1.57 |\n", "| MaxLogPi | 16.7 |\n", "| MinLogPi | -7.98 |\n", "| LossPi | 950 |\n", "| LossQ | 7.09e+03 |\n", "| Time | 367 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 33 |\n", "| AverageEpRet | -968 |\n", "| StdEpRet | 414 |\n", "| MaxEpRet | -137 |\n", "| MinEpRet | -1.88e+03 |\n", "| AverageTestEpRet | -457 |\n", "| StdTestEpRet | 250 |\n", "| MaxTestEpRet | -79.5 |\n", "| MinTestEpRet | -864 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.44e+04 |\n", "| AverageQ1Vals | -929 |\n", "| StdQ1Vals | 381 |\n", "| MaxQ1Vals | -343 |\n", "| MinQ1Vals | -2.69e+03 |\n", "| AverageQ2Vals | -929 |\n", "| StdQ2Vals | 381 |\n", "| MaxQ2Vals | -344 |\n", "| MinQ2Vals | -2.69e+03 |\n", "| AverageLogPi | 4.43 |\n", "| StdLogPi | 1.55 |\n", "| MaxLogPi | 17.9 |\n", "| MinLogPi | -7.49 |\n", "| LossPi | 918 |\n", "| LossQ | 7.13e+03 |\n", "| Time | 378 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 34 |\n", "| AverageEpRet | -697 |\n", "| StdEpRet | 718 |\n", "| MaxEpRet | -112 |\n", "| MinEpRet | -2.68e+03 |\n", "| AverageTestEpRet | -933 |\n", "| StdTestEpRet | 565 |\n", "| MaxTestEpRet | -437 |\n", "| MinTestEpRet | -2.14e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.61e+04 |\n", "| AverageQ1Vals | -901 |\n", "| StdQ1Vals | 380 |\n", "| MaxQ1Vals | -325 |\n", "| MinQ1Vals | -2.73e+03 |\n", "| AverageQ2Vals | -901 |\n", "| StdQ2Vals | 380 |\n", "| MaxQ2Vals | -326 |\n", "| MinQ2Vals | -2.73e+03 |\n", "| AverageLogPi | 4.42 |\n", "| StdLogPi | 1.52 |\n", "| MaxLogPi | 17.1 |\n", "| MinLogPi | -9.68 |\n", "| LossPi | 891 |\n", "| LossQ | 7.08e+03 |\n", "| Time | 390 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 35 |\n", "| AverageEpRet | -758 |\n", "| StdEpRet | 383 |\n", "| MaxEpRet | -96.3 |\n", "| MinEpRet | -1.69e+03 |\n", "| AverageTestEpRet | -557 |\n", "| StdTestEpRet | 380 |\n", "| MaxTestEpRet | -24 |\n", "| MinTestEpRet | -1.2e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.77e+04 |\n", "| AverageQ1Vals | -872 |\n", "| StdQ1Vals | 379 |\n", "| MaxQ1Vals | -304 |\n", "| MinQ1Vals | -2.58e+03 |\n", "| AverageQ2Vals | -872 |\n", "| StdQ2Vals | 379 |\n", "| MaxQ2Vals | -304 |\n", "| MinQ2Vals | -2.59e+03 |\n", "| AverageLogPi | 4.5 |\n", "| StdLogPi | 1.51 |\n", "| MaxLogPi | 16.4 |\n", "| MinLogPi | -9.06 |\n", "| LossPi | 862 |\n", "| LossQ | 6.48e+03 |\n", "| Time | 401 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 36 |\n", "| AverageEpRet | -585 |\n", "| StdEpRet | 376 |\n", "| MaxEpRet | -74.2 |\n", "| MinEpRet | -1.18e+03 |\n", "| AverageTestEpRet | -796 |\n", "| StdTestEpRet | 431 |\n", "| MaxTestEpRet | -135 |\n", "| MinTestEpRet | -1.31e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.94e+04 |\n", "| AverageQ1Vals | -844 |\n", "| StdQ1Vals | 378 |\n", "| MaxQ1Vals | -288 |\n", "| MinQ1Vals | -2.66e+03 |\n", "| AverageQ2Vals | -844 |\n", "| StdQ2Vals | 378 |\n", "| MaxQ2Vals | -290 |\n", "| MinQ2Vals | -2.67e+03 |\n", "| AverageLogPi | 4.48 |\n", "| StdLogPi | 1.5 |\n", "| MaxLogPi | 18.5 |\n", "| MinLogPi | -6.94 |\n", "| LossPi | 834 |\n", "| LossQ | 6.48e+03 |\n", "| Time | 413 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 37 |\n", "| AverageEpRet | -941 |\n", "| StdEpRet | 469 |\n", "| MaxEpRet | -312 |\n", "| MinEpRet | -2.22e+03 |\n", "| AverageTestEpRet | -966 |\n", "| StdTestEpRet | 741 |\n", "| MaxTestEpRet | -193 |\n", "| MinTestEpRet | -2.48e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.1e+04 |\n", "| AverageQ1Vals | -822 |\n", "| StdQ1Vals | 375 |\n", "| MaxQ1Vals | -272 |\n", "| MinQ1Vals | -2.64e+03 |\n", "| AverageQ2Vals | -822 |\n", "| StdQ2Vals | 375 |\n", "| MaxQ2Vals | -275 |\n", "| MinQ2Vals | -2.65e+03 |\n", "| AverageLogPi | 4.55 |\n", "| StdLogPi | 1.54 |\n", "| MaxLogPi | 18.7 |\n", "| MinLogPi | -7.33 |\n", "| LossPi | 813 |\n", "| LossQ | 6.27e+03 |\n", "| Time | 424 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 38 |\n", "| AverageEpRet | -927 |\n", "| StdEpRet | 545 |\n", "| MaxEpRet | -93 |\n", "| MinEpRet | -2.09e+03 |\n", "| AverageTestEpRet | -1.08e+03 |\n", "| StdTestEpRet | 621 |\n", "| MaxTestEpRet | -56.3 |\n", "| MinTestEpRet | -2.46e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.27e+04 |\n", "| AverageQ1Vals | -798 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | -255 |\n", "| MinQ1Vals | -2.63e+03 |\n", "| AverageQ2Vals | -798 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | -257 |\n", "| MinQ2Vals | -2.64e+03 |\n", "| AverageLogPi | 4.5 |\n", "| StdLogPi | 1.5 |\n", "| MaxLogPi | 16 |\n", "| MinLogPi | -6.96 |\n", "| LossPi | 789 |\n", "| LossQ | 6.28e+03 |\n", "| Time | 435 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 39 |\n", "| AverageEpRet | -701 |\n", "| StdEpRet | 611 |\n", "| MaxEpRet | -133 |\n", "| MinEpRet | -1.96e+03 |\n", "| AverageTestEpRet | -1.05e+03 |\n", "| StdTestEpRet | 634 |\n", "| MaxTestEpRet | -172 |\n", "| MinTestEpRet | -2.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.43e+04 |\n", "| AverageQ1Vals | -777 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | -243 |\n", "| MinQ1Vals | -2.63e+03 |\n", "| AverageQ2Vals | -777 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | -243 |\n", "| MinQ2Vals | -2.64e+03 |\n", "| AverageLogPi | 4.5 |\n", "| StdLogPi | 1.52 |\n", "| MaxLogPi | 16.2 |\n", "| MinLogPi | -10.8 |\n", "| LossPi | 768 |\n", "| LossQ | 6.11e+03 |\n", "| Time | 447 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 40 |\n", "| AverageEpRet | -1.16e+03 |\n", "| StdEpRet | 911 |\n", "| MaxEpRet | -114 |\n", "| MinEpRet | -3.28e+03 |\n", "| AverageTestEpRet | -1.36e+03 |\n", "| StdTestEpRet | 862 |\n", "| MaxTestEpRet | -185 |\n", "| MinTestEpRet | -2.96e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+04 |\n", "| AverageQ1Vals | -763 |\n", "| StdQ1Vals | 378 |\n", "| MaxQ1Vals | -225 |\n", "| MinQ1Vals | -2.57e+03 |\n", "| AverageQ2Vals | -763 |\n", "| StdQ2Vals | 377 |\n", "| MaxQ2Vals | -223 |\n", "| MinQ2Vals | -2.58e+03 |\n", "| AverageLogPi | 4.53 |\n", "| StdLogPi | 1.48 |\n", "| MaxLogPi | 15.5 |\n", "| MinLogPi | -8.13 |\n", "| LossPi | 755 |\n", "| LossQ | 5.96e+03 |\n", "| Time | 458 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 41 |\n", "| AverageEpRet | -631 |\n", "| StdEpRet | 448 |\n", "| MaxEpRet | -43.3 |\n", "| MinEpRet | -1.55e+03 |\n", "| AverageTestEpRet | -912 |\n", "| StdTestEpRet | 1.06e+03 |\n", "| MaxTestEpRet | -89.2 |\n", "| MinTestEpRet | -2.99e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.76e+04 |\n", "| AverageQ1Vals | -747 |\n", "| StdQ1Vals | 377 |\n", "| MaxQ1Vals | -205 |\n", "| MinQ1Vals | -2.57e+03 |\n", "| AverageQ2Vals | -747 |\n", "| StdQ2Vals | 376 |\n", "| MaxQ2Vals | -207 |\n", "| MinQ2Vals | -2.59e+03 |\n", "| AverageLogPi | 4.58 |\n", "| StdLogPi | 1.48 |\n", "| MaxLogPi | 19.1 |\n", "| MinLogPi | -6.34 |\n", "| LossPi | 739 |\n", "| LossQ | 5.96e+03 |\n", "| Time | 470 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 42 |\n", "| AverageEpRet | -789 |\n", "| StdEpRet | 513 |\n", "| MaxEpRet | -73.3 |\n", "| MinEpRet | -1.94e+03 |\n", "| AverageTestEpRet | -876 |\n", "| StdTestEpRet | 733 |\n", "| MaxTestEpRet | -259 |\n", "| MinTestEpRet | -2.92e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.93e+04 |\n", "| AverageQ1Vals | -730 |\n", "| StdQ1Vals | 376 |\n", "| MaxQ1Vals | -188 |\n", "| MinQ1Vals | -2.6e+03 |\n", "| AverageQ2Vals | -730 |\n", "| StdQ2Vals | 376 |\n", "| MaxQ2Vals | -188 |\n", "| MinQ2Vals | -2.61e+03 |\n", "| AverageLogPi | 4.62 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 20.1 |\n", "| MinLogPi | -7.47 |\n", "| LossPi | 722 |\n", "| LossQ | 5.73e+03 |\n", "| Time | 482 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 43 |\n", "| AverageEpRet | -960 |\n", "| StdEpRet | 848 |\n", "| MaxEpRet | -197 |\n", "| MinEpRet | -3.64e+03 |\n", "| AverageTestEpRet | -1.49e+03 |\n", "| StdTestEpRet | 1.93e+03 |\n", "| MaxTestEpRet | -224 |\n", "| MinTestEpRet | -6.88e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.09e+04 |\n", "| AverageQ1Vals | -718 |\n", "| StdQ1Vals | 375 |\n", "| MaxQ1Vals | -175 |\n", "| MinQ1Vals | -2.57e+03 |\n", "| AverageQ2Vals | -719 |\n", "| StdQ2Vals | 375 |\n", "| MaxQ2Vals | -177 |\n", "| MinQ2Vals | -2.6e+03 |\n", "| AverageLogPi | 4.65 |\n", "| StdLogPi | 1.53 |\n", "| MaxLogPi | 18.7 |\n", "| MinLogPi | -6.93 |\n", "| LossPi | 710 |\n", "| LossQ | 5.55e+03 |\n", "| Time | 494 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 44 |\n", "| AverageEpRet | -935 |\n", "| StdEpRet | 808 |\n", "| MaxEpRet | -128 |\n", "| MinEpRet | -2.95e+03 |\n", "| AverageTestEpRet | -774 |\n", "| StdTestEpRet | 666 |\n", "| MaxTestEpRet | -330 |\n", "| MinTestEpRet | -2.66e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.26e+04 |\n", "| AverageQ1Vals | -699 |\n", "| StdQ1Vals | 371 |\n", "| MaxQ1Vals | -157 |\n", "| MinQ1Vals | -2.49e+03 |\n", "| AverageQ2Vals | -699 |\n", "| StdQ2Vals | 371 |\n", "| MaxQ2Vals | -159 |\n", "| MinQ2Vals | -2.52e+03 |\n", "| AverageLogPi | 4.62 |\n", "| StdLogPi | 1.57 |\n", "| MaxLogPi | 20 |\n", "| MinLogPi | -6.47 |\n", "| LossPi | 691 |\n", "| LossQ | 5.25e+03 |\n", "| Time | 506 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 45 |\n", "| AverageEpRet | -762 |\n", "| StdEpRet | 855 |\n", "| MaxEpRet | -62.5 |\n", "| MinEpRet | -2.8e+03 |\n", "| AverageTestEpRet | -955 |\n", "| StdTestEpRet | 775 |\n", "| MaxTestEpRet | -212 |\n", "| MinTestEpRet | -3.03e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.42e+04 |\n", "| AverageQ1Vals | -688 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | -146 |\n", "| MinQ1Vals | -2.53e+03 |\n", "| AverageQ2Vals | -688 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | -148 |\n", "| MinQ2Vals | -2.55e+03 |\n", "| AverageLogPi | 4.65 |\n", "| StdLogPi | 1.55 |\n", "| MaxLogPi | 20.4 |\n", "| MinLogPi | -7.04 |\n", "| LossPi | 680 |\n", "| LossQ | 5.28e+03 |\n", "| Time | 517 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 46 |\n", "| AverageEpRet | -1.26e+03 |\n", "| StdEpRet | 1.09e+03 |\n", "| MaxEpRet | -127 |\n", "| MinEpRet | -3.94e+03 |\n", "| AverageTestEpRet | -667 |\n", "| StdTestEpRet | 603 |\n", "| MaxTestEpRet | -97.7 |\n", "| MinTestEpRet | -2.39e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.59e+04 |\n", "| AverageQ1Vals | -674 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | -137 |\n", "| MinQ1Vals | -2.45e+03 |\n", "| AverageQ2Vals | -674 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | -138 |\n", "| MinQ2Vals | -2.46e+03 |\n", "| AverageLogPi | 4.63 |\n", "| StdLogPi | 1.51 |\n", "| MaxLogPi | 18.7 |\n", "| MinLogPi | -7.61 |\n", "| LossPi | 667 |\n", "| LossQ | 5.34e+03 |\n", "| Time | 528 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 47 |\n", "| AverageEpRet | -755 |\n", "| StdEpRet | 598 |\n", "| MaxEpRet | -175 |\n", "| MinEpRet | -2.48e+03 |\n", "| AverageTestEpRet | -985 |\n", "| StdTestEpRet | 990 |\n", "| MaxTestEpRet | -41.1 |\n", "| MinTestEpRet | -3.57e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.75e+04 |\n", "| AverageQ1Vals | -662 |\n", "| StdQ1Vals | 373 |\n", "| MaxQ1Vals | -124 |\n", "| MinQ1Vals | -2.47e+03 |\n", "| AverageQ2Vals | -662 |\n", "| StdQ2Vals | 373 |\n", "| MaxQ2Vals | -122 |\n", "| MinQ2Vals | -2.5e+03 |\n", "| AverageLogPi | 4.7 |\n", "| StdLogPi | 1.55 |\n", "| MaxLogPi | 19.7 |\n", "| MinLogPi | -7.02 |\n", "| LossPi | 655 |\n", "| LossQ | 5.1e+03 |\n", "| Time | 540 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 48 |\n", "| AverageEpRet | -825 |\n", "| StdEpRet | 523 |\n", "| MaxEpRet | -94.8 |\n", "| MinEpRet | -2.01e+03 |\n", "| AverageTestEpRet | -785 |\n", "| StdTestEpRet | 391 |\n", "| MaxTestEpRet | -60.2 |\n", "| MinTestEpRet | -1.57e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.92e+04 |\n", "| AverageQ1Vals | -647 |\n", "| StdQ1Vals | 372 |\n", "| MaxQ1Vals | -112 |\n", "| MinQ1Vals | -2.46e+03 |\n", "| AverageQ2Vals | -647 |\n", "| StdQ2Vals | 372 |\n", "| MaxQ2Vals | -111 |\n", "| MinQ2Vals | -2.48e+03 |\n", "| AverageLogPi | 4.73 |\n", "| StdLogPi | 1.54 |\n", "| MaxLogPi | 18.9 |\n", "| MinLogPi | -8.41 |\n", "| LossPi | 640 |\n", "| LossQ | 5.21e+03 |\n", "| Time | 551 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 49 |\n", "| AverageEpRet | -1.47e+03 |\n", "| StdEpRet | 1.53e+03 |\n", "| MaxEpRet | -22.3 |\n", "| MinEpRet | -5.24e+03 |\n", "| AverageTestEpRet | -620 |\n", "| StdTestEpRet | 378 |\n", "| MaxTestEpRet | -117 |\n", "| MinTestEpRet | -1.34e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.08e+04 |\n", "| AverageQ1Vals | -636 |\n", "| StdQ1Vals | 372 |\n", "| MaxQ1Vals | -104 |\n", "| MinQ1Vals | -2.37e+03 |\n", "| AverageQ2Vals | -636 |\n", "| StdQ2Vals | 372 |\n", "| MaxQ2Vals | -107 |\n", "| MinQ2Vals | -2.39e+03 |\n", "| AverageLogPi | 4.68 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 17.8 |\n", "| MinLogPi | -6.12 |\n", "| LossPi | 630 |\n", "| LossQ | 4.81e+03 |\n", "| Time | 564 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 50 |\n", "| AverageEpRet | -754 |\n", "| StdEpRet | 561 |\n", "| MaxEpRet | -42.8 |\n", "| MinEpRet | -2.61e+03 |\n", "| AverageTestEpRet | -877 |\n", "| StdTestEpRet | 384 |\n", "| MaxTestEpRet | -352 |\n", "| MinTestEpRet | -1.37e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+04 |\n", "| AverageQ1Vals | -627 |\n", "| StdQ1Vals | 376 |\n", "| MaxQ1Vals | -96.8 |\n", "| MinQ1Vals | -2.46e+03 |\n", "| AverageQ2Vals | -627 |\n", "| StdQ2Vals | 376 |\n", "| MaxQ2Vals | -94.9 |\n", "| MinQ2Vals | -2.49e+03 |\n", "| AverageLogPi | 4.7 |\n", "| StdLogPi | 1.5 |\n", "| MaxLogPi | 17.3 |\n", "| MinLogPi | -8.68 |\n", "| LossPi | 621 |\n", "| LossQ | 5.12e+03 |\n", "| Time | 579 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 51 |\n", "| AverageEpRet | -1.01e+03 |\n", "| StdEpRet | 1.12e+03 |\n", "| MaxEpRet | -155 |\n", "| MinEpRet | -4.86e+03 |\n", "| AverageTestEpRet | -885 |\n", "| StdTestEpRet | 529 |\n", "| MaxTestEpRet | -99.4 |\n", "| MinTestEpRet | -1.8e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.41e+04 |\n", "| AverageQ1Vals | -620 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | -83.9 |\n", "| MinQ1Vals | -2.38e+03 |\n", "| AverageQ2Vals | -620 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | -78.4 |\n", "| MinQ2Vals | -2.41e+03 |\n", "| AverageLogPi | 4.72 |\n", "| StdLogPi | 1.48 |\n", "| MaxLogPi | 18.6 |\n", "| MinLogPi | -9.03 |\n", "| LossPi | 614 |\n", "| LossQ | 5e+03 |\n", "| Time | 590 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 52 |\n", "| AverageEpRet | -748 |\n", "| StdEpRet | 642 |\n", "| MaxEpRet | -102 |\n", "| MinEpRet | -2.76e+03 |\n", "| AverageTestEpRet | -961 |\n", "| StdTestEpRet | 1.04e+03 |\n", "| MaxTestEpRet | -62.5 |\n", "| MinTestEpRet | -3.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.58e+04 |\n", "| AverageQ1Vals | -609 |\n", "| StdQ1Vals | 373 |\n", "| MaxQ1Vals | -76.4 |\n", "| MinQ1Vals | -2.37e+03 |\n", "| AverageQ2Vals | -609 |\n", "| StdQ2Vals | 373 |\n", "| MaxQ2Vals | -76 |\n", "| MinQ2Vals | -2.4e+03 |\n", "| AverageLogPi | 4.69 |\n", "| StdLogPi | 1.5 |\n", "| MaxLogPi | 19.3 |\n", "| MinLogPi | -6.81 |\n", "| LossPi | 603 |\n", "| LossQ | 4.93e+03 |\n", "| Time | 601 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 53 |\n", "| AverageEpRet | -1.04e+03 |\n", "| StdEpRet | 963 |\n", "| MaxEpRet | -209 |\n", "| MinEpRet | -4.27e+03 |\n", "| AverageTestEpRet | -727 |\n", "| StdTestEpRet | 463 |\n", "| MaxTestEpRet | -48.5 |\n", "| MinTestEpRet | -1.51e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.74e+04 |\n", "| AverageQ1Vals | -602 |\n", "| StdQ1Vals | 373 |\n", "| MaxQ1Vals | -72.7 |\n", "| MinQ1Vals | -2.39e+03 |\n", "| AverageQ2Vals | -602 |\n", "| StdQ2Vals | 373 |\n", "| MaxQ2Vals | -73.3 |\n", "| MinQ2Vals | -2.42e+03 |\n", "| AverageLogPi | 4.74 |\n", "| StdLogPi | 1.51 |\n", "| MaxLogPi | 20.6 |\n", "| MinLogPi | -9.58 |\n", "| LossPi | 595 |\n", "| LossQ | 4.89e+03 |\n", "| Time | 613 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 54 |\n", "| AverageEpRet | -782 |\n", "| StdEpRet | 519 |\n", "| MaxEpRet | -92.4 |\n", "| MinEpRet | -2.31e+03 |\n", "| AverageTestEpRet | -669 |\n", "| StdTestEpRet | 557 |\n", "| MaxTestEpRet | -52.4 |\n", "| MinTestEpRet | -1.74e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.91e+04 |\n", "| AverageQ1Vals | -589 |\n", "| StdQ1Vals | 370 |\n", "| MaxQ1Vals | -67.9 |\n", "| MinQ1Vals | -2.4e+03 |\n", "| AverageQ2Vals | -589 |\n", "| StdQ2Vals | 370 |\n", "| MaxQ2Vals | -62.5 |\n", "| MinQ2Vals | -2.43e+03 |\n", "| AverageLogPi | 4.72 |\n", "| StdLogPi | 1.47 |\n", "| MaxLogPi | 20.2 |\n", "| MinLogPi | -9.21 |\n", "| LossPi | 583 |\n", "| LossQ | 4.93e+03 |\n", "| Time | 624 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 55 |\n", "| AverageEpRet | -1.12e+03 |\n", "| StdEpRet | 957 |\n", "| MaxEpRet | -45.3 |\n", "| MinEpRet | -3.57e+03 |\n", "| AverageTestEpRet | -962 |\n", "| StdTestEpRet | 456 |\n", "| MaxTestEpRet | -284 |\n", "| MinTestEpRet | -1.71e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.07e+04 |\n", "| AverageQ1Vals | -574 |\n", "| StdQ1Vals | 369 |\n", "| MaxQ1Vals | -60.5 |\n", "| MinQ1Vals | -2.39e+03 |\n", "| AverageQ2Vals | -574 |\n", "| StdQ2Vals | 369 |\n", "| MaxQ2Vals | -62.6 |\n", "| MinQ2Vals | -2.41e+03 |\n", "| AverageLogPi | 4.74 |\n", "| StdLogPi | 1.51 |\n", "| MaxLogPi | 20.6 |\n", "| MinLogPi | -9.01 |\n", "| LossPi | 568 |\n", "| LossQ | 4.75e+03 |\n", "| Time | 635 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 56 |\n", "| AverageEpRet | -665 |\n", "| StdEpRet | 331 |\n", "| MaxEpRet | -121 |\n", "| MinEpRet | -1.24e+03 |\n", "| AverageTestEpRet | -819 |\n", "| StdTestEpRet | 295 |\n", "| MaxTestEpRet | -326 |\n", "| MinTestEpRet | -1.29e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.24e+04 |\n", "| AverageQ1Vals | -563 |\n", "| StdQ1Vals | 366 |\n", "| MaxQ1Vals | -54.5 |\n", "| MinQ1Vals | -2.33e+03 |\n", "| AverageQ2Vals | -563 |\n", "| StdQ2Vals | 365 |\n", "| MaxQ2Vals | -56 |\n", "| MinQ2Vals | -2.36e+03 |\n", "| AverageLogPi | 4.67 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 21.2 |\n", "| MinLogPi | -6.61 |\n", "| LossPi | 557 |\n", "| LossQ | 4.74e+03 |\n", "| Time | 646 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 57 |\n", "| AverageEpRet | -590 |\n", "| StdEpRet | 310 |\n", "| MaxEpRet | -115 |\n", "| MinEpRet | -1.28e+03 |\n", "| AverageTestEpRet | -697 |\n", "| StdTestEpRet | 356 |\n", "| MaxTestEpRet | -104 |\n", "| MinTestEpRet | -1.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.4e+04 |\n", "| AverageQ1Vals | -551 |\n", "| StdQ1Vals | 364 |\n", "| MaxQ1Vals | -46.7 |\n", "| MinQ1Vals | -2.34e+03 |\n", "| AverageQ2Vals | -551 |\n", "| StdQ2Vals | 364 |\n", "| MaxQ2Vals | -47.9 |\n", "| MinQ2Vals | -2.36e+03 |\n", "| AverageLogPi | 4.73 |\n", "| StdLogPi | 1.49 |\n", "| MaxLogPi | 22.2 |\n", "| MinLogPi | -8.68 |\n", "| LossPi | 545 |\n", "| LossQ | 4.68e+03 |\n", "| Time | 658 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 58 |\n", "| AverageEpRet | -699 |\n", "| StdEpRet | 391 |\n", "| MaxEpRet | -188 |\n", "| MinEpRet | -1.4e+03 |\n", "| AverageTestEpRet | -665 |\n", "| StdTestEpRet | 372 |\n", "| MaxTestEpRet | -129 |\n", "| MinTestEpRet | -1.27e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.57e+04 |\n", "| AverageQ1Vals | -535 |\n", "| StdQ1Vals | 358 |\n", "| MaxQ1Vals | -39.6 |\n", "| MinQ1Vals | -2.3e+03 |\n", "| AverageQ2Vals | -535 |\n", "| StdQ2Vals | 358 |\n", "| MaxQ2Vals | -40.9 |\n", "| MinQ2Vals | -2.33e+03 |\n", "| AverageLogPi | 4.73 |\n", "| StdLogPi | 1.51 |\n", "| MaxLogPi | 22.5 |\n", "| MinLogPi | -9.08 |\n", "| LossPi | 529 |\n", "| LossQ | 4.52e+03 |\n", "| Time | 670 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 59 |\n", "| AverageEpRet | -559 |\n", "| StdEpRet | 473 |\n", "| MaxEpRet | -48.8 |\n", "| MinEpRet | -1.83e+03 |\n", "| AverageTestEpRet | -783 |\n", "| StdTestEpRet | 646 |\n", "| MaxTestEpRet | -13.8 |\n", "| MinTestEpRet | -2.51e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.73e+04 |\n", "| AverageQ1Vals | -523 |\n", "| StdQ1Vals | 357 |\n", "| MaxQ1Vals | -29 |\n", "| MinQ1Vals | -2.25e+03 |\n", "| AverageQ2Vals | -523 |\n", "| StdQ2Vals | 357 |\n", "| MaxQ2Vals | -31.4 |\n", "| MinQ2Vals | -2.26e+03 |\n", "| AverageLogPi | 4.72 |\n", "| StdLogPi | 1.52 |\n", "| MaxLogPi | 21.7 |\n", "| MinLogPi | -7.48 |\n", "| LossPi | 517 |\n", "| LossQ | 4.47e+03 |\n", "| Time | 681 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 60 |\n", "| AverageEpRet | -715 |\n", "| StdEpRet | 401 |\n", "| MaxEpRet | -141 |\n", "| MinEpRet | -1.3e+03 |\n", "| AverageTestEpRet | -641 |\n", "| StdTestEpRet | 431 |\n", "| MaxTestEpRet | -106 |\n", "| MinTestEpRet | -1.61e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+04 |\n", "| AverageQ1Vals | -507 |\n", "| StdQ1Vals | 353 |\n", "| MaxQ1Vals | -21.2 |\n", "| MinQ1Vals | -2.26e+03 |\n", "| AverageQ2Vals | -507 |\n", "| StdQ2Vals | 353 |\n", "| MaxQ2Vals | -23.3 |\n", "| MinQ2Vals | -2.27e+03 |\n", "| AverageLogPi | 4.66 |\n", "| StdLogPi | 1.51 |\n", "| MaxLogPi | 22.3 |\n", "| MinLogPi | -6.64 |\n", "| LossPi | 501 |\n", "| LossQ | 4.18e+03 |\n", "| Time | 693 |\n", "---------------------------------------\n" ] } ], "source": [ "# Setup baseline 0\n", "logger_kwargs = dict(output_dir='sac_b0', exp_name='baseline')\n", "seed_b = 0\n", "epochs_b = 60\n", "maxeplen_b = 110\n", "\n", "spe_b = maxeplen_b * 15\n", "repsize_b = 1000000\n", "gamma_b = 0.99\n", "polyak_b = 0.995\n", "batchsize_b = 100\n", "startsteps_b = 10000\n", "args_b = dict(hidden_sizes=[300,], activation=torch.nn.ReLU)\n", "lr_b = 0.001\n", "alpha_b = 0.2\n", "\n", "\n", "# Baseline 0 training\n", "spinup.sac_pytorch(GyroscopeEnv, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n", "polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, lr = lr_b, alpha = alpha_b)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning: Log dir sac_b1 already exists! Storing info there anyway.\n", "\u001b[32;1mLogging data to sac_b1/progress.txt\u001b[0m\n", "\u001b[36;1mSaving config:\n", "\u001b[0m\n", "{\n", " \"ac_kwargs\":\t{\n", " \"activation\":\t\"ReLU\",\n", " \"hidden_sizes\":\t[\n", " 300\n", " ]\n", " },\n", " \"actor_critic\":\t\"MLPActorCritic\",\n", " \"alpha\":\t0.2,\n", " \"batch_size\":\t100,\n", " \"env_fn\":\t\"GyroscopeEnv\",\n", " \"epochs\":\t60,\n", " \"exp_name\":\t\"baseline\",\n", " \"gamma\":\t0.99,\n", " \"logger\":\t{\n", " \"\":\t{\n", " \"epoch_dict\":\t{},\n", " \"exp_name\":\t\"baseline\",\n", " \"first_row\":\ttrue,\n", " \"log_current_row\":\t{},\n", " \"log_headers\":\t[],\n", " \"output_dir\":\t\"sac_b1\",\n", " \"output_file\":\t{\n", " \"<_io.TextIOWrapper name='sac_b1/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", " \"mode\":\t\"w\"\n", " }\n", " }\n", " }\n", " },\n", " \"logger_kwargs\":\t{\n", " \"exp_name\":\t\"baseline\",\n", " \"output_dir\":\t\"sac_b1\"\n", " },\n", " \"lr\":\t0.001,\n", " \"max_ep_len\":\t110,\n", " \"num_test_episodes\":\t10,\n", " \"polyak\":\t0.9,\n", " \"replay_size\":\t1000000,\n", " \"save_freq\":\t1,\n", " \"seed\":\t0,\n", " \"start_steps\":\t5000,\n", " \"steps_per_epoch\":\t1650,\n", " \"update_after\":\t1000,\n", " \"update_every\":\t50\n", "}\n", "\u001b[32;1m\n", "Number of parameters: \t pi: 3604, \t q1: 3301, \t q2: 3301\n", "\u001b[0m\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/matthieulc/.local/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: Box bound precision lowered by casting to float32\u001b[0m\n", " warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 1 |\n", "| AverageEpRet | -6.93e+03 |\n", "| StdEpRet | 1.24e+03 |\n", "| MaxEpRet | -3.98e+03 |\n", "| MinEpRet | -9.1e+03 |\n", "| AverageTestEpRet | -6.87e+03 |\n", "| StdTestEpRet | 1.52e+03 |\n", "| MaxTestEpRet | -5.3e+03 |\n", "| MinTestEpRet | -1.01e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+03 |\n", "| AverageQ1Vals | -467 |\n", "| StdQ1Vals | 383 |\n", "| MaxQ1Vals | 4.36 |\n", "| MinQ1Vals | -1.82e+03 |\n", "| AverageQ2Vals | -467 |\n", "| StdQ2Vals | 382 |\n", "| MaxQ2Vals | 1.96 |\n", "| MinQ2Vals | -1.82e+03 |\n", "| AverageLogPi | 3.36 |\n", "| StdLogPi | 2.31 |\n", "| MaxLogPi | 32.8 |\n", "| MinLogPi | -10.4 |\n", "| LossPi | 446 |\n", "| LossQ | 5.44e+03 |\n", "| Time | 5.96 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 2 |\n", "| AverageEpRet | -7.2e+03 |\n", "| StdEpRet | 1.39e+03 |\n", "| MaxEpRet | -4.67e+03 |\n", "| MinEpRet | -9.48e+03 |\n", "| AverageTestEpRet | -7.46e+03 |\n", "| StdTestEpRet | 1.76e+03 |\n", "| MaxTestEpRet | -5.09e+03 |\n", "| MinTestEpRet | -1.09e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+03 |\n", "| AverageQ1Vals | -1.16e+03 |\n", "| StdQ1Vals | 508 |\n", "| MaxQ1Vals | -16.3 |\n", "| MinQ1Vals | -2.76e+03 |\n", "| AverageQ2Vals | -1.16e+03 |\n", "| StdQ2Vals | 508 |\n", "| MaxQ2Vals | -23.7 |\n", "| MinQ2Vals | -2.75e+03 |\n", "| AverageLogPi | 5.02 |\n", "| StdLogPi | 2.16 |\n", "| MaxLogPi | 19.8 |\n", "| MinLogPi | -8.64 |\n", "| LossPi | 1.11e+03 |\n", "| LossQ | 4.44e+03 |\n", "| Time | 17.6 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 3 |\n", "| AverageEpRet | -7.18e+03 |\n", "| StdEpRet | 1.29e+03 |\n", "| MaxEpRet | -4.09e+03 |\n", "| MinEpRet | -8.88e+03 |\n", "| AverageTestEpRet | -5.77e+03 |\n", "| StdTestEpRet | 1.63e+03 |\n", "| MaxTestEpRet | -1.18e+03 |\n", "| MinTestEpRet | -7.68e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+03 |\n", "| AverageQ1Vals | -1.86e+03 |\n", "| StdQ1Vals | 1.02e+03 |\n", "| MaxQ1Vals | -35.1 |\n", "| MinQ1Vals | -5.44e+03 |\n", "| AverageQ2Vals | -1.86e+03 |\n", "| StdQ2Vals | 1.02e+03 |\n", "| MaxQ2Vals | -47.7 |\n", "| MinQ2Vals | -5.44e+03 |\n", "| AverageLogPi | 3.84 |\n", "| StdLogPi | 1.92 |\n", "| MaxLogPi | 12.3 |\n", "| MinLogPi | -9.6 |\n", "| LossPi | 1.83e+03 |\n", "| LossQ | 4.58e+03 |\n", "| Time | 29.3 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 4 |\n", "| AverageEpRet | -6.68e+03 |\n", "| StdEpRet | 1.17e+03 |\n", "| MaxEpRet | -5.04e+03 |\n", "| MinEpRet | -8.7e+03 |\n", "| AverageTestEpRet | -5.63e+03 |\n", "| StdTestEpRet | 1.71e+03 |\n", "| MaxTestEpRet | -3.11e+03 |\n", "| MinTestEpRet | -8.12e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+03 |\n", "| AverageQ1Vals | -3.31e+03 |\n", "| StdQ1Vals | 1.59e+03 |\n", "| MaxQ1Vals | -301 |\n", "| MinQ1Vals | -6.74e+03 |\n", "| AverageQ2Vals | -3.31e+03 |\n", "| StdQ2Vals | 1.59e+03 |\n", "| MaxQ2Vals | -298 |\n", "| MinQ2Vals | -6.75e+03 |\n", "| AverageLogPi | 2.84 |\n", "| StdLogPi | 1.4 |\n", "| MaxLogPi | 9.51 |\n", "| MinLogPi | -9.25 |\n", "| LossPi | 3.29e+03 |\n", "| LossQ | 4.17e+03 |\n", "| Time | 41.1 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 5 |\n", "| AverageEpRet | -6.79e+03 |\n", "| StdEpRet | 2.03e+03 |\n", "| MaxEpRet | -3.24e+03 |\n", "| MinEpRet | -1.07e+04 |\n", "| AverageTestEpRet | -5.17e+03 |\n", "| StdTestEpRet | 1.16e+03 |\n", "| MaxTestEpRet | -3.58e+03 |\n", "| MinTestEpRet | -7.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+03 |\n", "| AverageQ1Vals | -4.05e+03 |\n", "| StdQ1Vals | 1.48e+03 |\n", "| MaxQ1Vals | -919 |\n", "| MinQ1Vals | -7.44e+03 |\n", "| AverageQ2Vals | -4.05e+03 |\n", "| StdQ2Vals | 1.48e+03 |\n", "| MaxQ2Vals | -919 |\n", "| MinQ2Vals | -7.44e+03 |\n", "| AverageLogPi | 2.92 |\n", "| StdLogPi | 1.28 |\n", "| MaxLogPi | 10.2 |\n", "| MinLogPi | -8.87 |\n", "| LossPi | 4.03e+03 |\n", "| LossQ | 5.52e+03 |\n", "| Time | 52.8 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 6 |\n", "| AverageEpRet | -5.62e+03 |\n", "| StdEpRet | 1.46e+03 |\n", "| MaxEpRet | -3.24e+03 |\n", "| MinEpRet | -9.22e+03 |\n", "| AverageTestEpRet | -6.69e+03 |\n", "| StdTestEpRet | 2.3e+03 |\n", "| MaxTestEpRet | -4.04e+03 |\n", "| MinTestEpRet | -1.11e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+03 |\n", "| AverageQ1Vals | -4.51e+03 |\n", "| StdQ1Vals | 1.43e+03 |\n", "| MaxQ1Vals | -1.4e+03 |\n", "| MinQ1Vals | -8.56e+03 |\n", "| AverageQ2Vals | -4.51e+03 |\n", "| StdQ2Vals | 1.43e+03 |\n", "| MaxQ2Vals | -1.38e+03 |\n", "| MinQ2Vals | -8.55e+03 |\n", "| AverageLogPi | 2.86 |\n", "| StdLogPi | 1.28 |\n", "| MaxLogPi | 10.3 |\n", "| MinLogPi | -7.85 |\n", "| LossPi | 4.5e+03 |\n", "| LossQ | 8.48e+03 |\n", "| Time | 63.7 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 7 |\n", "| AverageEpRet | -5.41e+03 |\n", "| StdEpRet | 2.2e+03 |\n", "| MaxEpRet | -1.48e+03 |\n", "| MinEpRet | -9.61e+03 |\n", "| AverageTestEpRet | -4.44e+03 |\n", "| StdTestEpRet | 2.47e+03 |\n", "| MaxTestEpRet | -832 |\n", "| MinTestEpRet | -8.55e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.15e+04 |\n", "| AverageQ1Vals | -4.76e+03 |\n", "| StdQ1Vals | 1.34e+03 |\n", "| MaxQ1Vals | -1.97e+03 |\n", "| MinQ1Vals | -8.6e+03 |\n", "| AverageQ2Vals | -4.76e+03 |\n", "| StdQ2Vals | 1.34e+03 |\n", "| MaxQ2Vals | -1.96e+03 |\n", "| MinQ2Vals | -8.57e+03 |\n", "| AverageLogPi | 2.81 |\n", "| StdLogPi | 1.28 |\n", "| MaxLogPi | 13.9 |\n", "| MinLogPi | -7.73 |\n", "| LossPi | 4.75e+03 |\n", "| LossQ | 1.09e+04 |\n", "| Time | 75.4 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 8 |\n", "| AverageEpRet | -5.24e+03 |\n", "| StdEpRet | 2.06e+03 |\n", "| MaxEpRet | -1.76e+03 |\n", "| MinEpRet | -8.83e+03 |\n", "| AverageTestEpRet | -5.95e+03 |\n", "| StdTestEpRet | 2.63e+03 |\n", "| MaxTestEpRet | -1.58e+03 |\n", "| MinTestEpRet | -1.04e+04 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.32e+04 |\n", "| AverageQ1Vals | -4.82e+03 |\n", "| StdQ1Vals | 1.21e+03 |\n", "| MaxQ1Vals | -2.31e+03 |\n", "| MinQ1Vals | -8.62e+03 |\n", "| AverageQ2Vals | -4.82e+03 |\n", "| StdQ2Vals | 1.21e+03 |\n", "| MaxQ2Vals | -2.32e+03 |\n", "| MinQ2Vals | -8.61e+03 |\n", "| AverageLogPi | 2.81 |\n", "| StdLogPi | 1.28 |\n", "| MaxLogPi | 11.8 |\n", "| MinLogPi | -8.11 |\n", "| LossPi | 4.81e+03 |\n", "| LossQ | 1.22e+04 |\n", "| Time | 86.9 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 9 |\n", "| AverageEpRet | -3.6e+03 |\n", "| StdEpRet | 2.41e+03 |\n", "| MaxEpRet | -304 |\n", "| MinEpRet | -7.49e+03 |\n", "| AverageTestEpRet | -5.37e+03 |\n", "| StdTestEpRet | 1.68e+03 |\n", "| MaxTestEpRet | -2.38e+03 |\n", "| MinTestEpRet | -8.7e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.48e+04 |\n", "| AverageQ1Vals | -4.73e+03 |\n", "| StdQ1Vals | 1.04e+03 |\n", "| MaxQ1Vals | -2.46e+03 |\n", "| MinQ1Vals | -8.22e+03 |\n", "| AverageQ2Vals | -4.73e+03 |\n", "| StdQ2Vals | 1.04e+03 |\n", "| MaxQ2Vals | -2.45e+03 |\n", "| MinQ2Vals | -8.22e+03 |\n", "| AverageLogPi | 2.83 |\n", "| StdLogPi | 1.33 |\n", "| MaxLogPi | 10.6 |\n", "| MinLogPi | -10.1 |\n", "| LossPi | 4.72e+03 |\n", "| LossQ | 1.24e+04 |\n", "| Time | 97.9 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 10 |\n", "| AverageEpRet | -4.44e+03 |\n", "| StdEpRet | 2.11e+03 |\n", "| MaxEpRet | -1.05e+03 |\n", "| MinEpRet | -7.92e+03 |\n", "| AverageTestEpRet | -5.04e+03 |\n", "| StdTestEpRet | 2.22e+03 |\n", "| MaxTestEpRet | -1.79e+03 |\n", "| MinTestEpRet | -8.79e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.65e+04 |\n", "| AverageQ1Vals | -4.59e+03 |\n", "| StdQ1Vals | 983 |\n", "| MaxQ1Vals | -2.37e+03 |\n", "| MinQ1Vals | -7.96e+03 |\n", "| AverageQ2Vals | -4.59e+03 |\n", "| StdQ2Vals | 983 |\n", "| MaxQ2Vals | -2.36e+03 |\n", "| MinQ2Vals | -7.98e+03 |\n", "| AverageLogPi | 2.82 |\n", "| StdLogPi | 1.36 |\n", "| MaxLogPi | 11.8 |\n", "| MinLogPi | -10.8 |\n", "| LossPi | 4.59e+03 |\n", "| LossQ | 1.21e+04 |\n", "| Time | 109 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 11 |\n", "| AverageEpRet | -4.01e+03 |\n", "| StdEpRet | 1.92e+03 |\n", "| MaxEpRet | -1.45e+03 |\n", "| MinEpRet | -8.46e+03 |\n", "| AverageTestEpRet | -4.43e+03 |\n", "| StdTestEpRet | 2.6e+03 |\n", "| MaxTestEpRet | -299 |\n", "| MinTestEpRet | -9.21e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.81e+04 |\n", "| AverageQ1Vals | -4.49e+03 |\n", "| StdQ1Vals | 948 |\n", "| MaxQ1Vals | -2.18e+03 |\n", "| MinQ1Vals | -7.77e+03 |\n", "| AverageQ2Vals | -4.49e+03 |\n", "| StdQ2Vals | 948 |\n", "| MaxQ2Vals | -2.18e+03 |\n", "| MinQ2Vals | -7.79e+03 |\n", "| AverageLogPi | 2.78 |\n", "| StdLogPi | 1.34 |\n", "| MaxLogPi | 12.4 |\n", "| MinLogPi | -9.08 |\n", "| LossPi | 4.48e+03 |\n", "| LossQ | 1.21e+04 |\n", "| Time | 121 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 12 |\n", "| AverageEpRet | -4.9e+03 |\n", "| StdEpRet | 2.51e+03 |\n", "| MaxEpRet | -1.3e+03 |\n", "| MinEpRet | -1.02e+04 |\n", "| AverageTestEpRet | -2.2e+03 |\n", "| StdTestEpRet | 1.58e+03 |\n", "| MaxTestEpRet | -367 |\n", "| MinTestEpRet | -4.8e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 1.98e+04 |\n", "| AverageQ1Vals | -4.41e+03 |\n", "| StdQ1Vals | 937 |\n", "| MaxQ1Vals | -2.1e+03 |\n", "| MinQ1Vals | -7.7e+03 |\n", "| AverageQ2Vals | -4.41e+03 |\n", "| StdQ2Vals | 937 |\n", "| MaxQ2Vals | -2.1e+03 |\n", "| MinQ2Vals | -7.72e+03 |\n", "| AverageLogPi | 2.82 |\n", "| StdLogPi | 1.39 |\n", "| MaxLogPi | 12.3 |\n", "| MinLogPi | -9.27 |\n", "| LossPi | 4.4e+03 |\n", "| LossQ | 1.18e+04 |\n", "| Time | 132 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 13 |\n", "| AverageEpRet | -4.15e+03 |\n", "| StdEpRet | 1.93e+03 |\n", "| MaxEpRet | -396 |\n", "| MinEpRet | -7.39e+03 |\n", "| AverageTestEpRet | -2.99e+03 |\n", "| StdTestEpRet | 1.43e+03 |\n", "| MaxTestEpRet | -352 |\n", "| MinTestEpRet | -4.73e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.14e+04 |\n", "| AverageQ1Vals | -4.28e+03 |\n", "| StdQ1Vals | 940 |\n", "| MaxQ1Vals | -2e+03 |\n", "| MinQ1Vals | -7.56e+03 |\n", "| AverageQ2Vals | -4.28e+03 |\n", "| StdQ2Vals | 940 |\n", "| MaxQ2Vals | -2e+03 |\n", "| MinQ2Vals | -7.58e+03 |\n", "| AverageLogPi | 2.84 |\n", "| StdLogPi | 1.41 |\n", "| MaxLogPi | 11.8 |\n", "| MinLogPi | -11 |\n", "| LossPi | 4.27e+03 |\n", "| LossQ | 1.17e+04 |\n", "| Time | 144 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 14 |\n", "| AverageEpRet | -2.71e+03 |\n", "| StdEpRet | 2.03e+03 |\n", "| MaxEpRet | -439 |\n", "| MinEpRet | -7.53e+03 |\n", "| AverageTestEpRet | -2.19e+03 |\n", "| StdTestEpRet | 1.47e+03 |\n", "| MaxTestEpRet | -138 |\n", "| MinTestEpRet | -4.26e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.31e+04 |\n", "| AverageQ1Vals | -4.1e+03 |\n", "| StdQ1Vals | 934 |\n", "| MaxQ1Vals | -1.87e+03 |\n", "| MinQ1Vals | -7.36e+03 |\n", "| AverageQ2Vals | -4.1e+03 |\n", "| StdQ2Vals | 933 |\n", "| MaxQ2Vals | -1.86e+03 |\n", "| MinQ2Vals | -7.38e+03 |\n", "| AverageLogPi | 2.9 |\n", "| StdLogPi | 1.44 |\n", "| MaxLogPi | 13 |\n", "| MinLogPi | -9.16 |\n", "| LossPi | 4.09e+03 |\n", "| LossQ | 1.16e+04 |\n", "| Time | 156 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 15 |\n", "| AverageEpRet | -3.45e+03 |\n", "| StdEpRet | 2.23e+03 |\n", "| MaxEpRet | -156 |\n", "| MinEpRet | -7.71e+03 |\n", "| AverageTestEpRet | -2.66e+03 |\n", "| StdTestEpRet | 2.27e+03 |\n", "| MaxTestEpRet | -554 |\n", "| MinTestEpRet | -6.65e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.47e+04 |\n", "| AverageQ1Vals | -3.87e+03 |\n", "| StdQ1Vals | 906 |\n", "| MaxQ1Vals | -1.61e+03 |\n", "| MinQ1Vals | -6.99e+03 |\n", "| AverageQ2Vals | -3.87e+03 |\n", "| StdQ2Vals | 906 |\n", "| MaxQ2Vals | -1.61e+03 |\n", "| MinQ2Vals | -7e+03 |\n", "| AverageLogPi | 2.98 |\n", "| StdLogPi | 1.44 |\n", "| MaxLogPi | 13.4 |\n", "| MinLogPi | -8.96 |\n", "| LossPi | 3.86e+03 |\n", "| LossQ | 1.18e+04 |\n", "| Time | 167 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 16 |\n", "| AverageEpRet | -2.57e+03 |\n", "| StdEpRet | 1.27e+03 |\n", "| MaxEpRet | -545 |\n", "| MinEpRet | -4.85e+03 |\n", "| AverageTestEpRet | -2.83e+03 |\n", "| StdTestEpRet | 1.81e+03 |\n", "| MaxTestEpRet | -631 |\n", "| MinTestEpRet | -6.15e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.64e+04 |\n", "| AverageQ1Vals | -3.68e+03 |\n", "| StdQ1Vals | 890 |\n", "| MaxQ1Vals | -1.48e+03 |\n", "| MinQ1Vals | -6.67e+03 |\n", "| AverageQ2Vals | -3.68e+03 |\n", "| StdQ2Vals | 890 |\n", "| MaxQ2Vals | -1.49e+03 |\n", "| MinQ2Vals | -6.67e+03 |\n", "| AverageLogPi | 3.01 |\n", "| StdLogPi | 1.4 |\n", "| MaxLogPi | 13.8 |\n", "| MinLogPi | -8.62 |\n", "| LossPi | 3.67e+03 |\n", "| LossQ | 1.13e+04 |\n", "| Time | 179 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 17 |\n", "| AverageEpRet | -1.58e+03 |\n", "| StdEpRet | 1.32e+03 |\n", "| MaxEpRet | -73.4 |\n", "| MinEpRet | -5.25e+03 |\n", "| AverageTestEpRet | -1.58e+03 |\n", "| StdTestEpRet | 1.19e+03 |\n", "| MaxTestEpRet | -300 |\n", "| MinTestEpRet | -3.64e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.8e+04 |\n", "| AverageQ1Vals | -3.49e+03 |\n", "| StdQ1Vals | 853 |\n", "| MaxQ1Vals | -1.41e+03 |\n", "| MinQ1Vals | -6.47e+03 |\n", "| AverageQ2Vals | -3.49e+03 |\n", "| StdQ2Vals | 853 |\n", "| MaxQ2Vals | -1.41e+03 |\n", "| MinQ2Vals | -6.48e+03 |\n", "| AverageLogPi | 3.09 |\n", "| StdLogPi | 1.37 |\n", "| MaxLogPi | 13.2 |\n", "| MinLogPi | -7.7 |\n", "| LossPi | 3.48e+03 |\n", "| LossQ | 1.12e+04 |\n", "| Time | 190 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 18 |\n", "| AverageEpRet | -1.73e+03 |\n", "| StdEpRet | 1.14e+03 |\n", "| MaxEpRet | -99.5 |\n", "| MinEpRet | -3.82e+03 |\n", "| AverageTestEpRet | -953 |\n", "| StdTestEpRet | 549 |\n", "| MaxTestEpRet | -114 |\n", "| MinTestEpRet | -1.63e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 2.97e+04 |\n", "| AverageQ1Vals | -3.28e+03 |\n", "| StdQ1Vals | 777 |\n", "| MaxQ1Vals | -1.36e+03 |\n", "| MinQ1Vals | -5.97e+03 |\n", "| AverageQ2Vals | -3.28e+03 |\n", "| StdQ2Vals | 777 |\n", "| MaxQ2Vals | -1.36e+03 |\n", "| MinQ2Vals | -5.97e+03 |\n", "| AverageLogPi | 3.13 |\n", "| StdLogPi | 1.36 |\n", "| MaxLogPi | 11.6 |\n", "| MinLogPi | -10.7 |\n", "| LossPi | 3.27e+03 |\n", "| LossQ | 1.11e+04 |\n", "| Time | 202 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 19 |\n", "| AverageEpRet | -1.5e+03 |\n", "| StdEpRet | 1.71e+03 |\n", "| MaxEpRet | -144 |\n", "| MinEpRet | -6.27e+03 |\n", "| AverageTestEpRet | -1.27e+03 |\n", "| StdTestEpRet | 1.09e+03 |\n", "| MaxTestEpRet | -70.3 |\n", "| MinTestEpRet | -4.22e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.13e+04 |\n", "| AverageQ1Vals | -3.07e+03 |\n", "| StdQ1Vals | 711 |\n", "| MaxQ1Vals | -1.36e+03 |\n", "| MinQ1Vals | -5.61e+03 |\n", "| AverageQ2Vals | -3.07e+03 |\n", "| StdQ2Vals | 711 |\n", "| MaxQ2Vals | -1.36e+03 |\n", "| MinQ2Vals | -5.6e+03 |\n", "| AverageLogPi | 3.24 |\n", "| StdLogPi | 1.34 |\n", "| MaxLogPi | 11.3 |\n", "| MinLogPi | -9.11 |\n", "| LossPi | 3.06e+03 |\n", "| LossQ | 1.18e+04 |\n", "| Time | 214 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 20 |\n", "| AverageEpRet | -954 |\n", "| StdEpRet | 772 |\n", "| MaxEpRet | -201 |\n", "| MinEpRet | -2.77e+03 |\n", "| AverageTestEpRet | -1.02e+03 |\n", "| StdTestEpRet | 969 |\n", "| MaxTestEpRet | -104 |\n", "| MinTestEpRet | -3.66e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.3e+04 |\n", "| AverageQ1Vals | -2.79e+03 |\n", "| StdQ1Vals | 646 |\n", "| MaxQ1Vals | -1.26e+03 |\n", "| MinQ1Vals | -5.19e+03 |\n", "| AverageQ2Vals | -2.79e+03 |\n", "| StdQ2Vals | 646 |\n", "| MaxQ2Vals | -1.27e+03 |\n", "| MinQ2Vals | -5.19e+03 |\n", "| AverageLogPi | 3.48 |\n", "| StdLogPi | 1.39 |\n", "| MaxLogPi | 13.6 |\n", "| MinLogPi | -6.83 |\n", "| LossPi | 2.77e+03 |\n", "| LossQ | 1.18e+04 |\n", "| Time | 225 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 21 |\n", "| AverageEpRet | -1.9e+03 |\n", "| StdEpRet | 1.57e+03 |\n", "| MaxEpRet | -86.1 |\n", "| MinEpRet | -5.5e+03 |\n", "| AverageTestEpRet | -1.52e+03 |\n", "| StdTestEpRet | 1.18e+03 |\n", "| MaxTestEpRet | -276 |\n", "| MinTestEpRet | -3.56e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.46e+04 |\n", "| AverageQ1Vals | -2.5e+03 |\n", "| StdQ1Vals | 587 |\n", "| MaxQ1Vals | -1.15e+03 |\n", "| MinQ1Vals | -4.67e+03 |\n", "| AverageQ2Vals | -2.5e+03 |\n", "| StdQ2Vals | 587 |\n", "| MaxQ2Vals | -1.15e+03 |\n", "| MinQ2Vals | -4.64e+03 |\n", "| AverageLogPi | 3.67 |\n", "| StdLogPi | 1.46 |\n", "| MaxLogPi | 14.4 |\n", "| MinLogPi | -8.08 |\n", "| LossPi | 2.48e+03 |\n", "| LossQ | 1.24e+04 |\n", "| Time | 237 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 22 |\n", "| AverageEpRet | -1.21e+03 |\n", "| StdEpRet | 1.32e+03 |\n", "| MaxEpRet | -43.9 |\n", "| MinEpRet | -5.36e+03 |\n", "| AverageTestEpRet | -1.39e+03 |\n", "| StdTestEpRet | 795 |\n", "| MaxTestEpRet | -313 |\n", "| MinTestEpRet | -3.05e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.63e+04 |\n", "| AverageQ1Vals | -2.31e+03 |\n", "| StdQ1Vals | 557 |\n", "| MaxQ1Vals | -1e+03 |\n", "| MinQ1Vals | -4.34e+03 |\n", "| AverageQ2Vals | -2.31e+03 |\n", "| StdQ2Vals | 557 |\n", "| MaxQ2Vals | -993 |\n", "| MinQ2Vals | -4.31e+03 |\n", "| AverageLogPi | 3.84 |\n", "| StdLogPi | 1.51 |\n", "| MaxLogPi | 13.3 |\n", "| MinLogPi | -9.22 |\n", "| LossPi | 2.29e+03 |\n", "| LossQ | 1.27e+04 |\n", "| Time | 248 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 23 |\n", "| AverageEpRet | -902 |\n", "| StdEpRet | 849 |\n", "| MaxEpRet | -154 |\n", "| MinEpRet | -3.01e+03 |\n", "| AverageTestEpRet | -909 |\n", "| StdTestEpRet | 567 |\n", "| MaxTestEpRet | -207 |\n", "| MinTestEpRet | -1.89e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.79e+04 |\n", "| AverageQ1Vals | -2.05e+03 |\n", "| StdQ1Vals | 516 |\n", "| MaxQ1Vals | -884 |\n", "| MinQ1Vals | -3.9e+03 |\n", "| AverageQ2Vals | -2.05e+03 |\n", "| StdQ2Vals | 516 |\n", "| MaxQ2Vals | -875 |\n", "| MinQ2Vals | -3.88e+03 |\n", "| AverageLogPi | 4.09 |\n", "| StdLogPi | 1.56 |\n", "| MaxLogPi | 17.1 |\n", "| MinLogPi | -8.67 |\n", "| LossPi | 2.03e+03 |\n", "| LossQ | 1.27e+04 |\n", "| Time | 259 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 24 |\n", "| AverageEpRet | -1.08e+03 |\n", "| StdEpRet | 1.04e+03 |\n", "| MaxEpRet | -66.7 |\n", "| MinEpRet | -3.45e+03 |\n", "| AverageTestEpRet | -847 |\n", "| StdTestEpRet | 604 |\n", "| MaxTestEpRet | -186 |\n", "| MinTestEpRet | -2.33e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 3.96e+04 |\n", "| AverageQ1Vals | -1.85e+03 |\n", "| StdQ1Vals | 498 |\n", "| MaxQ1Vals | -748 |\n", "| MinQ1Vals | -3.59e+03 |\n", "| AverageQ2Vals | -1.85e+03 |\n", "| StdQ2Vals | 498 |\n", "| MaxQ2Vals | -741 |\n", "| MinQ2Vals | -3.58e+03 |\n", "| AverageLogPi | 4.2 |\n", "| StdLogPi | 1.61 |\n", "| MaxLogPi | 16.7 |\n", "| MinLogPi | -7.12 |\n", "| LossPi | 1.84e+03 |\n", "| LossQ | 1.25e+04 |\n", "| Time | 270 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 25 |\n", "| AverageEpRet | -1.3e+03 |\n", "| StdEpRet | 989 |\n", "| MaxEpRet | -118 |\n", "| MinEpRet | -3.69e+03 |\n", "| AverageTestEpRet | -635 |\n", "| StdTestEpRet | 469 |\n", "| MaxTestEpRet | -218 |\n", "| MinTestEpRet | -1.86e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.12e+04 |\n", "| AverageQ1Vals | -1.73e+03 |\n", "| StdQ1Vals | 493 |\n", "| MaxQ1Vals | -710 |\n", "| MinQ1Vals | -3.64e+03 |\n", "| AverageQ2Vals | -1.73e+03 |\n", "| StdQ2Vals | 493 |\n", "| MaxQ2Vals | -703 |\n", "| MinQ2Vals | -3.63e+03 |\n", "| AverageLogPi | 4.2 |\n", "| StdLogPi | 1.62 |\n", "| MaxLogPi | 19.5 |\n", "| MinLogPi | -6.95 |\n", "| LossPi | 1.72e+03 |\n", "| LossQ | 1.32e+04 |\n", "| Time | 282 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 26 |\n", "| AverageEpRet | -1.63e+03 |\n", "| StdEpRet | 1.38e+03 |\n", "| MaxEpRet | -184 |\n", "| MinEpRet | -4.86e+03 |\n", "| AverageTestEpRet | -1.61e+03 |\n", "| StdTestEpRet | 1.57e+03 |\n", "| MaxTestEpRet | -304 |\n", "| MinTestEpRet | -5.14e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.29e+04 |\n", "| AverageQ1Vals | -1.63e+03 |\n", "| StdQ1Vals | 478 |\n", "| MaxQ1Vals | -645 |\n", "| MinQ1Vals | -3.56e+03 |\n", "| AverageQ2Vals | -1.63e+03 |\n", "| StdQ2Vals | 478 |\n", "| MaxQ2Vals | -638 |\n", "| MinQ2Vals | -3.55e+03 |\n", "| AverageLogPi | 4.35 |\n", "| StdLogPi | 1.63 |\n", "| MaxLogPi | 22.5 |\n", "| MinLogPi | -7.16 |\n", "| LossPi | 1.61e+03 |\n", "| LossQ | 1.27e+04 |\n", "| Time | 294 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 27 |\n", "| AverageEpRet | -1.1e+03 |\n", "| StdEpRet | 793 |\n", "| MaxEpRet | -57.9 |\n", "| MinEpRet | -2.8e+03 |\n", "| AverageTestEpRet | -1.62e+03 |\n", "| StdTestEpRet | 1.44e+03 |\n", "| MaxTestEpRet | -211 |\n", "| MinTestEpRet | -4.75e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.45e+04 |\n", "| AverageQ1Vals | -1.57e+03 |\n", "| StdQ1Vals | 482 |\n", "| MaxQ1Vals | -622 |\n", "| MinQ1Vals | -3.58e+03 |\n", "| AverageQ2Vals | -1.57e+03 |\n", "| StdQ2Vals | 482 |\n", "| MaxQ2Vals | -610 |\n", "| MinQ2Vals | -3.57e+03 |\n", "| AverageLogPi | 4.19 |\n", "| StdLogPi | 1.63 |\n", "| MaxLogPi | 17.9 |\n", "| MinLogPi | -7.52 |\n", "| LossPi | 1.55e+03 |\n", "| LossQ | 1.31e+04 |\n", "| Time | 305 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 28 |\n", "| AverageEpRet | -1.33e+03 |\n", "| StdEpRet | 731 |\n", "| MaxEpRet | -127 |\n", "| MinEpRet | -3.09e+03 |\n", "| AverageTestEpRet | -630 |\n", "| StdTestEpRet | 407 |\n", "| MaxTestEpRet | -84.9 |\n", "| MinTestEpRet | -1.42e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.62e+04 |\n", "| AverageQ1Vals | -1.47e+03 |\n", "| StdQ1Vals | 472 |\n", "| MaxQ1Vals | -515 |\n", "| MinQ1Vals | -3.54e+03 |\n", "| AverageQ2Vals | -1.47e+03 |\n", "| StdQ2Vals | 472 |\n", "| MaxQ2Vals | -503 |\n", "| MinQ2Vals | -3.53e+03 |\n", "| AverageLogPi | 4.44 |\n", "| StdLogPi | 1.67 |\n", "| MaxLogPi | 21.7 |\n", "| MinLogPi | -8.17 |\n", "| LossPi | 1.45e+03 |\n", "| LossQ | 1.26e+04 |\n", "| Time | 316 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 29 |\n", "| AverageEpRet | -717 |\n", "| StdEpRet | 370 |\n", "| MaxEpRet | -234 |\n", "| MinEpRet | -1.39e+03 |\n", "| AverageTestEpRet | -828 |\n", "| StdTestEpRet | 538 |\n", "| MaxTestEpRet | -6.06 |\n", "| MinTestEpRet | -1.83e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.78e+04 |\n", "| AverageQ1Vals | -1.31e+03 |\n", "| StdQ1Vals | 456 |\n", "| MaxQ1Vals | -457 |\n", "| MinQ1Vals | -3.14e+03 |\n", "| AverageQ2Vals | -1.31e+03 |\n", "| StdQ2Vals | 456 |\n", "| MaxQ2Vals | -448 |\n", "| MinQ2Vals | -3.15e+03 |\n", "| AverageLogPi | 4.47 |\n", "| StdLogPi | 1.71 |\n", "| MaxLogPi | 16.8 |\n", "| MinLogPi | -6.96 |\n", "| LossPi | 1.29e+03 |\n", "| LossQ | 1.26e+04 |\n", "| Time | 327 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 30 |\n", "| AverageEpRet | -966 |\n", "| StdEpRet | 1.06e+03 |\n", "| MaxEpRet | -56.1 |\n", "| MinEpRet | -4.45e+03 |\n", "| AverageTestEpRet | -889 |\n", "| StdTestEpRet | 438 |\n", "| MaxTestEpRet | -135 |\n", "| MinTestEpRet | -1.53e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 4.95e+04 |\n", "| AverageQ1Vals | -1.14e+03 |\n", "| StdQ1Vals | 437 |\n", "| MaxQ1Vals | -312 |\n", "| MinQ1Vals | -3.07e+03 |\n", "| AverageQ2Vals | -1.14e+03 |\n", "| StdQ2Vals | 437 |\n", "| MaxQ2Vals | -310 |\n", "| MinQ2Vals | -3.08e+03 |\n", "| AverageLogPi | 4.81 |\n", "| StdLogPi | 1.87 |\n", "| MaxLogPi | 19.2 |\n", "| MinLogPi | -11 |\n", "| LossPi | 1.12e+03 |\n", "| LossQ | 1.17e+04 |\n", "| Time | 338 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 31 |\n", "| AverageEpRet | -866 |\n", "| StdEpRet | 576 |\n", "| MaxEpRet | -79.7 |\n", "| MinEpRet | -2.28e+03 |\n", "| AverageTestEpRet | -1.05e+03 |\n", "| StdTestEpRet | 777 |\n", "| MaxTestEpRet | -175 |\n", "| MinTestEpRet | -2.92e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.11e+04 |\n", "| AverageQ1Vals | -1.01e+03 |\n", "| StdQ1Vals | 412 |\n", "| MaxQ1Vals | -234 |\n", "| MinQ1Vals | -2.71e+03 |\n", "| AverageQ2Vals | -1.01e+03 |\n", "| StdQ2Vals | 412 |\n", "| MaxQ2Vals | -230 |\n", "| MinQ2Vals | -2.73e+03 |\n", "| AverageLogPi | 4.77 |\n", "| StdLogPi | 1.88 |\n", "| MaxLogPi | 20.4 |\n", "| MinLogPi | -10.6 |\n", "| LossPi | 989 |\n", "| LossQ | 1.17e+04 |\n", "| Time | 349 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 32 |\n", "| AverageEpRet | -930 |\n", "| StdEpRet | 1.01e+03 |\n", "| MaxEpRet | -242 |\n", "| MinEpRet | -4.48e+03 |\n", "| AverageTestEpRet | -557 |\n", "| StdTestEpRet | 330 |\n", "| MaxTestEpRet | -147 |\n", "| MinTestEpRet | -1.04e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.28e+04 |\n", "| AverageQ1Vals | -898 |\n", "| StdQ1Vals | 403 |\n", "| MaxQ1Vals | -223 |\n", "| MinQ1Vals | -2.55e+03 |\n", "| AverageQ2Vals | -898 |\n", "| StdQ2Vals | 403 |\n", "| MaxQ2Vals | -221 |\n", "| MinQ2Vals | -2.59e+03 |\n", "| AverageLogPi | 4.78 |\n", "| StdLogPi | 1.94 |\n", "| MaxLogPi | 20.9 |\n", "| MinLogPi | -8.53 |\n", "| LossPi | 881 |\n", "| LossQ | 1.16e+04 |\n", "| Time | 361 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 33 |\n", "| AverageEpRet | -1.07e+03 |\n", "| StdEpRet | 1.23e+03 |\n", "| MaxEpRet | -12.7 |\n", "| MinEpRet | -4.5e+03 |\n", "| AverageTestEpRet | -847 |\n", "| StdTestEpRet | 324 |\n", "| MaxTestEpRet | -407 |\n", "| MinTestEpRet | -1.51e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.44e+04 |\n", "| AverageQ1Vals | -925 |\n", "| StdQ1Vals | 414 |\n", "| MaxQ1Vals | -216 |\n", "| MinQ1Vals | -2.68e+03 |\n", "| AverageQ2Vals | -925 |\n", "| StdQ2Vals | 414 |\n", "| MaxQ2Vals | -220 |\n", "| MinQ2Vals | -2.73e+03 |\n", "| AverageLogPi | 4.73 |\n", "| StdLogPi | 1.87 |\n", "| MaxLogPi | 19.4 |\n", "| MinLogPi | -7.51 |\n", "| LossPi | 909 |\n", "| LossQ | 1.15e+04 |\n", "| Time | 372 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 34 |\n", "| AverageEpRet | -802 |\n", "| StdEpRet | 589 |\n", "| MaxEpRet | -69.1 |\n", "| MinEpRet | -2.52e+03 |\n", "| AverageTestEpRet | -777 |\n", "| StdTestEpRet | 381 |\n", "| MaxTestEpRet | -104 |\n", "| MinTestEpRet | -1.46e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.61e+04 |\n", "| AverageQ1Vals | -729 |\n", "| StdQ1Vals | 385 |\n", "| MaxQ1Vals | -59 |\n", "| MinQ1Vals | -2.36e+03 |\n", "| AverageQ2Vals | -729 |\n", "| StdQ2Vals | 385 |\n", "| MaxQ2Vals | -60.7 |\n", "| MinQ2Vals | -2.41e+03 |\n", "| AverageLogPi | 5.14 |\n", "| StdLogPi | 2.11 |\n", "| MaxLogPi | 21.8 |\n", "| MinLogPi | -7.23 |\n", "| LossPi | 710 |\n", "| LossQ | 1.09e+04 |\n", "| Time | 383 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 35 |\n", "| AverageEpRet | -671 |\n", "| StdEpRet | 547 |\n", "| MaxEpRet | -43.1 |\n", "| MinEpRet | -1.89e+03 |\n", "| AverageTestEpRet | -839 |\n", "| StdTestEpRet | 492 |\n", "| MaxTestEpRet | -79.7 |\n", "| MinTestEpRet | -1.63e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.77e+04 |\n", "| AverageQ1Vals | -560 |\n", "| StdQ1Vals | 367 |\n", "| MaxQ1Vals | 22.7 |\n", "| MinQ1Vals | -2.14e+03 |\n", "| AverageQ2Vals | -560 |\n", "| StdQ2Vals | 367 |\n", "| MaxQ2Vals | 21.3 |\n", "| MinQ2Vals | -2.14e+03 |\n", "| AverageLogPi | 5.31 |\n", "| StdLogPi | 2.36 |\n", "| MaxLogPi | 26.3 |\n", "| MinLogPi | -7.11 |\n", "| LossPi | 541 |\n", "| LossQ | 1.05e+04 |\n", "| Time | 398 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 36 |\n", "| AverageEpRet | -726 |\n", "| StdEpRet | 499 |\n", "| MaxEpRet | -131 |\n", "| MinEpRet | -2.06e+03 |\n", "| AverageTestEpRet | -639 |\n", "| StdTestEpRet | 371 |\n", "| MaxTestEpRet | -178 |\n", "| MinTestEpRet | -1.33e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 5.94e+04 |\n", "| AverageQ1Vals | -520 |\n", "| StdQ1Vals | 367 |\n", "| MaxQ1Vals | 41.4 |\n", "| MinQ1Vals | -2.14e+03 |\n", "| AverageQ2Vals | -520 |\n", "| StdQ2Vals | 368 |\n", "| MaxQ2Vals | 40.7 |\n", "| MinQ2Vals | -2.14e+03 |\n", "| AverageLogPi | 5.11 |\n", "| StdLogPi | 2.38 |\n", "| MaxLogPi | 23.3 |\n", "| MinLogPi | -7.32 |\n", "| LossPi | 502 |\n", "| LossQ | 9.94e+03 |\n", "| Time | 412 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 37 |\n", "| AverageEpRet | -613 |\n", "| StdEpRet | 571 |\n", "| MaxEpRet | -113 |\n", "| MinEpRet | -1.91e+03 |\n", "| AverageTestEpRet | -668 |\n", "| StdTestEpRet | 319 |\n", "| MaxTestEpRet | -280 |\n", "| MinTestEpRet | -1.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.1e+04 |\n", "| AverageQ1Vals | -568 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | 9.43 |\n", "| MinQ1Vals | -2.25e+03 |\n", "| AverageQ2Vals | -568 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | 6.82 |\n", "| MinQ2Vals | -2.23e+03 |\n", "| AverageLogPi | 4.91 |\n", "| StdLogPi | 2.24 |\n", "| MaxLogPi | 29.3 |\n", "| MinLogPi | -6.06 |\n", "| LossPi | 551 |\n", "| LossQ | 9.76e+03 |\n", "| Time | 423 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 38 |\n", "| AverageEpRet | -978 |\n", "| StdEpRet | 643 |\n", "| MaxEpRet | -194 |\n", "| MinEpRet | -2.93e+03 |\n", "| AverageTestEpRet | -627 |\n", "| StdTestEpRet | 542 |\n", "| MaxTestEpRet | -43.3 |\n", "| MinTestEpRet | -1.63e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.27e+04 |\n", "| AverageQ1Vals | -582 |\n", "| StdQ1Vals | 379 |\n", "| MaxQ1Vals | -6.11 |\n", "| MinQ1Vals | -2.24e+03 |\n", "| AverageQ2Vals | -582 |\n", "| StdQ2Vals | 379 |\n", "| MaxQ2Vals | -10 |\n", "| MinQ2Vals | -2.22e+03 |\n", "| AverageLogPi | 4.88 |\n", "| StdLogPi | 2.13 |\n", "| MaxLogPi | 29.7 |\n", "| MinLogPi | -7.89 |\n", "| LossPi | 566 |\n", "| LossQ | 1.04e+04 |\n", "| Time | 435 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 39 |\n", "| AverageEpRet | -476 |\n", "| StdEpRet | 385 |\n", "| MaxEpRet | -41.6 |\n", "| MinEpRet | -1.53e+03 |\n", "| AverageTestEpRet | -727 |\n", "| StdTestEpRet | 395 |\n", "| MaxTestEpRet | -294 |\n", "| MinTestEpRet | -1.54e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.43e+04 |\n", "| AverageQ1Vals | -491 |\n", "| StdQ1Vals | 374 |\n", "| MaxQ1Vals | 122 |\n", "| MinQ1Vals | -2.34e+03 |\n", "| AverageQ2Vals | -491 |\n", "| StdQ2Vals | 374 |\n", "| MaxQ2Vals | 115 |\n", "| MinQ2Vals | -2.32e+03 |\n", "| AverageLogPi | 5.19 |\n", "| StdLogPi | 2.33 |\n", "| MaxLogPi | 27.9 |\n", "| MinLogPi | -14.2 |\n", "| LossPi | 472 |\n", "| LossQ | 9.84e+03 |\n", "| Time | 446 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 40 |\n", "| AverageEpRet | -870 |\n", "| StdEpRet | 555 |\n", "| MaxEpRet | -167 |\n", "| MinEpRet | -2.02e+03 |\n", "| AverageTestEpRet | -782 |\n", "| StdTestEpRet | 432 |\n", "| MaxTestEpRet | -154 |\n", "| MinTestEpRet | -1.44e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.6e+04 |\n", "| AverageQ1Vals | -282 |\n", "| StdQ1Vals | 339 |\n", "| MaxQ1Vals | 241 |\n", "| MinQ1Vals | -1.94e+03 |\n", "| AverageQ2Vals | -282 |\n", "| StdQ2Vals | 339 |\n", "| MaxQ2Vals | 243 |\n", "| MinQ2Vals | -1.91e+03 |\n", "| AverageLogPi | 5.28 |\n", "| StdLogPi | 2.66 |\n", "| MaxLogPi | 28 |\n", "| MinLogPi | -10.5 |\n", "| LossPi | 262 |\n", "| LossQ | 9.25e+03 |\n", "| Time | 458 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 41 |\n", "| AverageEpRet | -625 |\n", "| StdEpRet | 415 |\n", "| MaxEpRet | -50 |\n", "| MinEpRet | -1.35e+03 |\n", "| AverageTestEpRet | -740 |\n", "| StdTestEpRet | 862 |\n", "| MaxTestEpRet | -57.1 |\n", "| MinTestEpRet | -3.14e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.76e+04 |\n", "| AverageQ1Vals | -279 |\n", "| StdQ1Vals | 331 |\n", "| MaxQ1Vals | 253 |\n", "| MinQ1Vals | -1.87e+03 |\n", "| AverageQ2Vals | -279 |\n", "| StdQ2Vals | 331 |\n", "| MaxQ2Vals | 251 |\n", "| MinQ2Vals | -1.83e+03 |\n", "| AverageLogPi | 4.99 |\n", "| StdLogPi | 2.64 |\n", "| MaxLogPi | 27.3 |\n", "| MinLogPi | -7.54 |\n", "| LossPi | 263 |\n", "| LossQ | 8.32e+03 |\n", "| Time | 472 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 42 |\n", "| AverageEpRet | -576 |\n", "| StdEpRet | 435 |\n", "| MaxEpRet | -116 |\n", "| MinEpRet | -1.76e+03 |\n", "| AverageTestEpRet | -350 |\n", "| StdTestEpRet | 281 |\n", "| MaxTestEpRet | -41.8 |\n", "| MinTestEpRet | -849 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 6.93e+04 |\n", "| AverageQ1Vals | -425 |\n", "| StdQ1Vals | 346 |\n", "| MaxQ1Vals | 156 |\n", "| MinQ1Vals | -2.06e+03 |\n", "| AverageQ2Vals | -425 |\n", "| StdQ2Vals | 346 |\n", "| MaxQ2Vals | 154 |\n", "| MinQ2Vals | -2.02e+03 |\n", "| AverageLogPi | 4.74 |\n", "| StdLogPi | 2.17 |\n", "| MaxLogPi | 23.3 |\n", "| MinLogPi | -7.15 |\n", "| LossPi | 410 |\n", "| LossQ | 8.25e+03 |\n", "| Time | 487 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 43 |\n", "| AverageEpRet | -606 |\n", "| StdEpRet | 462 |\n", "| MaxEpRet | -38.6 |\n", "| MinEpRet | -1.57e+03 |\n", "| AverageTestEpRet | -479 |\n", "| StdTestEpRet | 309 |\n", "| MaxTestEpRet | -122 |\n", "| MinTestEpRet | -1.2e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.09e+04 |\n", "| AverageQ1Vals | -429 |\n", "| StdQ1Vals | 351 |\n", "| MaxQ1Vals | 92.5 |\n", "| MinQ1Vals | -2.05e+03 |\n", "| AverageQ2Vals | -429 |\n", "| StdQ2Vals | 351 |\n", "| MaxQ2Vals | 95 |\n", "| MinQ2Vals | -2.02e+03 |\n", "| AverageLogPi | 4.79 |\n", "| StdLogPi | 2.01 |\n", "| MaxLogPi | 22.9 |\n", "| MinLogPi | -7.68 |\n", "| LossPi | 414 |\n", "| LossQ | 8.67e+03 |\n", "| Time | 500 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 44 |\n", "| AverageEpRet | -701 |\n", "| StdEpRet | 374 |\n", "| MaxEpRet | -82.9 |\n", "| MinEpRet | -1.29e+03 |\n", "| AverageTestEpRet | -1.04e+03 |\n", "| StdTestEpRet | 445 |\n", "| MaxTestEpRet | -425 |\n", "| MinTestEpRet | -1.92e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.26e+04 |\n", "| AverageQ1Vals | -360 |\n", "| StdQ1Vals | 338 |\n", "| MaxQ1Vals | 130 |\n", "| MinQ1Vals | -1.88e+03 |\n", "| AverageQ2Vals | -359 |\n", "| StdQ2Vals | 338 |\n", "| MaxQ2Vals | 132 |\n", "| MinQ2Vals | -1.86e+03 |\n", "| AverageLogPi | 4.97 |\n", "| StdLogPi | 2.3 |\n", "| MaxLogPi | 33.4 |\n", "| MinLogPi | -7.21 |\n", "| LossPi | 344 |\n", "| LossQ | 8.28e+03 |\n", "| Time | 511 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 45 |\n", "| AverageEpRet | -925 |\n", "| StdEpRet | 977 |\n", "| MaxEpRet | -211 |\n", "| MinEpRet | -4.25e+03 |\n", "| AverageTestEpRet | -832 |\n", "| StdTestEpRet | 400 |\n", "| MaxTestEpRet | -126 |\n", "| MinTestEpRet | -1.48e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.42e+04 |\n", "| AverageQ1Vals | -345 |\n", "| StdQ1Vals | 338 |\n", "| MaxQ1Vals | 161 |\n", "| MinQ1Vals | -1.77e+03 |\n", "| AverageQ2Vals | -345 |\n", "| StdQ2Vals | 338 |\n", "| MaxQ2Vals | 161 |\n", "| MinQ2Vals | -1.77e+03 |\n", "| AverageLogPi | 5.01 |\n", "| StdLogPi | 2.38 |\n", "| MaxLogPi | 32.7 |\n", "| MinLogPi | -8.31 |\n", "| LossPi | 329 |\n", "| LossQ | 7.65e+03 |\n", "| Time | 523 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 46 |\n", "| AverageEpRet | -561 |\n", "| StdEpRet | 414 |\n", "| MaxEpRet | -101 |\n", "| MinEpRet | -1.52e+03 |\n", "| AverageTestEpRet | -652 |\n", "| StdTestEpRet | 405 |\n", "| MaxTestEpRet | -150 |\n", "| MinTestEpRet | -1.43e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.59e+04 |\n", "| AverageQ1Vals | -304 |\n", "| StdQ1Vals | 333 |\n", "| MaxQ1Vals | 188 |\n", "| MinQ1Vals | -1.73e+03 |\n", "| AverageQ2Vals | -304 |\n", "| StdQ2Vals | 333 |\n", "| MaxQ2Vals | 190 |\n", "| MinQ2Vals | -1.73e+03 |\n", "| AverageLogPi | 4.97 |\n", "| StdLogPi | 2.38 |\n", "| MaxLogPi | 32.1 |\n", "| MinLogPi | -7.54 |\n", "| LossPi | 290 |\n", "| LossQ | 7.32e+03 |\n", "| Time | 534 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 47 |\n", "| AverageEpRet | -809 |\n", "| StdEpRet | 435 |\n", "| MaxEpRet | -118 |\n", "| MinEpRet | -1.43e+03 |\n", "| AverageTestEpRet | -716 |\n", "| StdTestEpRet | 308 |\n", "| MaxTestEpRet | -257 |\n", "| MinTestEpRet | -1.42e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.75e+04 |\n", "| AverageQ1Vals | -379 |\n", "| StdQ1Vals | 349 |\n", "| MaxQ1Vals | 140 |\n", "| MinQ1Vals | -1.86e+03 |\n", "| AverageQ2Vals | -379 |\n", "| StdQ2Vals | 349 |\n", "| MaxQ2Vals | 144 |\n", "| MinQ2Vals | -1.88e+03 |\n", "| AverageLogPi | 4.86 |\n", "| StdLogPi | 2.1 |\n", "| MaxLogPi | 32.3 |\n", "| MinLogPi | -7.18 |\n", "| LossPi | 365 |\n", "| LossQ | 7.3e+03 |\n", "| Time | 544 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 48 |\n", "| AverageEpRet | -670 |\n", "| StdEpRet | 307 |\n", "| MaxEpRet | -249 |\n", "| MinEpRet | -1.21e+03 |\n", "| AverageTestEpRet | -867 |\n", "| StdTestEpRet | 564 |\n", "| MaxTestEpRet | -125 |\n", "| MinTestEpRet | -1.96e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 7.92e+04 |\n", "| AverageQ1Vals | -335 |\n", "| StdQ1Vals | 356 |\n", "| MaxQ1Vals | 202 |\n", "| MinQ1Vals | -1.89e+03 |\n", "| AverageQ2Vals | -335 |\n", "| StdQ2Vals | 356 |\n", "| MaxQ2Vals | 205 |\n", "| MinQ2Vals | -1.9e+03 |\n", "| AverageLogPi | 4.89 |\n", "| StdLogPi | 2.12 |\n", "| MaxLogPi | 35.7 |\n", "| MinLogPi | -7.1 |\n", "| LossPi | 321 |\n", "| LossQ | 7.28e+03 |\n", "| Time | 556 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 49 |\n", "| AverageEpRet | -565 |\n", "| StdEpRet | 345 |\n", "| MaxEpRet | -44.1 |\n", "| MinEpRet | -1.15e+03 |\n", "| AverageTestEpRet | -535 |\n", "| StdTestEpRet | 267 |\n", "| MaxTestEpRet | -75.3 |\n", "| MinTestEpRet | -1.06e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.08e+04 |\n", "| AverageQ1Vals | -292 |\n", "| StdQ1Vals | 344 |\n", "| MaxQ1Vals | 251 |\n", "| MinQ1Vals | -1.79e+03 |\n", "| AverageQ2Vals | -292 |\n", "| StdQ2Vals | 344 |\n", "| MaxQ2Vals | 248 |\n", "| MinQ2Vals | -1.8e+03 |\n", "| AverageLogPi | 4.93 |\n", "| StdLogPi | 2.32 |\n", "| MaxLogPi | 41.3 |\n", "| MinLogPi | -7.28 |\n", "| LossPi | 278 |\n", "| LossQ | 6.64e+03 |\n", "| Time | 568 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 50 |\n", "| AverageEpRet | -528 |\n", "| StdEpRet | 252 |\n", "| MaxEpRet | -95.7 |\n", "| MinEpRet | -892 |\n", "| AverageTestEpRet | -557 |\n", "| StdTestEpRet | 310 |\n", "| MaxTestEpRet | -95.2 |\n", "| MinTestEpRet | -996 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.25e+04 |\n", "| AverageQ1Vals | -300 |\n", "| StdQ1Vals | 350 |\n", "| MaxQ1Vals | 297 |\n", "| MinQ1Vals | -1.77e+03 |\n", "| AverageQ2Vals | -300 |\n", "| StdQ2Vals | 350 |\n", "| MaxQ2Vals | 291 |\n", "| MinQ2Vals | -1.8e+03 |\n", "| AverageLogPi | 4.91 |\n", "| StdLogPi | 2.2 |\n", "| MaxLogPi | 34.7 |\n", "| MinLogPi | -6.98 |\n", "| LossPi | 286 |\n", "| LossQ | 6.44e+03 |\n", "| Time | 580 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 51 |\n", "| AverageEpRet | -864 |\n", "| StdEpRet | 389 |\n", "| MaxEpRet | -350 |\n", "| MinEpRet | -1.6e+03 |\n", "| AverageTestEpRet | -441 |\n", "| StdTestEpRet | 566 |\n", "| MaxTestEpRet | -73.2 |\n", "| MinTestEpRet | -2.05e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.41e+04 |\n", "| AverageQ1Vals | -275 |\n", "| StdQ1Vals | 351 |\n", "| MaxQ1Vals | 272 |\n", "| MinQ1Vals | -1.84e+03 |\n", "| AverageQ2Vals | -275 |\n", "| StdQ2Vals | 351 |\n", "| MaxQ2Vals | 274 |\n", "| MinQ2Vals | -1.8e+03 |\n", "| AverageLogPi | 4.91 |\n", "| StdLogPi | 2.32 |\n", "| MaxLogPi | 43.9 |\n", "| MinLogPi | -6.21 |\n", "| LossPi | 261 |\n", "| LossQ | 6.25e+03 |\n", "| Time | 591 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 52 |\n", "| AverageEpRet | -869 |\n", "| StdEpRet | 561 |\n", "| MaxEpRet | -161 |\n", "| MinEpRet | -1.92e+03 |\n", "| AverageTestEpRet | -761 |\n", "| StdTestEpRet | 390 |\n", "| MaxTestEpRet | -206 |\n", "| MinTestEpRet | -1.68e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.58e+04 |\n", "| AverageQ1Vals | -273 |\n", "| StdQ1Vals | 342 |\n", "| MaxQ1Vals | 297 |\n", "| MinQ1Vals | -1.77e+03 |\n", "| AverageQ2Vals | -273 |\n", "| StdQ2Vals | 342 |\n", "| MaxQ2Vals | 297 |\n", "| MinQ2Vals | -1.79e+03 |\n", "| AverageLogPi | 4.88 |\n", "| StdLogPi | 2.29 |\n", "| MaxLogPi | 35.1 |\n", "| MinLogPi | -6.79 |\n", "| LossPi | 260 |\n", "| LossQ | 5.86e+03 |\n", "| Time | 603 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 53 |\n", "| AverageEpRet | -798 |\n", "| StdEpRet | 393 |\n", "| MaxEpRet | -171 |\n", "| MinEpRet | -1.73e+03 |\n", "| AverageTestEpRet | -476 |\n", "| StdTestEpRet | 167 |\n", "| MaxTestEpRet | -139 |\n", "| MinTestEpRet | -670 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.74e+04 |\n", "| AverageQ1Vals | -287 |\n", "| StdQ1Vals | 339 |\n", "| MaxQ1Vals | 294 |\n", "| MinQ1Vals | -1.82e+03 |\n", "| AverageQ2Vals | -287 |\n", "| StdQ2Vals | 339 |\n", "| MaxQ2Vals | 295 |\n", "| MinQ2Vals | -1.8e+03 |\n", "| AverageLogPi | 4.87 |\n", "| StdLogPi | 2.14 |\n", "| MaxLogPi | 39.8 |\n", "| MinLogPi | -6.5 |\n", "| LossPi | 274 |\n", "| LossQ | 5.57e+03 |\n", "| Time | 614 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 54 |\n", "| AverageEpRet | -563 |\n", "| StdEpRet | 300 |\n", "| MaxEpRet | -112 |\n", "| MinEpRet | -1.12e+03 |\n", "| AverageTestEpRet | -776 |\n", "| StdTestEpRet | 360 |\n", "| MaxTestEpRet | -310 |\n", "| MinTestEpRet | -1.37e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 8.91e+04 |\n", "| AverageQ1Vals | -262 |\n", "| StdQ1Vals | 342 |\n", "| MaxQ1Vals | 331 |\n", "| MinQ1Vals | -1.73e+03 |\n", "| AverageQ2Vals | -262 |\n", "| StdQ2Vals | 342 |\n", "| MaxQ2Vals | 331 |\n", "| MinQ2Vals | -1.75e+03 |\n", "| AverageLogPi | 4.85 |\n", "| StdLogPi | 2.18 |\n", "| MaxLogPi | 35.7 |\n", "| MinLogPi | -8.03 |\n", "| LossPi | 250 |\n", "| LossQ | 5.5e+03 |\n", "| Time | 625 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 55 |\n", "| AverageEpRet | -696 |\n", "| StdEpRet | 464 |\n", "| MaxEpRet | -144 |\n", "| MinEpRet | -1.97e+03 |\n", "| AverageTestEpRet | -580 |\n", "| StdTestEpRet | 376 |\n", "| MaxTestEpRet | -67.2 |\n", "| MinTestEpRet | -1.34e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.07e+04 |\n", "| AverageQ1Vals | -297 |\n", "| StdQ1Vals | 353 |\n", "| MaxQ1Vals | 347 |\n", "| MinQ1Vals | -1.82e+03 |\n", "| AverageQ2Vals | -297 |\n", "| StdQ2Vals | 353 |\n", "| MaxQ2Vals | 348 |\n", "| MinQ2Vals | -1.87e+03 |\n", "| AverageLogPi | 4.83 |\n", "| StdLogPi | 1.99 |\n", "| MaxLogPi | 34.5 |\n", "| MinLogPi | -6.72 |\n", "| LossPi | 284 |\n", "| LossQ | 5.28e+03 |\n", "| Time | 636 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 56 |\n", "| AverageEpRet | -655 |\n", "| StdEpRet | 296 |\n", "| MaxEpRet | -58.9 |\n", "| MinEpRet | -1.08e+03 |\n", "| AverageTestEpRet | -1.11e+03 |\n", "| StdTestEpRet | 638 |\n", "| MaxTestEpRet | -219 |\n", "| MinTestEpRet | -2.38e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.24e+04 |\n", "| AverageQ1Vals | -252 |\n", "| StdQ1Vals | 357 |\n", "| MaxQ1Vals | 401 |\n", "| MinQ1Vals | -1.82e+03 |\n", "| AverageQ2Vals | -252 |\n", "| StdQ2Vals | 357 |\n", "| MaxQ2Vals | 402 |\n", "| MinQ2Vals | -1.87e+03 |\n", "| AverageLogPi | 4.86 |\n", "| StdLogPi | 2.07 |\n", "| MaxLogPi | 35.5 |\n", "| MinLogPi | -8.26 |\n", "| LossPi | 240 |\n", "| LossQ | 5.14e+03 |\n", "| Time | 648 |\n", "---------------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------\n", "| Epoch | 57 |\n", "| AverageEpRet | -685 |\n", "| StdEpRet | 380 |\n", "| MaxEpRet | -60.3 |\n", "| MinEpRet | -1.38e+03 |\n", "| AverageTestEpRet | -558 |\n", "| StdTestEpRet | 286 |\n", "| MaxTestEpRet | -184 |\n", "| MinTestEpRet | -1.28e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.4e+04 |\n", "| AverageQ1Vals | -215 |\n", "| StdQ1Vals | 350 |\n", "| MaxQ1Vals | 428 |\n", "| MinQ1Vals | -1.76e+03 |\n", "| AverageQ2Vals | -215 |\n", "| StdQ2Vals | 350 |\n", "| MaxQ2Vals | 426 |\n", "| MinQ2Vals | -1.79e+03 |\n", "| AverageLogPi | 4.88 |\n", "| StdLogPi | 2.14 |\n", "| MaxLogPi | 34.1 |\n", "| MinLogPi | -6.51 |\n", "| LossPi | 202 |\n", "| LossQ | 4.95e+03 |\n", "| Time | 659 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 58 |\n", "| AverageEpRet | -852 |\n", "| StdEpRet | 640 |\n", "| MaxEpRet | -107 |\n", "| MinEpRet | -2.85e+03 |\n", "| AverageTestEpRet | -569 |\n", "| StdTestEpRet | 298 |\n", "| MaxTestEpRet | -135 |\n", "| MinTestEpRet | -1.04e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.57e+04 |\n", "| AverageQ1Vals | -243 |\n", "| StdQ1Vals | 349 |\n", "| MaxQ1Vals | 389 |\n", "| MinQ1Vals | -1.89e+03 |\n", "| AverageQ2Vals | -243 |\n", "| StdQ2Vals | 349 |\n", "| MaxQ2Vals | 383 |\n", "| MinQ2Vals | -1.92e+03 |\n", "| AverageLogPi | 4.78 |\n", "| StdLogPi | 2.07 |\n", "| MaxLogPi | 41.7 |\n", "| MinLogPi | -7.86 |\n", "| LossPi | 232 |\n", "| LossQ | 4.59e+03 |\n", "| Time | 671 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 59 |\n", "| AverageEpRet | -624 |\n", "| StdEpRet | 303 |\n", "| MaxEpRet | -73.6 |\n", "| MinEpRet | -1.17e+03 |\n", "| AverageTestEpRet | -753 |\n", "| StdTestEpRet | 372 |\n", "| MaxTestEpRet | -213 |\n", "| MinTestEpRet | -1.46e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.73e+04 |\n", "| AverageQ1Vals | -286 |\n", "| StdQ1Vals | 364 |\n", "| MaxQ1Vals | 405 |\n", "| MinQ1Vals | -1.94e+03 |\n", "| AverageQ2Vals | -286 |\n", "| StdQ2Vals | 364 |\n", "| MaxQ2Vals | 404 |\n", "| MinQ2Vals | -1.98e+03 |\n", "| AverageLogPi | 4.78 |\n", "| StdLogPi | 1.95 |\n", "| MaxLogPi | 34.3 |\n", "| MinLogPi | -7.8 |\n", "| LossPi | 274 |\n", "| LossQ | 4.77e+03 |\n", "| Time | 683 |\n", "---------------------------------------\n", "---------------------------------------\n", "| Epoch | 60 |\n", "| AverageEpRet | -686 |\n", "| StdEpRet | 362 |\n", "| MaxEpRet | -175 |\n", "| MinEpRet | -1.34e+03 |\n", "| AverageTestEpRet | -588 |\n", "| StdTestEpRet | 318 |\n", "| MaxTestEpRet | -107 |\n", "| MinTestEpRet | -1.34e+03 |\n", "| EpLen | 110 |\n", "| TestEpLen | 110 |\n", "| TotalEnvInteracts | 9.9e+04 |\n", "| AverageQ1Vals | -219 |\n", "| StdQ1Vals | 359 |\n", "| MaxQ1Vals | 507 |\n", "| MinQ1Vals | -1.89e+03 |\n", "| AverageQ2Vals | -219 |\n", "| StdQ2Vals | 359 |\n", "| MaxQ2Vals | 505 |\n", "| MinQ2Vals | -1.93e+03 |\n", "| AverageLogPi | 4.82 |\n", "| StdLogPi | 2.06 |\n", "| MaxLogPi | 33.2 |\n", "| MinLogPi | -7.57 |\n", "| LossPi | 206 |\n", "| LossQ | 4.4e+03 |\n", "| Time | 694 |\n", "---------------------------------------\n" ] } ], "source": [ "# Setup baseline 1\n", "logger_kwargs = dict(output_dir='sac_b1', exp_name='baseline')\n", "seed_b = 0\n", "epochs_b = 60\n", "maxeplen_b = 110\n", "\n", "spe_b = maxeplen_b * 15\n", "repsize_b = 1000000\n", "gamma_b = 0.99\n", "polyak_b = 0.9\n", "batchsize_b = 100\n", "startsteps_b = 5000\n", "args_b = dict(hidden_sizes=[300,], activation=torch.nn.ReLU)\n", "lr_b = 0.001\n", "alpha_b = 0.2\n", "\n", "\n", "# Baseline 1 training\n", "spinup.sac_pytorch(GyroscopeEnv, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n", "polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, lr = lr_b, alpha = alpha_b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Template to use environment installed to gym" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Log dir ddpg_b0 already exists! Storing info there anyway.\n", + "\u001b[32;1mLogging data to ddpg_b0/progress.txt\u001b[0m\n", + "\u001b[36;1mSaving config:\n", + "\u001b[0m\n", + "{\n", + " \"ac_kwargs\":\t{\n", + " \"activation\":\t\"ReLU\",\n", + " \"hidden_sizes\":\t[\n", + " 300\n", + " ]\n", + " },\n", + " \"act_noise\":\t0.1,\n", + " \"actor_critic\":\t\"MLPActorCritic\",\n", + " \"batch_size\":\t100,\n", + " \"env_fn\":\t\" at 0x7f6eb0527950>\",\n", + " \"epochs\":\t60,\n", + " \"exp_name\":\t\"baseline\",\n", + " \"gamma\":\t0.99,\n", + " \"logger\":\t{\n", + " \"\":\t{\n", + " \"epoch_dict\":\t{},\n", + " \"exp_name\":\t\"baseline\",\n", + " \"first_row\":\ttrue,\n", + " \"log_current_row\":\t{},\n", + " \"log_headers\":\t[],\n", + " \"output_dir\":\t\"ddpg_b0\",\n", + " \"output_file\":\t{\n", + " \"<_io.TextIOWrapper name='ddpg_b0/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", + " \"mode\":\t\"w\"\n", + " }\n", + " }\n", + " }\n", + " },\n", + " \"logger_kwargs\":\t{\n", + " \"exp_name\":\t\"baseline\",\n", + " \"output_dir\":\t\"ddpg_b0\"\n", + " },\n", + " \"max_ep_len\":\t110,\n", + " \"num_test_episodes\":\t10,\n", + " \"pi_lr\":\t0.001,\n", + " \"polyak\":\t0.995,\n", + " \"q_lr\":\t0.001,\n", + " \"replay_size\":\t1000000,\n", + " \"save_freq\":\t1,\n", + " \"seed\":\t0,\n", + " \"start_steps\":\t10000,\n", + " \"steps_per_epoch\":\t1650,\n", + " \"update_after\":\t1000,\n", + " \"update_every\":\t50\n", + "}\n", + "\u001b[32;1m\n", + "Number of parameters: \t pi: 3002, \t q: 3301\n", + "\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/matthieulc/.local/lib/python3.6/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: Box bound precision lowered by casting to float32\u001b[0m\n", + " warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------------\n", + "| Epoch | 1 |\n", + "| AverageEpRet | -6.65e+03 |\n", + "| StdEpRet | 1.07e+03 |\n", + "| MaxEpRet | -4.78e+03 |\n", + "| MinEpRet | -8.51e+03 |\n", + "| AverageTestEpRet | -7.62e+03 |\n", + "| StdTestEpRet | 1.67e+03 |\n", + "| MaxTestEpRet | -4.37e+03 |\n", + "| MinTestEpRet | -9.25e+03 |\n", + "| EpLen | 110 |\n", + "| TestEpLen | 110 |\n", + "| TotalEnvInteracts | 1.65e+03 |\n", + "| AverageQVals | -108 |\n", + "| StdQVals | 53.1 |\n", + "| MaxQVals | 3.47 |\n", + "| MinQVals | -275 |\n", + "| LossPi | 99.3 |\n", + "| LossQ | 1.61e+03 |\n", + "| Time | 6.36 |\n", + "---------------------------------------\n", + "---------------------------------------\n", + "| Epoch | 2 |\n", + "| AverageEpRet | -6.6e+03 |\n", + "| StdEpRet | 1.23e+03 |\n", + "| MaxEpRet | -4.64e+03 |\n", + "| MinEpRet | -9.46e+03 |\n", + "| AverageTestEpRet | -6.52e+03 |\n", + "| StdTestEpRet | 2.2e+03 |\n", + "| MaxTestEpRet | -3.36e+03 |\n", + "| MinTestEpRet | -9.68e+03 |\n", + "| EpLen | 110 |\n", + "| TestEpLen | 110 |\n", + "| TotalEnvInteracts | 3.3e+03 |\n", + "| AverageQVals | -336 |\n", + "| StdQVals | 121 |\n", + "| MaxQVals | -60.5 |\n", + "| MinQVals | -813 |\n", + "| LossPi | 321 |\n", + "| LossQ | 1.33e+03 |\n", + "| Time | 16.4 |\n", + "---------------------------------------\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;31m# Training\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m spinup.ddpg_pytorch(env_fn, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n\u001b[0;32m---> 23\u001b[0;31m polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, act_noise = actnoise_b, pi_lr = pilr_b, q_lr = qlr_b)\n\u001b[0m", + "\u001b[0;32m~/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/algos/pytorch/ddpg/ddpg.py\u001b[0m in \u001b[0;36mddpg\u001b[0;34m(env_fn, actor_critic, ac_kwargs, seed, steps_per_epoch, epochs, replay_size, gamma, polyak, pi_lr, q_lr, batch_size, start_steps, update_after, update_every, act_noise, num_test_episodes, max_ep_len, logger_kwargs, save_freq)\u001b[0m\n\u001b[1;32m 281\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0m_\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mupdate_every\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 282\u001b[0m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mreplay_buffer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msample_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 283\u001b[0;31m \u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbatch\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 284\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 285\u001b[0m \u001b[0;31m# End of epoch handling\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/algos/pytorch/ddpg/ddpg.py\u001b[0m in \u001b[0;36mupdate\u001b[0;34m(data)\u001b[0m\n\u001b[1;32m 207\u001b[0m \u001b[0mloss_pi\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcompute_loss_pi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[0mloss_pi\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[0;32m--> 209\u001b[0;31m \u001b[0mpi_optimizer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\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 210\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0;31m# Unfreeze Q-network so you can optimize it at next DDPG step.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.6/site-packages/torch/optim/adam.py\u001b[0m in \u001b[0;36mstep\u001b[0;34m(self, closure)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[0mdenom\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mmax_exp_avg_sq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbias_correction2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'eps'\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 102\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 103\u001b[0;31m \u001b[0mdenom\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mexp_avg_sq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbias_correction2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgroup\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'eps'\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 104\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 105\u001b[0m \u001b[0mstep_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'lr'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mbias_correction1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], "source": [ "# Parameters\n", "logger_kwargs = dict(output_dir='ddpg_b0', exp_name='baseline')\n", "seed_b = 0\n", "epochs_b = 60\n", "maxeplen_b = 110\n", "\n", "spe_b = maxeplen_b * 15\n", "repsize_b = 1000000\n", "gamma_b = 0.99\n", "polyak_b = 0.995\n", "batchsize_b = 100\n", "startsteps_b = 10000\n", "args_b = dict(hidden_sizes=[300,], activation=torch.nn.ReLU)\n", "actnoise_b = 0.1\n", "pilr_b = 0.001\n", "qlr_b = 0.001\n", "\n", "# Env function\n", "env_fn = lambda : gym.make('gyroscopeenv-v0')\n", "\n", "# Training\n", "spinup.ddpg_pytorch(env_fn, ac_kwargs = args_b, seed = seed_b, steps_per_epoch = spe_b, epochs = epochs_b, replay_size = repsize_b, gamma = gamma_b,\n", "polyak = polyak_b, batch_size = batchsize_b, start_steps = startsteps_b, max_ep_len = maxeplen_b,logger_kwargs = logger_kwargs, act_noise = actnoise_b, pi_lr = pilr_b, q_lr = qlr_b)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Gn3Gp40bcOVz" }, "source": [ "## Test" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 106 }, "colab_type": "code", "executionInfo": { "elapsed": 972, "status": "ok", "timestamp": 1584036455886, "user": { "displayName": "Matthieu Le Cauchois", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", "userId": "10992927378504656501" }, "user_tz": -60 }, "id": "6GyY0wE-QBOj", "outputId": "9a5e9011-e024-4a65-8383-83c062cdcad9" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-377.97614296159486\n" ] } ], "source": [ "# Creat environment\n", "env = GyroscopeEnv()\n", "env.seed(2)\n", "\n", "# Create agent\n", "agent = torch.load('td3_b1/pyt_save/model.pt') # best is td3_b0\n", "\n", "# Test parameters\n", "x1,x2,x3,x4,x1_ref,x3_ref,w = 2,1,0,1,1,3,25\n", "state = env.reset(np.array([x1,x2,x3,x4,x1_ref,x3_ref,w]))\n", "val = []\n", "act = []\n", "dt = 0.01\n", "time = np.arange(0, 4, dt)\n", "score = 0\n", "for i in range(len(time)):\n", " val.append(state)\n", " action = agent.act(torch.as_tensor(state, dtype=torch.float32))\n", " act.append(action)\n", " state, reward, done, _ = env.step(action)\n", " score += reward\n", " if done:\n", " break \n", "\n", "env.close()\n", "print(score)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "vvMjuRHDcfrE" }, "source": [ "## Plot" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 1856, "status": "ok", "timestamp": 1584036457424, "user": { "displayName": "Matthieu Le Cauchois", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", "userId": "10992927378504656501" }, "user_tz": -60 }, "id": "aCZCqujgcMVA", "outputId": "05490294-aab8-4933-ca9b-e13ba85ecf6d" }, "outputs": [ { "data": { "image/png": "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ImIxsBWwoK2FDsHxxx/P5MmTn/Pc3/3d33HcccexfPlyDjvssHVec/TRR3P00UezYMECjjjiiHX2f+ADH+DII4/k4Ycf5qijjlpn/wknnMAb3vAG7rrrLt7//vevs//EE0/k4IMP5qabbuL4449/zr5ly+ClL/0yt976Gm644Rrg02yyydppGCdNgu9+91vst9/eXH755Xzxi1/k0kufe/7vfe97vPjFL+bnP/85X//619e5/llnncW0adM4++yz+e53v7vO/nPPPZcpU6Zw5plncuaZZ66z/5JLLmH8+PFccMEFzJo1a5393d3dAJxyyin84he/eM6+cePGcWmj4C984Qv8+te/fs7+rbbaivPOOw+AT33qU1x77bXP2b/jjjvyox/9CCje25tuuuk5+3fddVdmz54NwDHHHMPd/RYa23vvvfnWt74FwLve9S4e6TukD9hvv/04+eSTAXjrW9/KE0888Zz9Bx10EJ/97GcBOPTQQ+np6XnO/sMPP5yPfexjAE2ntRroZ2/x4sVNX1/mZw/gy1/+Mq95zWu45ppr+PSnP73O/m9961vsvffaz15/7frsfec73+Gcc85ZZ//GPnuf+MQnAD97ZfzeO+SQQ+jq6vKzV8LvvTFjxjz7nvrZa93vvUWLFjF58mQ/eyX83uttWz97rfu9d/DBB6+zv9PUKkjLzLnA3MbjpRFxB0WHp2+Q9kbgh407B6+LiMkRsV3jtZ3tnnsY++ST8JGPwKmnFtM77rdf1VVJkiRJUq1l5mpg74iYDPwsIvbMzFsHe56IOAY4BmDq1KnP/uNOlVavXs2iRYue89zdd99Nd3c3K1asWGcfwJ133kl3dzeLFy9uuv+2226ju7ub+fPnN91/yy23MHHiRB566KGm+2+++WZGjx7Nvffey6JFi3j66VE8+eRYnnxyDCtXbsKNNyZ77LGYww//M3ffvZRx41b3u/4NrFy5iJtvvrnp+a+//nrmzp3LLbfc0nT/tddey3333cdtt93WdP/VV1/NFltswZ133tl0/5VXXslmm23GypUrm+7vfd/vu+++dfb39PQ8u/+BBx5YZ/+aNWue3d+s/caMGfPs/kceeWSd/Y8++uiz+x999NF19j/yyCPP7p83b946+x966KFn9z/++OMs6bfQ3AMPPPDs/oULF7Jy5crn7L/vvvue3d+sbQb62Vu2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SHtykl8Y339tkpdWVa11Aee8W5Q90rqTgweTAwe++ee220bFwEOHRrcbub/ac92T/1x++Z5cc83Gzt3uvC36+/31X5+USy/dvvc7UnziEyfnYx+bdRQ7k9wOR26HIa/DkdvpO+GE5ClPmXUU65taIa2q7pnkZ5N8clqvucJLk9wxo3GNSfLe7v6pqjopo9EcZyXZk+T14+NHJfnj7n7LQPEM7/bbFdIAAIAjygBry5OTfGrZ42uTPHKtc7r7YFXdlNF+bZ9fEdtc77O95MYb/35uuuno7Nt30WDv253cdNMd8oUvHJ0vfenofPGLo9svfekO2b//qHzlK7vzla/szi23fP3+V76yOwcO7MrBg5XbbhvddtdgMW7dd8w6gB1skGuwyQNmHcAOJrfDkdthyOtw5Hbavuu7bsq97vWhud5ne9OFtKq6Ot+8IfTRGRWxkuSHtxrUarr7tDWe/3SSs8b3r0rykCHefyYOHRpdSggAALDDzGptuRWLFv9jKwAAIABJREFUsM92ktz73qM90qYVX3dy2WXJvn3JxRcnl18++rnxxm8+9053So47LrnLXZK73jU59tjk5JNH9+985+SYY5Kjj/7mnzve8RsfH3XU6LrSXbu+fruR+8uf27UrqZr8533ve28e9ahHbfj87bTo7/e//tf/yqMf/ehte78jxeHyyuTkdjhyOwx5HY7cTt9RRx2b447bO9f7bE/SkfbufPNi56tJ/ibJ/+juoTrSjixLA+11pAEAADvTdq0tr0tyn2WPTxk/t9o511bVUUmOTfKFKb3/tpvWHml/93fJ7/5u8nu/l1xxxei5449PvvM7k6c9LXngA0dFsj17RiN59uwZFcx2ShHkb//2q7nf/WYdxc503HG35d73nnUUO8+xx96We91r1lHsTHI7HLkdhrwOR26PTJsupHX3MweIg5WWBtorpAEAADvQNq4tP5DkAVV1v4wKZuckefqKc85P8owkf5XkKUneuaj7oyVb3yPt9tuTl788ecELks98Jvnu705+53eSJzwhOfXUnVMoAwCAjZjaHmlMmY40AACALRvvefacJG9NsjvJK7r70qp6YZIPdvf5SV6e5A+q6sokX8yo2Lawdu+evCPtmmuSZz87ede7kkc/Onnd65Lv+Z6phgcAAAtFIW1eLV0+aI80AACALenuC5JcsOK5Fyy7/9Uk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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "f, axs = plt.subplots(4,2,figsize=(30,30))\n", "plt.subplot(4,2,1)\n", "plt.title('Red gimbal angle',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\theta$ (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[0] for row in val],'r-')\n", "plt.plot(time, [row[4] for row in val], color='black', linestyle='dashed')\n", "\n", "plt.subplot(4,2,2)\n", "plt.title('Blue gimbal angle',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\phi$ (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[2] for row in val],'b-')\n", "plt.plot(time, [row[5] for row in val], color='black', linestyle='dashed')\n", "\n", "plt.subplot(4,2,3)\n", "plt.title('Red gimbal speed',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\dot \\theta$ (rad/s)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[1] for row in val],'r-')\n", "\n", "plt.subplot(4,2,4)\n", "plt.title('Blue gimbal speed',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\dot \\phi$ (rad/s)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[3] for row in val],'b-')\n", "\n", "plt.subplot(4,2,5)\n", "plt.title('Red gimbal tracking error',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\theta$ error (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[angle_normalize(row[0]- row[4]) for row in val],'r-')\n", "\n", "plt.subplot(4,2,6)\n", "plt.title('Blue gimbal tracking error',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\phi$ error (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[angle_normalize(row[2]- row[5]) for row in val],'b-')\n", "\n", "plt.subplot(4,2,7)\n", "plt.title('Red gimbal input',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'u1 (V)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[0] for row in act],'r-')\n", "\n", "plt.subplot(4,2,8)\n", "plt.title('Blue gimbal input',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'u2 (V)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[1] for row in act],'b-')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "fz9r-gaStzpk" }, "source": [ "## 3D rendering" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": {}, "colab_type": "code", "id": "HQM1E8JYc-cC" }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "if (typeof Jupyter !== \"undefined\") { window.__context = { glowscript_container: $(\"#glowscript\").removeAttr(\"id\")};}else{ element.textContent = ' ';}" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Scene\n", "scene = canvas(background=color.white) \n", "\n", "# Objects\n", "redGimbal = ring(pos=vector(0,0,0), axis=vector(0,0,1), radius=2, thickness=0.2,color=vector(0.9,0,0))\n", "blueGimbal1 = cylinder(pos=vector(0,0,0), axis=vector(0,2,0), radius=0.3,color=color.blue)\n", "blueGimbal2 = cylinder(pos=vector(0,0,0), axis=vector(0,-2,0), radius=0.3,color=color.blue)\n", "disk1 = cylinder(pos=vector(0,0,0), axis=vector(0,0,0.15), radius=1.3,color=color.yellow)\n", "disk2 = cylinder(pos=vector(0,0,0), axis=vector(0,0,-0.15), radius=1.3,color=color.yellow)\n", "baseR = extrusion(path=[vec(0,0,0), vec(0.7,0,0)],shape=[ shapes.circle(radius=0.5) ], pos=vec(2,0,0), color=color.black)\n", "baseL = extrusion(path=[vec(-0.7,0,0), vec(0,0,0)],shape=[ shapes.circle(radius=0.5) ], pos=vec(-2,0,0), color=color.black)\n", "\n", "loops = 0\n", "ctime = 0\n", "start = clock()\n", "N = 400\n", "\n", "for k in range(len(time)):\n", " rate(N)\n", " ct = clock()\n", " theta = val[k][0]\n", " phi = val[k][2]\n", " redGimbal.axis = vector(0,-sin(theta), cos(theta))\n", " blueGimbal1.axis = 2*vector(0,cos(theta), sin(theta))\n", " blueGimbal2.axis = -2*vector(0,cos(theta), sin(theta))\n", " disk1.axis = 0.15*vector(-sin(phi),-sin(theta)*cos(phi),cos(theta)*cos(phi))\n", " disk2.axis = -0.15*vector(-sin(phi),-sin(theta)*cos(phi),cos(theta)*cos(phi))\n", " ctime += clock()-ct\n", " loops += 1" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "name": "gyroscope_ddpg_testing.ipynb", "provenance": [] }, "kernelspec": { "display_name": "ps1venv", "language": "python", "name": "ps1venv" }, "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.9" } }, "nbformat": 4, "nbformat_minor": 1 } diff --git a/code/training_spinuplib/gyroscope_paramsearch_spinuplib.ipynb b/code/training_spinuplib/gyroscope_paramsearch_spinuplib.ipynb index 896ae57..a8e5e35 100644 --- a/code/training_spinuplib/gyroscope_paramsearch_spinuplib.ipynb +++ b/code/training_spinuplib/gyroscope_paramsearch_spinuplib.ipynb @@ -1,501 +1,941 @@ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "x83dMPapQBN6" }, "source": [ "# Gyroscope TD3 hyperparameter search (spinup library)" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 1, "metadata": { "colab": {}, "colab_type": "code", "id": "fuJhdd479TpP" }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n", + "\n", + "Bad key \"text.kerning_factor\" on line 4 in\n", + "/home/matthieulc/.local/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test_patch.mplstyle.\n", + "You probably need to get an updated matplotlibrc file from\n", + "http://github.com/matplotlib/matplotlib/blob/master/matplotlibrc.template\n", + "or from the matplotlib source distribution\n" + ] + }, + { + "data": { + "text/html": [ + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "if (typeof Jupyter !== \"undefined\") { window.__context = { glowscript_container: $(\"#glowscript\").removeAttr(\"id\")};}else{ element.textContent = ' ';}" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import gym\n", "from gym import spaces\n", "from gym.utils import seeding\n", "import gym_GyroscopeEnv\n", "\n", "from spinup.utils.run_utils import ExperimentGrid\n", "from spinup import td3_pytorch\n", "from spinup import ppo_pytorch\n", "\n", "import torch\n", "\n", "from os import path\n", "from scipy.integrate import solve_ivp\n", "import random\n", "import numpy as np\n", "from collections import deque\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "from vpython import *\n", "import argparse" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Environment Class and Modules" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "class GyroscopeEnv(gym.Env):\n", + " \n", + " \n", + " \"\"\"\n", + " GyroscopeEnv is a double gimbal control moment gyroscope (DGCMG) with 2 input voltage u1 and u2 \n", + " on the two gimbals, and disk speed assumed constant (parameter w). Simulation is based on the \n", + " Quanser 3-DOF gyroscope setup.\n", + " \n", + " \n", + " **STATE:**\n", + " The state consists of the angle and angular speed of the outer red gimbal (theta = x1, thetadot = x2),\n", + " the angle and angular speed of the inner blue gimbal (phi = x3, phidot = x4), the difference to the reference\n", + " for tracking on theta and phi (tracking error theta = diff_x1, tracking error phi = diff_x3), and the \n", + " disk speed (disk speed = w):\n", + " \n", + " state = [x1, x2, x3, x4, diff_x1, diff_x3, w]\n", + " \n", + " **ACTIONS:**\n", + " The actions are the input voltage to create the red and blue gimbal torque (red voltage = u1, blue voltage = u2),\n", + " and are continuous in a range of -10 and 10V:\n", + " \n", + " action = [u1,u2]\n", + " \n", + " \"\"\"\n", + " \n", + " \n", + " metadata = {\n", + " 'render.modes' : ['human', 'rgb_array'],\n", + " 'video.frames_per_second' : 30\n", + " }\n", + "\n", + " def __init__(self):\n", + " \n", + " # Inertias in Kg*m2\n", + " self.Jbx1 = 0.0019\n", + " self.Jbx2 = 0.0008\n", + " self.Jbx3 = 0.0012\n", + " self.Jrx1 = 0.0179\n", + " self.Jdx1 = 0.0028\n", + " self.Jdx3 = 0.0056\n", + " \n", + " # Combined inertias\n", + " self.J1 = self.Jbx1 - self.Jbx3 + self.Jdx1 - self.Jdx3\n", + " self.J2 = self.Jbx1 + self.Jdx1 + self.Jrx1\n", + " self.J3 = self.Jbx2 + self.Jdx1\n", + "\n", + " # Motor constants\n", + " self.Kamp = 0.5 # A/V\n", + " self.Ktorque = 0.0704 # Nm/A\n", + " self.eff = 0.86\n", + " self.nRed = 1.5\n", + " self.nBlue = 1\n", + " self.KtotRed = self.Kamp*self.Ktorque*self.eff*self.nRed \n", + " self.KtotBlue = self.Kamp*self.Ktorque*self.eff*self.nBlue \n", + " \n", + " # Time step in s\n", + " self.dt = 0.05\n", + " \n", + " # Error\n", + " self.int_diff_x1 = 0\n", + " self.int_diff_x3 = 0\n", + " \n", + " # Action space\n", + " self.maxVoltage = 10 # V\n", + " self.highAct = np.array([self.maxVoltage,self.maxVoltage])\n", + " self.action_space = spaces.Box(low = -self.highAct, high = self.highAct, dtype=np.float32) \n", + " \n", + " # Observation space (here it is equal to state space)\n", + " self.maxSpeed = 100 * 2 * np.pi / 60\n", + " self.maxAngle = np.pi\n", + " self.maxdiskSpeed = 300 * 2 * np.pi / 60\n", + " self.highObs = np.array([self.maxAngle,self.maxSpeed,self.maxAngle,self.maxSpeed,self.maxAngle,self.maxAngle,self.maxdiskSpeed])\n", + " self.observation_space = spaces.Box(low = -self.highObs, high = self.highObs, dtype=np.float32)\n", + "\n", + " # Seed for random number generation\n", + " self.seed()\n", + " \n", + " self.viewer = None\n", + "\n", + " def seed(self, seed=None):\n", + " self.np_random, seed = seeding.np_random(seed)\n", + " return [seed]\n", + " \n", + " \n", + "\n", + " def step(self,u):\n", + " x1, x2, x3, x4, x1_ref, x3_ref, w= self.state \n", + " u1,u2 = u\n", + " \n", + " # Angle error\n", + " diff_x1 = angle_normalize(x1 - x1_ref)\n", + " diff_x3 = angle_normalize(x3 - x3_ref)\n", + " \n", + " # Integral of error\n", + " self.int_diff_x1 = self.int_diff_x1 + diff_x1\n", + " self.int_diff_x3 = self.int_diff_x3 + diff_x3\n", + " \n", + " # Reward 1: differentiable reward (LQR obj function)\n", + " reward = -((3*diff_x1)**2 + (3*diff_x3)**2 + (.2*x2)**2 + (.2*x4)**2 + (.1*u1)**2 + (.1*u2)**2)\\\n", + " #-(0.01*abs(self.int_diff_x1) + 0.01*abs(self.int_diff_x3))\n", + "\n", + " \"\"\"# Count time spent in goal:\n", + " if abs(diff_x1)<0.05 and abs(diff_x3)<0.05:\n", + " self.countGoal +=1\n", + " else:\n", + " self.countGoal = 0\n", + " \n", + " # Reward 2: sparse reward for staying in goal range for a long time \n", + " if self.countGoal >= (self.timeGoal)/self.dt: #max expected reward over length becomes 0 + (totaltime-goaltime)\n", + " reward += 1\"\"\"\n", + "\n", + "\n", + " results = solve_ivp(fun = dxdt, t_span = (0, self.dt), y0 = [x1,x2,x3,x4], method='RK45', args=(u1,u2,self))\n", + " \n", + " x1 = angle_normalize(results.y[0][-1])\n", + " x2 = np.clip(results.y[1][-1],-self.maxSpeed,self.maxSpeed)\n", + " x3 = angle_normalize(results.y[2][-1])\n", + " x4 = np.clip(results.y[3][-1],-self.maxSpeed,self.maxSpeed)\n", + " \n", + " self.state = np.asarray([x1,x2,x3,x4,x1_ref, x3_ref,w])\n", + "\n", + " return (self.state, reward, False, {})\n", + "\n", + " def reset(self, state = None):\n", + " \n", + " \n", + " # Generate random state (for training) or use given state (for simulation)\n", + " if state is None:\n", + " self.state = self.np_random.uniform(low=-self.highObs, high=self.highObs)\n", + " else:\n", + " self.state = state\n", + "\n", + " \n", + " return self.state\n", + "\n", + "\n", + " def render(self, mode='human'):\n", + " return None\n", + " \n", + " def close(self):\n", + " if self.viewer:\n", + " self.viewer.close()\n", + " self.viewer = None\n", + " \n", + "def dxdt(t, x, u1, u2, gyro):\n", + " \n", + " # Rewrite constants shorter\n", + " J1 = gyro.J1\n", + " J2 = gyro.J2\n", + " J3 = gyro.J3\n", + " Jdx3 = gyro.Jdx3\n", + " KtotRed = gyro.KtotRed\n", + " KtotBlue = gyro.KtotBlue\n", + " w = x[-1]\n", + "\n", + " # Convert input voltage to input torque\n", + " u1,u2 = KtotRed*u1, KtotBlue*u2\n", + " \n", + " # Equations of motion \n", + " dx_dt = [0, 0, 0, 0]\n", + " dx_dt[0] = x[1]\n", + " dx_dt[1] = (u1+J1*np.sin(2*x[2])*x[1]*x[3]-Jdx3*np.cos(x[2])*x[3]*w)/(J2 + J1*np.power(np.sin(x[2]),2))\n", + " dx_dt[2] = x[3]\n", + " dx_dt[3] = (u2 - J1*np.cos(x[2])*np.sin(x[2])*np.power(x[1],2)+Jdx3*np.cos(x[2])*x[1]*w)/J3\n", + " return dx_dt\n", + " \n", + "def angle_normalize(x):\n", + " return (((x+np.pi) % (2*np.pi)) - np.pi) # To keep the angles between -pi and pi\n" + ] + }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "be0wYIeBQBOc" }, "source": [ "## Search" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 533 }, "colab_type": "code", "executionInfo": { "elapsed": 654004, "status": "error", "timestamp": 1584037207187, "user": { "displayName": "Matthieu Le Cauchois", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", "userId": "10992927378504656501" }, "user_tz": -60 }, "id": "fLyFHs0yQBOd", "outputId": "260489ff-5e40-416a-e529-5a0cfcaefceb" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\r", "Launching in...: | ? 00:00" ] }, { "name": "stdout", "output_type": "stream", "text": [ "================================================================================\n", - "\u001b[32;1mExperimentGrid [ppo-pyt-bench] runs over parameters:\n", + "\u001b[32;1mExperimentGrid [grid search td3 for gyro] runs over parameters:\n", "\u001b[0m\n", " \u001b[36;1menv_fn \u001b[0m [] \n", "\n", - "\t at 0x7fbfb44aeb70>\n", + "\tGyroscopeEnv\n", "\n", " \u001b[36;1mseed \u001b[0m [see] \n", "\n", "\t0\n", "\t10\n", + "\t20\n", "\n", " \u001b[36;1mepochs \u001b[0m [epo] \n", "\n", - "\t10\n", + "\t3\n", "\n", " \u001b[36;1msteps_per_epoch \u001b[0m [ste] \n", "\n", - "\t4000\n", + "\t1650\n", + "\n", + " \u001b[36;1mreplay_size \u001b[0m [rep] \n", + "\n", + "\t1000000\n", + "\n", + " \u001b[36;1mgamma \u001b[0m [gam] \n", + "\n", + "\t0.95\n", + "\t0.99\n", + "\n", + " \u001b[36;1mpolyak \u001b[0m [pol] \n", + "\n", + "\t0.995\n", + "\t0.999\n", + "\n", + " \u001b[36;1mbatch_size \u001b[0m [bat] \n", + "\n", + "\t100\n", + "\t150\n", + "\n", + " \u001b[36;1mstart_steps \u001b[0m [sta] \n", + "\n", + "\t10000\n", + "\t20000\n", + "\n", + " \u001b[36;1mmax_ep_len \u001b[0m [max] \n", + "\n", + "\t110\n", + "\n", + " \u001b[36;1mact_noise \u001b[0m [act] \n", + "\n", + "\t0.1\n", + "\n", + " \u001b[36;1mpi_lr \u001b[0m [pi] \n", + "\n", + "\t0.001\n", + "\n", + " \u001b[36;1mq_lr \u001b[0m [ql] \n", + "\n", + "\t0.001\n", + "\n", + " \u001b[36;1mpolicy_delay \u001b[0m [pol] \n", + "\n", + "\t2\n", + "\n", + " \u001b[36;1mtarget_noise \u001b[0m [tar] \n", + "\n", + "\t0.2\n", + "\n", + " \u001b[36;1mnoise_clip \u001b[0m [noi] \n", + "\n", + "\t0.5\n", + "\t0.7\n", "\n", " \u001b[36;1mac_kwargs:hidden_sizes \u001b[0m [hid] \n", "\n", - "\t(32,)\n", + "\t(300,)\n", + "\t(800,)\n", "\t(64, 64)\n", "\n", - " \u001b[36;1mac_kwargs:activation \u001b[0m [] \n", + " \u001b[36;1mac_kwargs:activation \u001b[0m [act] \n", "\n", - "\tTanh\n", "\tReLU\n", "\n", - " Variants, counting seeds: 8\n", - " Variants, not counting seeds: 4\n", + " Variants, counting seeds: 288\n", + " Variants, not counting seeds: 96\n", "\n", "================================================================================\n", "\n", "\u001b[32;1mPreparing to run the following experiments...\u001b[0m\n", "\n", - "ppo-pyt-bench_-lambda-_hid32_relu\n", - "ppo-pyt-bench_-lambda-_hid32_tanh\n", - "ppo-pyt-bench_-lambda-_hid64-64_relu\n", - "ppo-pyt-bench_-lambda-_hid64-64_tanh\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta20000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat150_sta20000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat100_sta20000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-999_bat150_sta20000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat100_sta20000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-995_bat150_sta20000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat100_sta20000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta10000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta10000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta10000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta10000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta10000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta10000_noi0-7_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta20000_noi0-5_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta20000_noi0-5_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta20000_noi0-5_hid800\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta20000_noi0-7_hid300\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta20000_noi0-7_hid64-64\n", + "grid search td3 for gyro_gyroscopeenv_gam0-99_pol0-999_bat150_sta20000_noi0-7_hid800\n", "\n", "================================================================================\n", "\u001b[36;1m\n", "Launch delayed to give you a few seconds to review your experiments.\n", "\n", "To customize or disable this behavior, change WAIT_BEFORE_LAUNCH in\n", "spinup/user_config.py.\n", "\n", "\u001b[0m================================================================================\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[36;1mRunning experiment:\n", "\u001b[0m\n", - "ppo-pyt-bench_-lambda-_hid32_tanh\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid300\n", "\n", "\u001b[36;1mwith kwargs:\n", "\u001b[0m\n", "{\n", " \"ac_kwargs\":\t{\n", - " \"activation\":\t\"Tanh\",\n", + " \"activation\":\t\"ReLU\",\n", " \"hidden_sizes\":\t[\n", - " 32\n", + " 300\n", " ]\n", " },\n", - " \"env_fn\":\t\" at 0x7fbfb44aeb70>\",\n", - " \"epochs\":\t10,\n", + " \"act_noise\":\t0.1,\n", + " \"batch_size\":\t100,\n", + " \"env_fn\":\t\"GyroscopeEnv\",\n", + " \"epochs\":\t3,\n", + " \"gamma\":\t0.95,\n", + " \"max_ep_len\":\t110,\n", + " \"noise_clip\":\t0.5,\n", + " \"pi_lr\":\t0.001,\n", + " \"policy_delay\":\t2,\n", + " \"polyak\":\t0.995,\n", + " \"q_lr\":\t0.001,\n", + " \"replay_size\":\t1000000,\n", " \"seed\":\t0,\n", - " \"steps_per_epoch\":\t4000\n", + " \"start_steps\":\t10000,\n", + " \"steps_per_epoch\":\t1650,\n", + " \"target_noise\":\t0.2\n", "}\n", "\n", "\n", "\n", "\n", "\n", + "\n", + "\n", "================================================================================\n", + "End of experiment.\n", + "\n", + "\n", + "Plot results from this run with:\n", + "\n", + "\u001b[32mpython -m spinup.run plot /home/matthieulc/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/data/grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid300/grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid300_s0\u001b[0m\n", + "\n", "\n", + "Watch the trained agent with:\n", "\n", - "There appears to have been an error in your experiment.\n", + "\u001b[32mpython -m spinup.run test_policy /home/matthieulc/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/data/grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid300/grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid300_s0\u001b[0m\n", "\n", - "Check the traceback above to see what actually went wrong. The \n", - "traceback below, included for completeness (but probably not useful\n", - "for diagnosing the error), shows the stack leading up to the \n", - "experiment launch.\n", "\n", "================================================================================\n", "\n", "\n", + "\n", + "\n", + "\n", + "\u001b[36;1mRunning experiment:\n", + "\u001b[0m\n", + "grid search td3 for gyro_gyroscopeenv_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid800\n", + "\n", + "\u001b[36;1mwith kwargs:\n", + "\u001b[0m\n", + "{\n", + " \"ac_kwargs\":\t{\n", + " \"activation\":\t\"ReLU\",\n", + " \"hidden_sizes\":\t[\n", + " 800\n", + " ]\n", + " },\n", + " \"act_noise\":\t0.1,\n", + " \"batch_size\":\t100,\n", + " \"env_fn\":\t\"GyroscopeEnv\",\n", + " \"epochs\":\t3,\n", + " \"gamma\":\t0.95,\n", + " \"max_ep_len\":\t110,\n", + " \"noise_clip\":\t0.5,\n", + " \"pi_lr\":\t0.001,\n", + " \"policy_delay\":\t2,\n", + " \"polyak\":\t0.995,\n", + " \"q_lr\":\t0.001,\n", + " \"replay_size\":\t1000000,\n", + " \"seed\":\t0,\n", + " \"start_steps\":\t10000,\n", + " \"steps_per_epoch\":\t1650,\n", + " \"target_noise\":\t0.2\n", + "}\n", + "\n", "\n" ] }, { - "ename": "CalledProcessError", - "evalue": "Command '['/usr/bin/python3', '/home/matthieulc/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/utils/run_entrypoint.py', 'eJy9VM2PGzUU9yRpmk3bDSUSW0olQEgoe5iZ7e62p+1KJYgDYYNYeq0sZ+zEs/HYw9jeEqRKSP3YVLK4rOECB/5TeJ5sdyMu5YCYUSb2+/J7v/d7/rn161Yb1Y/byoSytMyzuWDJ2tq7TTzNhcBTKzOTK+nP/YAj18MFmTOs52ylAjFIb+GJzYXJJTaLkoHMdYaKsidh88of+8EI1W9z1B9+RaNlY96udmiDIoHewI5GH6I36AydRdMGbdLWyw7Irh2goHmETLRsvogitGxNQfILrCj6HvnB2HWYPMWSFMyPEN94e0gDDukuoxO0RC8iMBy/8q4VsoZUtt1JylXB0oIYw3NmRZZ+qTJbMGl0evR4Ny11TCsRT1UVzxaV0pkqWZwpaSol0oppZauM6VSXuZS5nNmyXsKfNbnQaWUlrldJuQAUDgQpJpQc+tHvQ+T5DdecLQr/2m8bQMU9yAggzH4sWZWHDJIDoUCkDxPDrZzjUlh9JbuM5dqh7qn0xvO+6xRljiHdeQjL33PdK18/+m24iRqdKLzvR+1mpwnO82ekmmnvrktb4Ky03l2rXfwZJMj7r33IbdR87gfuBsYlyeZkxjD27uaq0qSuD4rDNfZB88G6JrnEoLYBFtU2/yfw9gxKCAVcnwk1AfRgw+/+I82Am1EKlPzuudeuQ9mUWGG0H7sWzTMDTm4TZkLbiuFTIizT/qkfQFx+hzcGvLXOueGwa9BJRKMV51zvsghoVny6A93hfb4JPXIfH+TlwnAl41yW1sT39+P93d3J/Z0He9k+e3jo+e1RD+iyXbPk67/gCWd+PuaDAGhBYM7wZY08fR4iI7eh7SQvSlWZMJT9MHea7435Pugfjl27UNTCYPMvXKueGX7bNanKINctvDb5GMKsTEO1rvODJeKtfXf+7Aoka46BiaXKOBCt63rasFJj4DKuhf7oz57bIBm+4Ftox02eU8ok1vlPEH30CUxml8D1ckrqK8Z9ZFSV8UTK5CKDZF3bekIkh9qsa2nGKAy9uyXUbAYnrp3RVdYAqpjmlXd//Oeko8SQtCxVDC2MJ0xmHMerwYwxVLe3iw1k+W4LrHcAXJj91QXmPn2nh7d21HD3LjhMxEwFrq8QA+fw864Zvuee8W/4Nj/i9/h4zL996vl37rN/cdl4fhzamvwNXbxFHg==']' returned non-zero exit status 1.", + "ename": "KeyboardInterrupt", + "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mCalledProcessError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0;31m# Run experiments\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m \u001b[0meg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mppo_pytorch\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnum_cpu\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'auto'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0;31m# Run experiments\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 39\u001b[0;31m \u001b[0meg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtd3_pytorch\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnum_cpu\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'auto'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m~/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/utils/run_utils.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, thunk, num_cpu, data_dir, datestamp)\u001b[0m\n\u001b[1;32m 548\u001b[0m \u001b[0mdata_dir\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata_dir\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[0mdatestamp\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdatestamp\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 550\u001b[0;31m **var)\n\u001b[0m\u001b[1;32m 551\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 552\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/utils/run_utils.py\u001b[0m in \u001b[0;36mcall_experiment\u001b[0;34m(exp_name, thunk, seed, num_cpu, data_dir, datestamp, **kwargs)\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecutable\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecutable\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'python'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mentrypoint\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencoded_thunk\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 171\u001b[0;31m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0menviron\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 172\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mCalledProcessError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m err_msg = '\\n'*3 + '='*DIV_LINE_WIDTH + '\\n' + dedent(\"\"\"\n", - "\u001b[0;32m/usr/lib/python3.6/subprocess.py\u001b[0m in \u001b[0;36mcheck_call\u001b[0;34m(*popenargs, **kwargs)\u001b[0m\n\u001b[1;32m 309\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 310\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpopenargs\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[0;32m--> 311\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mCalledProcessError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mretcode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmd\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 312\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mCalledProcessError\u001b[0m: Command '['/usr/bin/python3', '/home/matthieulc/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/utils/run_entrypoint.py', 'eJy9VM2PGzUU9yRpmk3bDSUSW0olQEgoe5iZ7e62p+1KJYgDYYNYeq0sZ+zEs/HYw9jeEqRKSP3YVLK4rOECB/5TeJ5sdyMu5YCYUSb2+/J7v/d7/rn161Yb1Y/byoSytMyzuWDJ2tq7TTzNhcBTKzOTK+nP/YAj18MFmTOs52ylAjFIb+GJzYXJJTaLkoHMdYaKsidh88of+8EI1W9z1B9+RaNlY96udmiDIoHewI5GH6I36AydRdMGbdLWyw7Irh2goHmETLRsvogitGxNQfILrCj6HvnB2HWYPMWSFMyPEN94e0gDDukuoxO0RC8iMBy/8q4VsoZUtt1JylXB0oIYw3NmRZZ+qTJbMGl0evR4Ny11TCsRT1UVzxaV0pkqWZwpaSol0oppZauM6VSXuZS5nNmyXsKfNbnQaWUlrldJuQAUDgQpJpQc+tHvQ+T5DdecLQr/2m8bQMU9yAggzH4sWZWHDJIDoUCkDxPDrZzjUlh9JbuM5dqh7qn0xvO+6xRljiHdeQjL33PdK18/+m24iRqdKLzvR+1mpwnO82ekmmnvrktb4Ky03l2rXfwZJMj7r33IbdR87gfuBsYlyeZkxjD27uaq0qSuD4rDNfZB88G6JrnEoLYBFtU2/yfw9gxKCAVcnwk1AfRgw+/+I82Am1EKlPzuudeuQ9mUWGG0H7sWzTMDTm4TZkLbiuFTIizT/qkfQFx+hzcGvLXOueGwa9BJRKMV51zvsghoVny6A93hfb4JPXIfH+TlwnAl41yW1sT39+P93d3J/Z0He9k+e3jo+e1RD+iyXbPk67/gCWd+PuaDAGhBYM7wZY08fR4iI7eh7SQvSlWZMJT9MHea7435Pugfjl27UNTCYPMvXKueGX7bNanKINctvDb5GMKsTEO1rvODJeKtfXf+7Aoka46BiaXKOBCt63rasFJj4DKuhf7oz57bIBm+4Ftox02eU8ok1vlPEH30CUxml8D1ckrqK8Z9ZFSV8UTK5CKDZF3bekIkh9qsa2nGKAy9uyXUbAYnrp3RVdYAqpjmlXd//Oeko8SQtCxVDC2MJ0xmHMerwYwxVLe3iw1k+W4LrHcAXJj91QXmPn2nh7d21HD3LjhMxEwFrq8QA+fw864Zvuee8W/4Nj/i9/h4zL996vl37rN/cdl4fhzamvwNXbxFHg==']' returned non-zero exit status 1." + "\u001b[0;32m/usr/lib/python3.6/subprocess.py\u001b[0m in \u001b[0;36mcheck_call\u001b[0;34m(*popenargs, **kwargs)\u001b[0m\n\u001b[1;32m 304\u001b[0m \u001b[0mcheck_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"ls\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"-l\"\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 305\u001b[0m \"\"\"\n\u001b[0;32m--> 306\u001b[0;31m \u001b[0mretcode\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\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 307\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mretcode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 308\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"args\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/lib/python3.6/subprocess.py\u001b[0m in \u001b[0;36mcall\u001b[0;34m(timeout, *popenargs, **kwargs)\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mpopenargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 288\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 289\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\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 290\u001b[0m \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 291\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkill\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/usr/lib/python3.6/subprocess.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout, endtime)\u001b[0m\n\u001b[1;32m 1475\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturncode\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1476\u001b[0m \u001b[0;32mbreak\u001b[0m \u001b[0;31m# Another thread waited.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1477\u001b[0;31m \u001b[0;34m(\u001b[0m\u001b[0mpid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msts\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_try_wait\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[0m\u001b[1;32m 1478\u001b[0m \u001b[0;31m# Check the pid and loop as waitpid has been known to\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1479\u001b[0m \u001b[0;31m# return 0 even without WNOHANG in odd situations.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/lib/python3.6/subprocess.py\u001b[0m in \u001b[0;36m_try_wait\u001b[0;34m(self, wait_flags)\u001b[0m\n\u001b[1;32m 1422\u001b[0m \u001b[0;34m\"\"\"All callers to this function MUST hold self._waitpid_lock.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1424\u001b[0;31m \u001b[0;34m(\u001b[0m\u001b[0mpid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msts\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwaitpid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwait_flags\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 1425\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mChildProcessError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1426\u001b[0m \u001b[0;31m# This happens if SIGCLD is set to be ignored or waiting\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "# Setup experiment grid object\n", "eg = ExperimentGrid(name='gyro-td3-randomsearch')\n", "num_seed = 3 # number of different seeds to test\n", "epochs = 60\n", "maxeplen = 110\n", "spe = maxeplen * 15\n", "repsize = 1000000\n", "actnoise = 0.1\n", "pilr = 0.001\n", "qlr = 0.001\n", "pd = 2\n", "targnoise = 0.2\n", "\n", "# Env function\n", "env_fn = lambda : gym.make('gyroscopeenv-v0')\n", "\n", "# Add parameter range\n", - "eg = ExperimentGrid(name='ppo-pyt-bench')\n", - "eg.add('env_fn', env_fn, '', True)\n", - "eg.add('seed', [10*i for i in range(2)])\n", - "eg.add('epochs', 10)\n", - "eg.add('steps_per_epoch', 4000)\n", - "eg.add('ac_kwargs:hidden_sizes', [(32,), (64,64)], 'hid')\n", - "eg.add('ac_kwargs:activation', [torch.nn.Tanh, torch.nn.ReLU], '')\n", - "\"\"\"eg.add('seed', [10*i for i in range(num_seed)])\n", + "eg = ExperimentGrid(name='grid search td3 for gyro')\n", + "eg.add('env_fn', GyroscopeEnv, '', True)\n", + "eg.add('seed', [10*i for i in range(num_seed)])\n", "eg.add('epochs', epochs)\n", "eg.add('steps_per_epoch', spe)\n", "eg.add('replay_size',repsize)\n", "eg.add('gamma',[0.95,0.99])\n", "eg.add('polyak',[0.995, 0.999])\n", "eg.add('batch_size',[100,150])\n", "eg.add('start_steps',[10000,20000])\n", "eg.add('max_ep_len',maxeplen)\n", "eg.add('act_noise',actnoise)\n", "eg.add('pi_lr',pilr)\n", "eg.add('q_lr',qlr)\n", "eg.add('policy_delay',pd)\n", "eg.add('target_noise',targnoise)\n", "eg.add('noise_clip',[0.5,0.7])\n", "eg.add('ac_kwargs:hidden_sizes', [(300,),(800,), (64,64)], 'hid')\n", - "eg.add('ac_kwargs:activation', torch.nn.ReLU, 'act')\"\"\"\n", + "eg.add('ac_kwargs:activation', torch.nn.ReLU, 'act')\n", "\n", "# Run experiments\n", - "eg.run(ppo_pytorch, num_cpu='auto')" + "eg.run(td3_pytorch, num_cpu='auto')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Gn3Gp40bcOVz" }, "source": [ "### Test" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 106 }, "colab_type": "code", "executionInfo": { "elapsed": 972, "status": "ok", "timestamp": 1584036455886, "user": { "displayName": "Matthieu Le Cauchois", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", "userId": "10992927378504656501" }, "user_tz": -60 }, "id": "6GyY0wE-QBOj", "outputId": "9a5e9011-e024-4a65-8383-83c062cdcad9" }, "outputs": [], "source": [ "# Creat environment\n", "env = GyroscopeEnv()\n", "env.seed(2)\n", "\n", "# Create agent\n", "agent = torch.load('model/pyt_save/model.pt')\n", "\n", "# Test parameters\n", "x1,x2,x3,x4,x1_ref,x3_ref,w = 0,1,0,1,1,3,25\n", "state = env.reset(np.array([x1,x2,x3,x4,x1_ref,x3_ref,w]))\n", "val = []\n", "act = []\n", "dt = 0.01\n", "time = np.arange(0, 4, dt)\n", "score = 0\n", "for i in range(len(time)):\n", " val.append(state)\n", " action = agent.act(torch.as_tensor(state, dtype=torch.float32))\n", " act.append(action)\n", " state, reward, done, _ = env.step(action)\n", " score += reward\n", " if done:\n", " break \n", "\n", "env.close()\n", "print(score)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "vvMjuRHDcfrE" }, "source": [ "## Plot" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 1856, "status": "ok", "timestamp": 1584036457424, "user": { "displayName": "Matthieu Le Cauchois", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", "userId": "10992927378504656501" }, "user_tz": -60 }, "id": "aCZCqujgcMVA", "outputId": "05490294-aab8-4933-ca9b-e13ba85ecf6d" }, "outputs": [], "source": [ "f, axs = plt.subplots(4,2,figsize=(30,30))\n", "plt.subplot(4,2,1)\n", "plt.title('Red gimbal angle',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\theta$ (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[0] for row in val],'r-')\n", "plt.plot(time, [row[4] for row in val], color='black', linestyle='dashed')\n", "\n", "plt.subplot(4,2,2)\n", "plt.title('Blue gimbal angle',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\phi$ (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[2] for row in val],'b-')\n", "plt.plot(time, [row[5] for row in val], color='black', linestyle='dashed')\n", "\n", "plt.subplot(4,2,3)\n", "plt.title('Red gimbal speed',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\dot \\theta$ (rad/s)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[1] for row in val],'r-')\n", "\n", "plt.subplot(4,2,4)\n", "plt.title('Blue gimbal speed',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\dot \\phi$ (rad/s)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[3] for row in val],'b-')\n", "\n", "plt.subplot(4,2,5)\n", "plt.title('Red gimbal tracking error',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\theta$ error (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[angle_normalize(row[0]- row[4]) for row in val],'r-')\n", "\n", "plt.subplot(4,2,6)\n", "plt.title('Blue gimbal tracking error',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'$\\phi$ error (rad)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[angle_normalize(row[2]- row[5]) for row in val],'b-')\n", "\n", "plt.subplot(4,2,7)\n", "plt.title('Red gimbal input',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'u1 (V)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[0] for row in act],'r-')\n", "\n", "plt.subplot(4,2,8)\n", "plt.title('Blue gimbal input',fontsize=20)\n", "plt.xlabel('time (s)',fontsize=16)\n", "plt.ylabel(r'u2 (V)',fontsize=16)\n", "plt.grid()\n", "plt.plot(time,[row[1] for row in act],'b-')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "fz9r-gaStzpk" }, "source": [ "## 3D rendering" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "HQM1E8JYc-cC" }, "outputs": [], "source": [ "# Scene\n", "scene = canvas(background=color.white) \n", "\n", "# Objects\n", "redGimbal = ring(pos=vector(0,0,0), axis=vector(0,0,1), radius=2, thickness=0.2,color=vector(0.9,0,0))\n", "blueGimbal1 = cylinder(pos=vector(0,0,0), axis=vector(0,2,0), radius=0.3,color=color.blue)\n", "blueGimbal2 = cylinder(pos=vector(0,0,0), axis=vector(0,-2,0), radius=0.3,color=color.blue)\n", "disk1 = cylinder(pos=vector(0,0,0), axis=vector(0,0,0.15), radius=1.3,color=color.yellow)\n", "disk2 = cylinder(pos=vector(0,0,0), axis=vector(0,0,-0.15), radius=1.3,color=color.yellow)\n", "baseR = extrusion(path=[vec(0,0,0), vec(0.7,0,0)],shape=[ shapes.circle(radius=0.5) ], pos=vec(2,0,0), color=color.black)\n", "baseL = extrusion(path=[vec(-0.7,0,0), vec(0,0,0)],shape=[ shapes.circle(radius=0.5) ], pos=vec(-2,0,0), color=color.black)\n", "\n", "loops = 0\n", "ctime = 0\n", "start = clock()\n", "N = 400\n", "\n", "for k in range(len(time)):\n", " rate(N)\n", " ct = clock()\n", " theta = val[k][0]\n", " phi = val[k][2]\n", " redGimbal.axis = vector(0,-sin(theta), cos(theta))\n", " blueGimbal1.axis = 2*vector(0,cos(theta), sin(theta))\n", " blueGimbal2.axis = -2*vector(0,cos(theta), sin(theta))\n", " disk1.axis = 0.15*vector(-sin(phi),-sin(theta)*cos(phi),cos(theta)*cos(phi))\n", " disk2.axis = -0.15*vector(-sin(phi),-sin(theta)*cos(phi),cos(theta)*cos(phi))\n", " ctime += clock()-ct\n", " loops += 1" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "name": "gyroscope_ddpg_testing.ipynb", "provenance": [] }, "kernelspec": { "display_name": "ps1venv", "language": "python", "name": "ps1venv" }, "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.9" } }, "nbformat": 4, "nbformat_minor": 1 }