diff --git a/code/training_spinuplib/gyroscope_baseline_spinuplib.ipynb b/code/training_spinuplib/gyroscope_baseline_spinuplib.ipynb new file mode 100644 index 0000000..d3d7c44 --- /dev/null +++ b/code/training_spinuplib/gyroscope_baseline_spinuplib.ipynb @@ -0,0 +1,10522 @@ +{ + "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": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "8inmkEG5QHqx" + }, + "outputs": [], + "source": [ + "from google.colab import drive\n", + "drive.mount('/content/drive')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 655, + "status": "ok", + "timestamp": 1584030129316, + "user": { + "displayName": "Matthieu Le Cauchois", + "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", + "userId": "10992927378504656501" + }, + "user_tz": -60 + }, + "id": "DnnJGcnsQvZC", + "outputId": "9d6d1408-da29-44ed-af74-4ebdc2bd865a" + }, + "outputs": [], + "source": [ + "cd drive/My\\ Drive/Colab Notebooks/DDPG_uda_v0/" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "fuJhdd479TpP" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\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" + }, + { + "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" + ] + } + ], + "source": [ + "import gym\n", + "from gym import spaces\n", + "from gym.utils import seeding\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", + "\n", + "import spinup" + ] + }, + { + "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": { + "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 79898bd..e1c08e9 100644 --- a/code/training_spinuplib/gyroscope_paramsearch_spinuplib.ipynb +++ b/code/training_spinuplib/gyroscope_paramsearch_spinuplib.ipynb @@ -1,3786 +1,1020 @@ { "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "x83dMPapQBN6" }, "source": [ "# Gyroscope TD3 hyperparameter search (spinup library)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "8inmkEG5QHqx" }, "outputs": [], "source": [ "from google.colab import drive\n", "drive.mount('/content/drive')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "colab_type": "code", "executionInfo": { "elapsed": 655, "status": "ok", "timestamp": 1584030129316, "user": { "displayName": "Matthieu Le Cauchois", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgY9gRlHHK-FHlINeRnTJw_wewJsr639GH8MAWl=s64", "userId": "10992927378504656501" }, "user_tz": -60 }, "id": "DnnJGcnsQvZC", "outputId": "9d6d1408-da29-44ed-af74-4ebdc2bd865a" }, "outputs": [], "source": [ "cd drive/My\\ Drive/Colab Notebooks/DDPG_uda_v0/" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "colab": {}, "colab_type": "code", "id": "fuJhdd479TpP" }, "outputs": [ { - "ename": "NameError", - "evalue": "name '_C' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\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 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mscipy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mintegrate\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0msolve_ivp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mrandom\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mcollections\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mdeque\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/__init__.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_C\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 83\u001b[0;31m __all__ += [name for name in dir(_C)\n\u001b[0m\u001b[1;32m 84\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mname\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[0;32mand\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 85\u001b[0m not name.endswith('Base')]\n", - "\u001b[0;31mNameError\u001b[0m: name '_C' is not defined" + "name": "stderr", + "output_type": "stream", + "text": [ + "\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" + }, + { + "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" ] } ], "source": [ "import gym\n", "from gym import spaces\n", "from gym.utils import seeding\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", "import argparse\n", + "from spinup.utils.run_utils import ExperimentGrid\n", + "import torch\n", "\n", "import spinup" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "O0O0t5ZR9Tp6" }, "source": [ "## Environment Class and Modules" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "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", + " the angle and angular speed of te 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": 3, + "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": "stdout", - "output_type": "stream", - "text": [ - "Warning: Log dir model already exists! Storing info there anyway.\n", - "\u001b[32;1mLogging data to model/progress.txt\u001b[0m\n", - "\u001b[36;1mSaving config:\n", - "\u001b[0m\n", - "{\n", - " \"ac_kwargs\":\t{},\n", - " \"act_noise\":\t0.1,\n", - " \"actor_critic\":\t\"MLPActorCritic\",\n", - " \"batch_size\":\t100,\n", - " \"env_fn\":\t\"GyroscopeEnv\",\n", - " \"epochs\":\t120,\n", - " \"exp_name\":\t\"v0\",\n", - " \"gamma\":\t0.95,\n", - " \"logger\":\t{\n", - " \"\":\t{\n", - " \"epoch_dict\":\t{},\n", - " \"exp_name\":\t\"v0\",\n", - " \"first_row\":\ttrue,\n", - " \"log_current_row\":\t{},\n", - " \"log_headers\":\t[],\n", - " \"output_dir\":\t\"model\",\n", - " \"output_file\":\t{\n", - " \"<_io.TextIOWrapper name='model/progress.txt' mode='w' encoding='UTF-8'>\":\t{\n", - " \"mode\":\t\"w\"\n", - " }\n", - " }\n", - " }\n", - " },\n", - " \"logger_kwargs\":\t{\n", - " \"exp_name\":\t\"v0\",\n", - " \"output_dir\":\t\"model\"\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\":\t20000,\n", - " \"steps_per_epoch\":\t2200,\n", - " \"target_noise\":\t0.2,\n", - " \"update_after\":\t800,\n", - " \"update_every\":\t50\n", - "}\n", - "\u001b[32;1m\n", - "Number of parameters: \t pi: 68354, \t q1: 68609, \t q2: 68609\n", - "\u001b[0m\n" - ] - }, { "name": "stderr", "output_type": "stream", "text": [ - "/home/matthieulc/Documents/MA2/PS1/ps1venv/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" + "\r", + "Launching in...: | ? 00:00" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "---------------------------------------\n", - "| Epoch | 1 |\n", - "| AverageEpRet | -6.44e+03 |\n", - "| StdEpRet | 1.49e+03 |\n", - "| MaxEpRet | -4.55e+03 |\n", - "| MinEpRet | -9.52e+03 |\n", - "| AverageTestEpRet | -7.13e+03 |\n", - "| StdTestEpRet | 1.25e+03 |\n", - "| MaxTestEpRet | -4.01e+03 |\n", - "| MinTestEpRet | -8.49e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.2e+03 |\n", - "| AverageQ1Vals | -123 |\n", - "| StdQ1Vals | 54.5 |\n", - "| MaxQ1Vals | 0.0809 |\n", - "| MinQ1Vals | -364 |\n", - "| AverageQ2Vals | -123 |\n", - "| StdQ2Vals | 54.6 |\n", - "| MaxQ2Vals | 1.77 |\n", - "| MinQ2Vals | -373 |\n", - "| LossPi | 112 |\n", - "| LossQ | 1.95e+03 |\n", - "| Time | 15.8 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 2 |\n", - "| AverageEpRet | -6.72e+03 |\n", - "| StdEpRet | 1.81e+03 |\n", - "| MaxEpRet | -4.58e+03 |\n", - "| MinEpRet | -1.07e+04 |\n", - "| AverageTestEpRet | -8.21e+03 |\n", - "| StdTestEpRet | 1.1e+03 |\n", - "| MaxTestEpRet | -6.46e+03 |\n", - "| MinTestEpRet | -1.01e+04 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 4.4e+03 |\n", - "| AverageQ1Vals | -276 |\n", - "| StdQ1Vals | 98.9 |\n", - "| MaxQ1Vals | -54.4 |\n", - "| MinQ1Vals | -672 |\n", - "| AverageQ2Vals | -276 |\n", - "| StdQ2Vals | 99.2 |\n", - "| MaxQ2Vals | -51.6 |\n", - "| MinQ2Vals | -686 |\n", - "| LossPi | 256 |\n", - "| LossQ | 2.12e+03 |\n", - "| Time | 42.1 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 3 |\n", - "| AverageEpRet | -7.08e+03 |\n", - "| StdEpRet | 1.22e+03 |\n", - "| MaxEpRet | -4.94e+03 |\n", - "| MinEpRet | -9.27e+03 |\n", - "| AverageTestEpRet | -5.91e+03 |\n", - "| StdTestEpRet | 1.83e+03 |\n", - "| MaxTestEpRet | -3.79e+03 |\n", - "| MinTestEpRet | -9.63e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 6.6e+03 |\n", - "| AverageQ1Vals | -414 |\n", - "| StdQ1Vals | 128 |\n", - "| MaxQ1Vals | -36.3 |\n", - "| MinQ1Vals | -952 |\n", - "| AverageQ2Vals | -414 |\n", - "| StdQ2Vals | 128 |\n", - "| MaxQ2Vals | -26.8 |\n", - "| MinQ2Vals | -950 |\n", - "| LossPi | 382 |\n", - "| LossQ | 2.76e+03 |\n", - "| Time | 67.9 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 4 |\n", - "| AverageEpRet | -7.06e+03 |\n", - "| StdEpRet | 1.53e+03 |\n", - "| MaxEpRet | -4.98e+03 |\n", - "| MinEpRet | -1.09e+04 |\n", - "| AverageTestEpRet | -5.01e+03 |\n", - "| StdTestEpRet | 1.18e+03 |\n", - "| MaxTestEpRet | -3.34e+03 |\n", - "| MinTestEpRet | -6.44e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 8.8e+03 |\n", - "| AverageQ1Vals | -501 |\n", - "| StdQ1Vals | 154 |\n", - "| MaxQ1Vals | 11.2 |\n", - "| MinQ1Vals | -1.07e+03 |\n", - "| AverageQ2Vals | -501 |\n", - "| StdQ2Vals | 154 |\n", - "| MaxQ2Vals | 16.9 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 459 |\n", - "| LossQ | 3.94e+03 |\n", - "| Time | 92 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 5 |\n", - "| AverageEpRet | -6.3e+03 |\n", - "| StdEpRet | 1.14e+03 |\n", - "| MaxEpRet | -3.87e+03 |\n", - "| MinEpRet | -8.1e+03 |\n", - "| AverageTestEpRet | -4.27e+03 |\n", - "| StdTestEpRet | 1.52e+03 |\n", - "| MaxTestEpRet | -1.82e+03 |\n", - "| MinTestEpRet | -6.62e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.1e+04 |\n", - "| AverageQ1Vals | -552 |\n", - "| StdQ1Vals | 173 |\n", - "| MaxQ1Vals | -15.7 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -552 |\n", - "| StdQ2Vals | 172 |\n", - "| MaxQ2Vals | 17.8 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 508 |\n", - "| LossQ | 4.63e+03 |\n", - "| Time | 116 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 6 |\n", - "| AverageEpRet | -6.76e+03 |\n", - "| StdEpRet | 1.35e+03 |\n", - "| MaxEpRet | -4.61e+03 |\n", - "| MinEpRet | -1.13e+04 |\n", - "| AverageTestEpRet | -3.67e+03 |\n", - "| StdTestEpRet | 994 |\n", - "| MaxTestEpRet | -2.24e+03 |\n", - "| MinTestEpRet | -5.28e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.32e+04 |\n", - "| AverageQ1Vals | -574 |\n", - "| StdQ1Vals | 186 |\n", - "| MaxQ1Vals | -39.4 |\n", - "| MinQ1Vals | -1.41e+03 |\n", - "| AverageQ2Vals | -574 |\n", - "| StdQ2Vals | 185 |\n", - "| MaxQ2Vals | -27.9 |\n", - "| MinQ2Vals | -1.29e+03 |\n", - "| LossPi | 527 |\n", - "| LossQ | 5.18e+03 |\n", - "| Time | 139 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 7 |\n", - "| AverageEpRet | -7.02e+03 |\n", - "| StdEpRet | 1.79e+03 |\n", - "| MaxEpRet | -3.34e+03 |\n", - "| MinEpRet | -9.5e+03 |\n", - "| AverageTestEpRet | -3.05e+03 |\n", - "| StdTestEpRet | 1.56e+03 |\n", - "| MaxTestEpRet | -1.34e+03 |\n", - "| MinTestEpRet | -6.7e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.54e+04 |\n", - "| AverageQ1Vals | -582 |\n", - "| StdQ1Vals | 196 |\n", - "| MaxQ1Vals | -68.9 |\n", - "| MinQ1Vals | -1.38e+03 |\n", - "| AverageQ2Vals | -582 |\n", - "| StdQ2Vals | 195 |\n", - "| MaxQ2Vals | -43.9 |\n", - "| MinQ2Vals | -1.31e+03 |\n", - "| LossPi | 534 |\n", - "| LossQ | 5.26e+03 |\n", - "| Time | 163 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 8 |\n", - "| AverageEpRet | -6.62e+03 |\n", - "| StdEpRet | 1.42e+03 |\n", - "| MaxEpRet | -4.04e+03 |\n", - "| MinEpRet | -9.02e+03 |\n", - "| AverageTestEpRet | -1.54e+03 |\n", - "| StdTestEpRet | 771 |\n", - "| MaxTestEpRet | -595 |\n", - "| MinTestEpRet | -3e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.76e+04 |\n", - "| AverageQ1Vals | -573 |\n", - "| StdQ1Vals | 209 |\n", - "| MaxQ1Vals | -4.68 |\n", - "| MinQ1Vals | -1.34e+03 |\n", - "| AverageQ2Vals | -573 |\n", - "| StdQ2Vals | 209 |\n", - "| MaxQ2Vals | 22.9 |\n", - "| MinQ2Vals | -1.35e+03 |\n", - "| LossPi | 522 |\n", - "| LossQ | 5.51e+03 |\n", - "| Time | 187 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 9 |\n", - "| AverageEpRet | -6.7e+03 |\n", - "| StdEpRet | 1.58e+03 |\n", - "| MaxEpRet | -4.21e+03 |\n", - "| MinEpRet | -9.46e+03 |\n", - "| AverageTestEpRet | -842 |\n", - "| StdTestEpRet | 304 |\n", - "| MaxTestEpRet | -411 |\n", - "| MinTestEpRet | -1.52e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.98e+04 |\n", - "| AverageQ1Vals | -546 |\n", - "| StdQ1Vals | 223 |\n", - "| MaxQ1Vals | 71.2 |\n", - "| MinQ1Vals | -1.4e+03 |\n", - "| AverageQ2Vals | -546 |\n", - "| StdQ2Vals | 222 |\n", - "| MaxQ2Vals | 60.5 |\n", - "| MinQ2Vals | -1.41e+03 |\n", - "| LossPi | 490 |\n", - "| LossQ | 5.83e+03 |\n", - "| Time | 211 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 10 |\n", - "| AverageEpRet | -1.66e+03 |\n", - "| StdEpRet | 1.99e+03 |\n", - "| MaxEpRet | -153 |\n", - "| MinEpRet | -8.64e+03 |\n", - "| AverageTestEpRet | -872 |\n", - "| StdTestEpRet | 378 |\n", - "| MaxTestEpRet | -487 |\n", - "| MinTestEpRet | -1.53e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.2e+04 |\n", - "| AverageQ1Vals | -488 |\n", - "| StdQ1Vals | 243 |\n", - "| MaxQ1Vals | 151 |\n", - "| MinQ1Vals | -1.43e+03 |\n", - "| AverageQ2Vals | -488 |\n", - "| StdQ2Vals | 243 |\n", - "| MaxQ2Vals | 127 |\n", - "| MinQ2Vals | -1.4e+03 |\n", - "| LossPi | 432 |\n", - "| LossQ | 5.85e+03 |\n", - "| Time | 239 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 11 |\n", - "| AverageEpRet | -947 |\n", - "| StdEpRet | 493 |\n", - "| MaxEpRet | -232 |\n", - "| MinEpRet | -1.89e+03 |\n", - "| AverageTestEpRet | -1.09e+03 |\n", - "| StdTestEpRet | 661 |\n", - "| MaxTestEpRet | -271 |\n", - "| MinTestEpRet | -2.78e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.42e+04 |\n", - "| AverageQ1Vals | -425 |\n", - "| StdQ1Vals | 258 |\n", - "| MaxQ1Vals | 141 |\n", - "| MinQ1Vals | -1.4e+03 |\n", - "| AverageQ2Vals | -425 |\n", - "| StdQ2Vals | 258 |\n", - "| MaxQ2Vals | 137 |\n", - "| MinQ2Vals | -1.39e+03 |\n", - "| LossPi | 376 |\n", - "| LossQ | 4.71e+03 |\n", - "| Time | 263 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 12 |\n", - "| AverageEpRet | -888 |\n", - "| StdEpRet | 472 |\n", - "| MaxEpRet | -325 |\n", - "| MinEpRet | -2.33e+03 |\n", - "| AverageTestEpRet | -602 |\n", - "| StdTestEpRet | 199 |\n", - "| MaxTestEpRet | -286 |\n", - "| MinTestEpRet | -910 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.64e+04 |\n", - "| AverageQ1Vals | -384 |\n", - "| StdQ1Vals | 264 |\n", - "| MaxQ1Vals | 161 |\n", - "| MinQ1Vals | -1.41e+03 |\n", - "| AverageQ2Vals | -384 |\n", - "| StdQ2Vals | 264 |\n", - "| MaxQ2Vals | 142 |\n", - "| MinQ2Vals | -1.39e+03 |\n", - "| LossPi | 341 |\n", - "| LossQ | 3.72e+03 |\n", - "| Time | 288 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 13 |\n", - "| AverageEpRet | -797 |\n", - "| StdEpRet | 536 |\n", - "| MaxEpRet | -48.6 |\n", - "| MinEpRet | -2.46e+03 |\n", - "| AverageTestEpRet | -857 |\n", - "| StdTestEpRet | 354 |\n", - "| MaxTestEpRet | -467 |\n", - "| MinTestEpRet | -1.77e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.86e+04 |\n", - "| AverageQ1Vals | -354 |\n", - "| StdQ1Vals | 270 |\n", - "| MaxQ1Vals | 169 |\n", - "| MinQ1Vals | -1.36e+03 |\n", - "| AverageQ2Vals | -354 |\n", - "| StdQ2Vals | 270 |\n", - "| MaxQ2Vals | 166 |\n", - "| MinQ2Vals | -1.35e+03 |\n", - "| LossPi | 314 |\n", - "| LossQ | 3.07e+03 |\n", - "| Time | 312 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 14 |\n", - "| AverageEpRet | -926 |\n", - "| StdEpRet | 418 |\n", - "| MaxEpRet | -333 |\n", - "| MinEpRet | -1.67e+03 |\n", - "| AverageTestEpRet | -902 |\n", - "| StdTestEpRet | 481 |\n", - "| MaxTestEpRet | -146 |\n", - "| MinTestEpRet | -2.01e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 3.08e+04 |\n", - "| AverageQ1Vals | -326 |\n", - "| StdQ1Vals | 274 |\n", - "| MaxQ1Vals | 192 |\n", - "| MinQ1Vals | -1.34e+03 |\n", - "| AverageQ2Vals | -326 |\n", - "| StdQ2Vals | 274 |\n", - "| MaxQ2Vals | 191 |\n", - "| MinQ2Vals | -1.34e+03 |\n", - "| LossPi | 288 |\n", - "| LossQ | 2.66e+03 |\n", - "| Time | 337 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 15 |\n", - "| AverageEpRet | -738 |\n", - "| StdEpRet | 339 |\n", - "| MaxEpRet | -267 |\n", - "| MinEpRet | -1.46e+03 |\n", - "| AverageTestEpRet | -1.45e+03 |\n", - "| StdTestEpRet | 1.42e+03 |\n", - "| MaxTestEpRet | -185 |\n", - "| MinTestEpRet | -4.34e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 3.3e+04 |\n", - "| AverageQ1Vals | -297 |\n", - "| StdQ1Vals | 279 |\n", - "| MaxQ1Vals | 220 |\n", - "| MinQ1Vals | -1.31e+03 |\n", - "| AverageQ2Vals | -297 |\n", - "| StdQ2Vals | 279 |\n", - "| MaxQ2Vals | 221 |\n", - "| MinQ2Vals | -1.31e+03 |\n", - "| LossPi | 261 |\n", - "| LossQ | 2.37e+03 |\n", - "| Time | 362 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 16 |\n", - "| AverageEpRet | -1.37e+03 |\n", - "| StdEpRet | 1.85e+03 |\n", - "| MaxEpRet | -223 |\n", - "| MinEpRet | -8.63e+03 |\n", - "| AverageTestEpRet | -595 |\n", - "| StdTestEpRet | 159 |\n", - "| MaxTestEpRet | -339 |\n", - "| MinTestEpRet | -913 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 3.52e+04 |\n", - "| AverageQ1Vals | -267 |\n", - "| StdQ1Vals | 277 |\n", - "| MaxQ1Vals | 279 |\n", - "| MinQ1Vals | -1.3e+03 |\n", - "| AverageQ2Vals | -267 |\n", - "| StdQ2Vals | 277 |\n", - "| MaxQ2Vals | 269 |\n", - "| MinQ2Vals | -1.27e+03 |\n", - "| LossPi | 231 |\n", - "| LossQ | 2.21e+03 |\n", - "| Time | 386 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 17 |\n", - "| AverageEpRet | -754 |\n", - "| StdEpRet | 595 |\n", - "| MaxEpRet | -202 |\n", - "| MinEpRet | -2.5e+03 |\n", - "| AverageTestEpRet | -636 |\n", - "| StdTestEpRet | 389 |\n", - "| MaxTestEpRet | -147 |\n", - "| MinTestEpRet | -1.49e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 3.74e+04 |\n", - "| AverageQ1Vals | -245 |\n", - "| StdQ1Vals | 273 |\n", - "| MaxQ1Vals | 278 |\n", - "| MinQ1Vals | -1.25e+03 |\n", - "| AverageQ2Vals | -245 |\n", - "| StdQ2Vals | 273 |\n", - "| MaxQ2Vals | 268 |\n", - "| MinQ2Vals | -1.24e+03 |\n", - "| LossPi | 211 |\n", - "| LossQ | 2.03e+03 |\n", - "| Time | 411 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 18 |\n", - "| AverageEpRet | -616 |\n", - "| StdEpRet | 339 |\n", - "| MaxEpRet | -241 |\n", - "| MinEpRet | -1.4e+03 |\n", - "| AverageTestEpRet | -713 |\n", - "| StdTestEpRet | 304 |\n", - "| MaxTestEpRet | -419 |\n", - "| MinTestEpRet | -1.53e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 3.96e+04 |\n", - "| AverageQ1Vals | -226 |\n", - "| StdQ1Vals | 268 |\n", - "| MaxQ1Vals | 275 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -226 |\n", - "| StdQ2Vals | 268 |\n", - "| MaxQ2Vals | 265 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 194 |\n", - "| LossQ | 1.83e+03 |\n", - "| Time | 434 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 19 |\n", - "| AverageEpRet | -745 |\n", - "| StdEpRet | 537 |\n", - "| MaxEpRet | -109 |\n", - "| MinEpRet | -2.14e+03 |\n", - "| AverageTestEpRet | -963 |\n", - "| StdTestEpRet | 641 |\n", - "| MaxTestEpRet | -159 |\n", - "| MinTestEpRet | -2.65e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 4.18e+04 |\n", - "| AverageQ1Vals | -214 |\n", - "| StdQ1Vals | 263 |\n", - "| MaxQ1Vals | 273 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -214 |\n", - "| StdQ2Vals | 263 |\n", - "| MaxQ2Vals | 266 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 183 |\n", - "| LossQ | 1.67e+03 |\n", - "| Time | 458 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 20 |\n", - "| AverageEpRet | -711 |\n", - "| StdEpRet | 511 |\n", - "| MaxEpRet | -18.3 |\n", - "| MinEpRet | -1.83e+03 |\n", - "| AverageTestEpRet | -803 |\n", - "| StdTestEpRet | 372 |\n", - "| MaxTestEpRet | -126 |\n", - "| MinTestEpRet | -1.53e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 4.4e+04 |\n", - "| AverageQ1Vals | -198 |\n", - "| StdQ1Vals | 260 |\n", - "| MaxQ1Vals | 276 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -198 |\n", - "| StdQ2Vals | 260 |\n", - "| MaxQ2Vals | 268 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 169 |\n", - "| LossQ | 1.57e+03 |\n", - "| Time | 483 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 21 |\n", - "| AverageEpRet | -664 |\n", - "| StdEpRet | 403 |\n", - "| MaxEpRet | -176 |\n", - "| MinEpRet | -1.87e+03 |\n", - "| AverageTestEpRet | -577 |\n", - "| StdTestEpRet | 343 |\n", - "| MaxTestEpRet | -133 |\n", - "| MinTestEpRet | -1.16e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 4.62e+04 |\n", - "| AverageQ1Vals | -187 |\n", - "| StdQ1Vals | 254 |\n", - "| MaxQ1Vals | 269 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -187 |\n", - "| StdQ2Vals | 254 |\n", - "| MaxQ2Vals | 262 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 159 |\n", - "| LossQ | 1.48e+03 |\n", - "| Time | 507 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 22 |\n", - "| AverageEpRet | -662 |\n", - "| StdEpRet | 341 |\n", - "| MaxEpRet | -261 |\n", - "| MinEpRet | -1.64e+03 |\n", - "| AverageTestEpRet | -780 |\n", - "| StdTestEpRet | 458 |\n", - "| MaxTestEpRet | -39.9 |\n", - "| MinTestEpRet | -1.77e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 4.84e+04 |\n", - "| AverageQ1Vals | -178 |\n", - "| StdQ1Vals | 249 |\n", - "| MaxQ1Vals | 260 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -178 |\n", - "| StdQ2Vals | 249 |\n", - "| MaxQ2Vals | 258 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 151 |\n", - "| LossQ | 1.35e+03 |\n", - "| Time | 531 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 23 |\n", - "| AverageEpRet | -524 |\n", - "| StdEpRet | 312 |\n", - "| MaxEpRet | -85.9 |\n", - "| MinEpRet | -1.22e+03 |\n", - "| AverageTestEpRet | -768 |\n", - "| StdTestEpRet | 268 |\n", - "| MaxTestEpRet | -329 |\n", - "| MinTestEpRet | -1.3e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 5.06e+04 |\n", - "| AverageQ1Vals | -171 |\n", - "| StdQ1Vals | 243 |\n", - "| MaxQ1Vals | 239 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -170 |\n", - "| StdQ2Vals | 243 |\n", - "| MaxQ2Vals | 246 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 145 |\n", - "| LossQ | 1.29e+03 |\n", - "| Time | 555 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 24 |\n", - "| AverageEpRet | -714 |\n", - "| StdEpRet | 351 |\n", - "| MaxEpRet | -181 |\n", - "| MinEpRet | -1.29e+03 |\n", - "| AverageTestEpRet | -433 |\n", - "| StdTestEpRet | 184 |\n", - "| MaxTestEpRet | -178 |\n", - "| MinTestEpRet | -786 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 5.28e+04 |\n", - "| AverageQ1Vals | -164 |\n", - "| StdQ1Vals | 238 |\n", - "| MaxQ1Vals | 227 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -164 |\n", - "| StdQ2Vals | 238 |\n", - "| MaxQ2Vals | 229 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 139 |\n", - "| LossQ | 1.22e+03 |\n", - "| Time | 579 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 25 |\n", - "| AverageEpRet | -709 |\n", - "| StdEpRet | 425 |\n", - "| MaxEpRet | -88.8 |\n", - "| MinEpRet | -1.59e+03 |\n", - "| AverageTestEpRet | -808 |\n", - "| StdTestEpRet | 476 |\n", - "| MaxTestEpRet | -198 |\n", - "| MinTestEpRet | -1.81e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 5.5e+04 |\n", - "| AverageQ1Vals | -159 |\n", - "| StdQ1Vals | 233 |\n", - "| MaxQ1Vals | 209 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -159 |\n", - "| StdQ2Vals | 233 |\n", - "| MaxQ2Vals | 209 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 136 |\n", - "| LossQ | 1.15e+03 |\n", - "| Time | 603 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 26 |\n", - "| AverageEpRet | -813 |\n", - "| StdEpRet | 433 |\n", - "| MaxEpRet | -247 |\n", - "| MinEpRet | -1.81e+03 |\n", - "| AverageTestEpRet | -702 |\n", - "| StdTestEpRet | 308 |\n", - "| MaxTestEpRet | -197 |\n", - "| MinTestEpRet | -1.43e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 5.72e+04 |\n", - "| AverageQ1Vals | -158 |\n", - "| StdQ1Vals | 231 |\n", - "| MaxQ1Vals | 194 |\n", - "| MinQ1Vals | -1.2e+03 |\n", - "| AverageQ2Vals | -158 |\n", - "| StdQ2Vals | 231 |\n", - "| MaxQ2Vals | 198 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 136 |\n", - "| LossQ | 1.14e+03 |\n", - "| Time | 628 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 27 |\n", - "| AverageEpRet | -690 |\n", - "| StdEpRet | 282 |\n", - "| MaxEpRet | -336 |\n", - "| MinEpRet | -1.07e+03 |\n", - "| AverageTestEpRet | -934 |\n", - "| StdTestEpRet | 626 |\n", - "| MaxTestEpRet | -317 |\n", - "| MinTestEpRet | -2.24e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 5.94e+04 |\n", - "| AverageQ1Vals | -157 |\n", - "| StdQ1Vals | 229 |\n", - "| MaxQ1Vals | 190 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -157 |\n", - "| StdQ2Vals | 229 |\n", - "| MaxQ2Vals | 192 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 135 |\n", - "| LossQ | 1.03e+03 |\n", - "| Time | 653 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 28 |\n", - "| AverageEpRet | -965 |\n", - "| StdEpRet | 522 |\n", - "| MaxEpRet | -172 |\n", - "| MinEpRet | -2.3e+03 |\n", - "| AverageTestEpRet | -599 |\n", - "| StdTestEpRet | 398 |\n", - "| MaxTestEpRet | -163 |\n", - "| MinTestEpRet | -1.32e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 6.16e+04 |\n", - "| AverageQ1Vals | -154 |\n", - "| StdQ1Vals | 226 |\n", - "| MaxQ1Vals | 176 |\n", - "| MinQ1Vals | -1.12e+03 |\n", - "| AverageQ2Vals | -154 |\n", - "| StdQ2Vals | 226 |\n", - "| MaxQ2Vals | 188 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 133 |\n", - "| LossQ | 973 |\n", - "| Time | 677 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 29 |\n", - "| AverageEpRet | -766 |\n", - "| StdEpRet | 367 |\n", - "| MaxEpRet | -114 |\n", - "| MinEpRet | -1.69e+03 |\n", - "| AverageTestEpRet | -659 |\n", - "| StdTestEpRet | 229 |\n", - "| MaxTestEpRet | -303 |\n", - "| MinTestEpRet | -1.1e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 6.38e+04 |\n", - "| AverageQ1Vals | -153 |\n", - "| StdQ1Vals | 225 |\n", - "| MaxQ1Vals | 173 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -153 |\n", - "| StdQ2Vals | 225 |\n", - "| MaxQ2Vals | 176 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 133 |\n", - "| LossQ | 961 |\n", - "| Time | 702 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 30 |\n", - "| AverageEpRet | -682 |\n", - "| StdEpRet | 254 |\n", - "| MaxEpRet | -388 |\n", - "| MinEpRet | -1.46e+03 |\n", - "| AverageTestEpRet | -686 |\n", - "| StdTestEpRet | 188 |\n", - "| MaxTestEpRet | -312 |\n", - "| MinTestEpRet | -977 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 6.6e+04 |\n", - "| AverageQ1Vals | -151 |\n", - "| StdQ1Vals | 222 |\n", - "| MaxQ1Vals | 162 |\n", - "| MinQ1Vals | -1.2e+03 |\n", - "| AverageQ2Vals | -151 |\n", - "| StdQ2Vals | 222 |\n", - "| MaxQ2Vals | 159 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 131 |\n", - "| LossQ | 913 |\n", - "| Time | 727 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 31 |\n", - "| AverageEpRet | -676 |\n", - "| StdEpRet | 442 |\n", - "| MaxEpRet | -163 |\n", - "| MinEpRet | -1.84e+03 |\n", - "| AverageTestEpRet | -678 |\n", - "| StdTestEpRet | 371 |\n", - "| MaxTestEpRet | -156 |\n", - "| MinTestEpRet | -1.41e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 6.82e+04 |\n", - "| AverageQ1Vals | -149 |\n", - "| StdQ1Vals | 219 |\n", - "| MaxQ1Vals | 149 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -149 |\n", - "| StdQ2Vals | 219 |\n", - "| MaxQ2Vals | 153 |\n", - "| MinQ2Vals | -1.09e+03 |\n", - "| LossPi | 130 |\n", - "| LossQ | 855 |\n", - "| Time | 753 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 32 |\n", - "| AverageEpRet | -760 |\n", - "| StdEpRet | 313 |\n", - "| MaxEpRet | -216 |\n", - "| MinEpRet | -1.49e+03 |\n", - "| AverageTestEpRet | -759 |\n", - "| StdTestEpRet | 430 |\n", - "| MaxTestEpRet | -256 |\n", - "| MinTestEpRet | -1.64e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 7.04e+04 |\n", - "| AverageQ1Vals | -150 |\n", - "| StdQ1Vals | 217 |\n", - "| MaxQ1Vals | 146 |\n", - "| MinQ1Vals | -1.1e+03 |\n", - "| AverageQ2Vals | -150 |\n", - "| StdQ2Vals | 217 |\n", - "| MaxQ2Vals | 145 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 130 |\n", - "| LossQ | 835 |\n", - "| Time | 775 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 33 |\n", - "| AverageEpRet | -527 |\n", - "| StdEpRet | 395 |\n", - "| MaxEpRet | -57.1 |\n", - "| MinEpRet | -1.4e+03 |\n", - "| AverageTestEpRet | -583 |\n", - "| StdTestEpRet | 368 |\n", - "| MaxTestEpRet | -120 |\n", - "| MinTestEpRet | -1.52e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 7.26e+04 |\n", - "| AverageQ1Vals | -147 |\n", - "| StdQ1Vals | 213 |\n", - "| MaxQ1Vals | 130 |\n", - "| MinQ1Vals | -1.11e+03 |\n", - "| AverageQ2Vals | -147 |\n", - "| StdQ2Vals | 213 |\n", - "| MaxQ2Vals | 125 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 129 |\n", - "| LossQ | 800 |\n", - "| Time | 796 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 34 |\n", - "| AverageEpRet | -732 |\n", - "| StdEpRet | 361 |\n", - "| MaxEpRet | -114 |\n", - "| MinEpRet | -1.6e+03 |\n", - "| AverageTestEpRet | -737 |\n", - "| StdTestEpRet | 290 |\n", - "| MaxTestEpRet | -278 |\n", - "| MinTestEpRet | -1.25e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 7.48e+04 |\n", - "| AverageQ1Vals | -144 |\n", - "| StdQ1Vals | 211 |\n", - "| MaxQ1Vals | 133 |\n", - "| MinQ1Vals | -1.09e+03 |\n", - "| AverageQ2Vals | -144 |\n", - "| StdQ2Vals | 211 |\n", - "| MaxQ2Vals | 121 |\n", - "| MinQ2Vals | -1.1e+03 |\n", - "| LossPi | 126 |\n", - "| LossQ | 784 |\n", - "| Time | 820 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 35 |\n", - "| AverageEpRet | -682 |\n", - "| StdEpRet | 348 |\n", - "| MaxEpRet | -159 |\n", - "| MinEpRet | -1.58e+03 |\n", - "| AverageTestEpRet | -766 |\n", - "| StdTestEpRet | 358 |\n", - "| MaxTestEpRet | -85.9 |\n", - "| MinTestEpRet | -1.35e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 7.7e+04 |\n", - "| AverageQ1Vals | -143 |\n", - "| StdQ1Vals | 209 |\n", - "| MaxQ1Vals | 123 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -143 |\n", - "| StdQ2Vals | 209 |\n", - "| MaxQ2Vals | 107 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 125 |\n", - "| LossQ | 730 |\n", - "| Time | 846 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 36 |\n", - "| AverageEpRet | -848 |\n", - "| StdEpRet | 733 |\n", - "| MaxEpRet | -216 |\n", - "| MinEpRet | -3.32e+03 |\n", - "| AverageTestEpRet | -765 |\n", - "| StdTestEpRet | 340 |\n", - "| MaxTestEpRet | -191 |\n", - "| MinTestEpRet | -1.48e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 7.92e+04 |\n", - "| AverageQ1Vals | -141 |\n", - "| StdQ1Vals | 207 |\n", - "| MaxQ1Vals | 115 |\n", - "| MinQ1Vals | -1.1e+03 |\n", - "| AverageQ2Vals | -141 |\n", - "| StdQ2Vals | 207 |\n", - "| MaxQ2Vals | 108 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 125 |\n", - "| LossQ | 703 |\n", - "| Time | 873 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 37 |\n", - "| AverageEpRet | -625 |\n", - "| StdEpRet | 379 |\n", - "| MaxEpRet | -11.3 |\n", - "| MinEpRet | -1.43e+03 |\n", - "| AverageTestEpRet | -646 |\n", - "| StdTestEpRet | 399 |\n", - "| MaxTestEpRet | -102 |\n", - "| MinTestEpRet | -1.15e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 8.14e+04 |\n", - "| AverageQ1Vals | -140 |\n", - "| StdQ1Vals | 204 |\n", - "| MaxQ1Vals | 103 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -140 |\n", - "| StdQ2Vals | 204 |\n", - "| MaxQ2Vals | 96.8 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 124 |\n", - "| LossQ | 667 |\n", - "| Time | 900 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 38 |\n", - "| AverageEpRet | -634 |\n", - "| StdEpRet | 304 |\n", - "| MaxEpRet | -44.1 |\n", - "| MinEpRet | -1.19e+03 |\n", - "| AverageTestEpRet | -716 |\n", - "| StdTestEpRet | 356 |\n", - "| MaxTestEpRet | -263 |\n", - "| MinTestEpRet | -1.49e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 8.36e+04 |\n", - "| AverageQ1Vals | -140 |\n", - "| StdQ1Vals | 203 |\n", - "| MaxQ1Vals | 91.8 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -140 |\n", - "| StdQ2Vals | 203 |\n", - "| MaxQ2Vals | 86 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 124 |\n", - "| LossQ | 664 |\n", - "| Time | 929 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 39 |\n", - "| AverageEpRet | -630 |\n", - "| StdEpRet | 375 |\n", - "| MaxEpRet | -127 |\n", - "| MinEpRet | -1.59e+03 |\n", - "| AverageTestEpRet | -591 |\n", - "| StdTestEpRet | 239 |\n", - "| MaxTestEpRet | -204 |\n", - "| MinTestEpRet | -946 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 8.58e+04 |\n", - "| AverageQ1Vals | -139 |\n", - "| StdQ1Vals | 201 |\n", - "| MaxQ1Vals | 86.8 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -139 |\n", - "| StdQ2Vals | 201 |\n", - "| MaxQ2Vals | 77.3 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 124 |\n", - "| LossQ | 649 |\n", - "| Time | 960 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 40 |\n", - "| AverageEpRet | -506 |\n", - "| StdEpRet | 280 |\n", - "| MaxEpRet | -67.2 |\n", - "| MinEpRet | -1.18e+03 |\n", - "| AverageTestEpRet | -621 |\n", - "| StdTestEpRet | 351 |\n", - "| MaxTestEpRet | -171 |\n", - "| MinTestEpRet | -1.07e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 8.8e+04 |\n", - "| AverageQ1Vals | -137 |\n", - "| StdQ1Vals | 199 |\n", - "| MaxQ1Vals | 77.5 |\n", - "| MinQ1Vals | -1.21e+03 |\n", - "| AverageQ2Vals | -137 |\n", - "| StdQ2Vals | 199 |\n", - "| MaxQ2Vals | 66.2 |\n", - "| MinQ2Vals | -1.21e+03 |\n", - "| LossPi | 122 |\n", - "| LossQ | 629 |\n", - "| Time | 991 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 41 |\n", - "| AverageEpRet | -676 |\n", - "| StdEpRet | 301 |\n", - "| MaxEpRet | -182 |\n", - "| MinEpRet | -1.31e+03 |\n", - "| AverageTestEpRet | -784 |\n", - "| StdTestEpRet | 309 |\n", - "| MaxTestEpRet | -408 |\n", - "| MinTestEpRet | -1.4e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 9.02e+04 |\n", - "| AverageQ1Vals | -136 |\n", - "| StdQ1Vals | 197 |\n", - "| MaxQ1Vals | 74.4 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -136 |\n", - "| StdQ2Vals | 197 |\n", - "| MaxQ2Vals | 74.3 |\n", - "| MinQ2Vals | -1.12e+03 |\n", - "| LossPi | 121 |\n", - "| LossQ | 587 |\n", - "| Time | 1.02e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 42 |\n", - "| AverageEpRet | -623 |\n", - "| StdEpRet | 295 |\n", - "| MaxEpRet | -69.3 |\n", - "| MinEpRet | -1.19e+03 |\n", - "| AverageTestEpRet | -806 |\n", - "| StdTestEpRet | 386 |\n", - "| MaxTestEpRet | -285 |\n", - "| MinTestEpRet | -1.63e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 9.24e+04 |\n", - "| AverageQ1Vals | -134 |\n", - "| StdQ1Vals | 196 |\n", - "| MaxQ1Vals | 59.5 |\n", - "| MinQ1Vals | -1.13e+03 |\n", - "| AverageQ2Vals | -134 |\n", - "| StdQ2Vals | 196 |\n", - "| MaxQ2Vals | 67.8 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 120 |\n", - "| LossQ | 584 |\n", - "| Time | 1.05e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 43 |\n", - "| AverageEpRet | -565 |\n", - "| StdEpRet | 255 |\n", - "| MaxEpRet | -79.6 |\n", - "| MinEpRet | -1.08e+03 |\n", - "| AverageTestEpRet | -620 |\n", - "| StdTestEpRet | 300 |\n", - "| MaxTestEpRet | -160 |\n", - "| MinTestEpRet | -971 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 9.46e+04 |\n", - "| AverageQ1Vals | -133 |\n", - "| StdQ1Vals | 194 |\n", - "| MaxQ1Vals | 63.5 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -133 |\n", - "| StdQ2Vals | 194 |\n", - "| MaxQ2Vals | 68.2 |\n", - "| MinQ2Vals | -1.12e+03 |\n", - "| LossPi | 118 |\n", - "| LossQ | 561 |\n", - "| Time | 1.08e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 44 |\n", - "| AverageEpRet | -583 |\n", - "| StdEpRet | 247 |\n", - "| MaxEpRet | -63.3 |\n", - "| MinEpRet | -1.08e+03 |\n", - "| AverageTestEpRet | -507 |\n", - "| StdTestEpRet | 296 |\n", - "| MaxTestEpRet | -107 |\n", - "| MinTestEpRet | -996 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 9.68e+04 |\n", - "| AverageQ1Vals | -132 |\n", - "| StdQ1Vals | 191 |\n", - "| MaxQ1Vals | 49.2 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -132 |\n", - "| StdQ2Vals | 191 |\n", - "| MaxQ2Vals | 49.2 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 118 |\n", - "| LossQ | 532 |\n", - "| Time | 1.11e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 45 |\n", - "| AverageEpRet | -608 |\n", - "| StdEpRet | 309 |\n", - "| MaxEpRet | -147 |\n", - "| MinEpRet | -1.23e+03 |\n", - "| AverageTestEpRet | -727 |\n", - "| StdTestEpRet | 348 |\n", - "| MaxTestEpRet | -203 |\n", - "| MinTestEpRet | -1.43e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 9.9e+04 |\n", - "| AverageQ1Vals | -129 |\n", - "| StdQ1Vals | 187 |\n", - "| MaxQ1Vals | 50.6 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -129 |\n", - "| StdQ2Vals | 187 |\n", - "| MaxQ2Vals | 47.9 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 116 |\n", - "| LossQ | 517 |\n", - "| Time | 1.14e+03 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 46 |\n", - "| AverageEpRet | -649 |\n", - "| StdEpRet | 325 |\n", - "| MaxEpRet | -151 |\n", - "| MinEpRet | -1.5e+03 |\n", - "| AverageTestEpRet | -647 |\n", - "| StdTestEpRet | 317 |\n", - "| MaxTestEpRet | -219 |\n", - "| MinTestEpRet | -1.25e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.01e+05 |\n", - "| AverageQ1Vals | -129 |\n", - "| StdQ1Vals | 187 |\n", - "| MaxQ1Vals | 49.8 |\n", - "| MinQ1Vals | -1.1e+03 |\n", - "| AverageQ2Vals | -129 |\n", - "| StdQ2Vals | 187 |\n", - "| MaxQ2Vals | 90.9 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 115 |\n", - "| LossQ | 514 |\n", - "| Time | 1.18e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 47 |\n", - "| AverageEpRet | -444 |\n", - "| StdEpRet | 183 |\n", - "| MaxEpRet | -183 |\n", - "| MinEpRet | -968 |\n", - "| AverageTestEpRet | -669 |\n", - "| StdTestEpRet | 245 |\n", - "| MaxTestEpRet | -261 |\n", - "| MinTestEpRet | -1.12e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.03e+05 |\n", - "| AverageQ1Vals | -127 |\n", - "| StdQ1Vals | 185 |\n", - "| MaxQ1Vals | 58.8 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -127 |\n", - "| StdQ2Vals | 185 |\n", - "| MaxQ2Vals | 55.1 |\n", - "| MinQ2Vals | -1.15e+03 |\n", - "| LossPi | 113 |\n", - "| LossQ | 489 |\n", - "| Time | 1.21e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 48 |\n", - "| AverageEpRet | -673 |\n", - "| StdEpRet | 332 |\n", - "| MaxEpRet | -125 |\n", - "| MinEpRet | -1.41e+03 |\n", - "| AverageTestEpRet | -534 |\n", - "| StdTestEpRet | 252 |\n", - "| MaxTestEpRet | -167 |\n", - "| MinTestEpRet | -1.04e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.06e+05 |\n", - "| AverageQ1Vals | -125 |\n", - "| StdQ1Vals | 182 |\n", - "| MaxQ1Vals | 96.2 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -125 |\n", - "| StdQ2Vals | 182 |\n", - "| MaxQ2Vals | 93.5 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 112 |\n", - "| LossQ | 473 |\n", - "| Time | 1.24e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 49 |\n", - "| AverageEpRet | -475 |\n", - "| StdEpRet | 243 |\n", - "| MaxEpRet | -125 |\n", - "| MinEpRet | -1.11e+03 |\n", - "| AverageTestEpRet | -572 |\n", - "| StdTestEpRet | 339 |\n", - "| MaxTestEpRet | -155 |\n", - "| MinTestEpRet | -1.25e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.08e+05 |\n", - "| AverageQ1Vals | -124 |\n", - "| StdQ1Vals | 181 |\n", - "| MaxQ1Vals | 66.2 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -124 |\n", - "| StdQ2Vals | 181 |\n", - "| MaxQ2Vals | 60.6 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 112 |\n", - "| LossQ | 466 |\n", - "| Time | 1.27e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 50 |\n", - "| AverageEpRet | -581 |\n", - "| StdEpRet | 358 |\n", - "| MaxEpRet | -121 |\n", - "| MinEpRet | -1.34e+03 |\n", - "| AverageTestEpRet | -687 |\n", - "| StdTestEpRet | 246 |\n", - "| MaxTestEpRet | -246 |\n", - "| MinTestEpRet | -1.07e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.1e+05 |\n", - "| AverageQ1Vals | -122 |\n", - "| StdQ1Vals | 179 |\n", - "| MaxQ1Vals | 40.6 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -122 |\n", - "| StdQ2Vals | 179 |\n", - "| MaxQ2Vals | 50.9 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 109 |\n", - "| LossQ | 439 |\n", - "| Time | 1.31e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 51 |\n", - "| AverageEpRet | -599 |\n", - "| StdEpRet | 287 |\n", - "| MaxEpRet | -232 |\n", - "| MinEpRet | -1.44e+03 |\n", - "| AverageTestEpRet | -561 |\n", - "| StdTestEpRet | 204 |\n", - "| MaxTestEpRet | -216 |\n", - "| MinTestEpRet | -856 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.12e+05 |\n", - "| AverageQ1Vals | -122 |\n", - "| StdQ1Vals | 179 |\n", - "| MaxQ1Vals | 78.3 |\n", - "| MinQ1Vals | -1.12e+03 |\n", - "| AverageQ2Vals | -122 |\n", - "| StdQ2Vals | 179 |\n", - "| MaxQ2Vals | 76.5 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 110 |\n", - "| LossQ | 437 |\n", - "| Time | 1.34e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 52 |\n", - "| AverageEpRet | -636 |\n", - "| StdEpRet | 283 |\n", - "| MaxEpRet | -220 |\n", - "| MinEpRet | -1.12e+03 |\n", - "| AverageTestEpRet | -712 |\n", - "| StdTestEpRet | 185 |\n", - "| MaxTestEpRet | -457 |\n", - "| MinTestEpRet | -1.09e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.14e+05 |\n", - "| AverageQ1Vals | -121 |\n", - "| StdQ1Vals | 178 |\n", - "| MaxQ1Vals | 58.8 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -121 |\n", - "| StdQ2Vals | 178 |\n", - "| MaxQ2Vals | 54.7 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 109 |\n", - "| LossQ | 431 |\n", - "| Time | 1.37e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 53 |\n", - "| AverageEpRet | -591 |\n", - "| StdEpRet | 351 |\n", - "| MaxEpRet | -132 |\n", - "| MinEpRet | -1.43e+03 |\n", - "| AverageTestEpRet | -551 |\n", - "| StdTestEpRet | 206 |\n", - "| MaxTestEpRet | -333 |\n", - "| MinTestEpRet | -975 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.17e+05 |\n", - "| AverageQ1Vals | -119 |\n", - "| StdQ1Vals | 176 |\n", - "| MaxQ1Vals | 54.4 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -119 |\n", - "| StdQ2Vals | 176 |\n", - "| MaxQ2Vals | 89.1 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 108 |\n", - "| LossQ | 418 |\n", - "| Time | 1.4e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 54 |\n", - "| AverageEpRet | -426 |\n", - "| StdEpRet | 230 |\n", - "| MaxEpRet | -90.2 |\n", - "| MinEpRet | -906 |\n", - "| AverageTestEpRet | -447 |\n", - "| StdTestEpRet | 197 |\n", - "| MaxTestEpRet | -124 |\n", - "| MinTestEpRet | -708 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.19e+05 |\n", - "| AverageQ1Vals | -118 |\n", - "| StdQ1Vals | 175 |\n", - "| MaxQ1Vals | 47.2 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -118 |\n", - "| StdQ2Vals | 175 |\n", - "| MaxQ2Vals | 80 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 106 |\n", - "| LossQ | 401 |\n", - "| Time | 1.43e+03 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 55 |\n", - "| AverageEpRet | -503 |\n", - "| StdEpRet | 235 |\n", - "| MaxEpRet | -110 |\n", - "| MinEpRet | -939 |\n", - "| AverageTestEpRet | -615 |\n", - "| StdTestEpRet | 194 |\n", - "| MaxTestEpRet | -400 |\n", - "| MinTestEpRet | -952 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.21e+05 |\n", - "| AverageQ1Vals | -118 |\n", - "| StdQ1Vals | 174 |\n", - "| MaxQ1Vals | 54.2 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -118 |\n", - "| StdQ2Vals | 174 |\n", - "| MaxQ2Vals | 68.6 |\n", - "| MinQ2Vals | -1.15e+03 |\n", - "| LossPi | 106 |\n", - "| LossQ | 392 |\n", - "| Time | 1.47e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 56 |\n", - "| AverageEpRet | -552 |\n", - "| StdEpRet | 234 |\n", - "| MaxEpRet | -228 |\n", - "| MinEpRet | -969 |\n", - "| AverageTestEpRet | -400 |\n", - "| StdTestEpRet | 293 |\n", - "| MaxTestEpRet | -66.3 |\n", - "| MinTestEpRet | -1.1e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.23e+05 |\n", - "| AverageQ1Vals | -117 |\n", - "| StdQ1Vals | 173 |\n", - "| MaxQ1Vals | 66.1 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -117 |\n", - "| StdQ2Vals | 173 |\n", - "| MaxQ2Vals | 69.5 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 105 |\n", - "| LossQ | 400 |\n", - "| Time | 1.5e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 57 |\n", - "| AverageEpRet | -476 |\n", - "| StdEpRet | 318 |\n", - "| MaxEpRet | -33.7 |\n", - "| MinEpRet | -1.13e+03 |\n", - "| AverageTestEpRet | -480 |\n", - "| StdTestEpRet | 210 |\n", - "| MaxTestEpRet | -197 |\n", - "| MinTestEpRet | -802 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.25e+05 |\n", - "| AverageQ1Vals | -114 |\n", - "| StdQ1Vals | 171 |\n", - "| MaxQ1Vals | 68.5 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -114 |\n", - "| StdQ2Vals | 171 |\n", - "| MaxQ2Vals | 68.8 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 103 |\n", - "| LossQ | 380 |\n", - "| Time | 1.53e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 58 |\n", - "| AverageEpRet | -590 |\n", - "| StdEpRet | 261 |\n", - "| MaxEpRet | -113 |\n", - "| MinEpRet | -1.32e+03 |\n", - "| AverageTestEpRet | -519 |\n", - "| StdTestEpRet | 234 |\n", - "| MaxTestEpRet | -206 |\n", - "| MinTestEpRet | -935 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.28e+05 |\n", - "| AverageQ1Vals | -113 |\n", - "| StdQ1Vals | 170 |\n", - "| MaxQ1Vals | 72.9 |\n", - "| MinQ1Vals | -1.12e+03 |\n", - "| AverageQ2Vals | -113 |\n", - "| StdQ2Vals | 170 |\n", - "| MaxQ2Vals | 51.6 |\n", - "| MinQ2Vals | -1.09e+03 |\n", - "| LossPi | 102 |\n", - "| LossQ | 368 |\n", - "| Time | 1.56e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 59 |\n", - "| AverageEpRet | -588 |\n", - "| StdEpRet | 220 |\n", - "| MaxEpRet | -170 |\n", - "| MinEpRet | -1.05e+03 |\n", - "| AverageTestEpRet | -467 |\n", - "| StdTestEpRet | 182 |\n", - "| MaxTestEpRet | -212 |\n", - "| MinTestEpRet | -763 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.3e+05 |\n", - "| AverageQ1Vals | -112 |\n", - "| StdQ1Vals | 169 |\n", - "| MaxQ1Vals | 64.5 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -112 |\n", - "| StdQ2Vals | 169 |\n", - "| MaxQ2Vals | 93.3 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 102 |\n", - "| LossQ | 367 |\n", - "| Time | 1.6e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 60 |\n", - "| AverageEpRet | -495 |\n", - "| StdEpRet | 358 |\n", - "| MaxEpRet | -44.8 |\n", - "| MinEpRet | -1.71e+03 |\n", - "| AverageTestEpRet | -654 |\n", - "| StdTestEpRet | 261 |\n", - "| MaxTestEpRet | -227 |\n", - "| MinTestEpRet | -1.05e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.32e+05 |\n", - "| AverageQ1Vals | -112 |\n", - "| StdQ1Vals | 168 |\n", - "| MaxQ1Vals | 68.9 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -112 |\n", - "| StdQ2Vals | 168 |\n", - "| MaxQ2Vals | 73.7 |\n", - "| MinQ2Vals | -1.15e+03 |\n", - "| LossPi | 101 |\n", - "| LossQ | 363 |\n", - "| Time | 1.63e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 61 |\n", - "| AverageEpRet | -690 |\n", - "| StdEpRet | 376 |\n", - "| MaxEpRet | -74.9 |\n", - "| MinEpRet | -1.45e+03 |\n", - "| AverageTestEpRet | -574 |\n", - "| StdTestEpRet | 410 |\n", - "| MaxTestEpRet | -144 |\n", - "| MinTestEpRet | -1.57e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.34e+05 |\n", - "| AverageQ1Vals | -110 |\n", - "| StdQ1Vals | 166 |\n", - "| MaxQ1Vals | 49.8 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -110 |\n", - "| StdQ2Vals | 166 |\n", - "| MaxQ2Vals | 52.8 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 100 |\n", - "| LossQ | 349 |\n", - "| Time | 1.66e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 62 |\n", - "| AverageEpRet | -487 |\n", - "| StdEpRet | 280 |\n", - "| MaxEpRet | -116 |\n", - "| MinEpRet | -1.24e+03 |\n", - "| AverageTestEpRet | -485 |\n", - "| StdTestEpRet | 247 |\n", - "| MaxTestEpRet | -146 |\n", - "| MinTestEpRet | -886 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.36e+05 |\n", - "| AverageQ1Vals | -109 |\n", - "| StdQ1Vals | 165 |\n", - "| MaxQ1Vals | 67.9 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -109 |\n", - "| StdQ2Vals | 165 |\n", - "| MaxQ2Vals | 44.4 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 98.7 |\n", - "| LossQ | 358 |\n", - "| Time | 1.7e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 63 |\n", - "| AverageEpRet | -448 |\n", - "| StdEpRet | 251 |\n", - "| MaxEpRet | -56.4 |\n", - "| MinEpRet | -1.16e+03 |\n", - "| AverageTestEpRet | -341 |\n", - "| StdTestEpRet | 181 |\n", - "| MaxTestEpRet | -63.6 |\n", - "| MinTestEpRet | -608 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.39e+05 |\n", - "| AverageQ1Vals | -108 |\n", - "| StdQ1Vals | 165 |\n", - "| MaxQ1Vals | 55.3 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -108 |\n", - "| StdQ2Vals | 165 |\n", - "| MaxQ2Vals | 52.7 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 97.8 |\n", - "| LossQ | 344 |\n", - "| Time | 1.73e+03 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 64 |\n", - "| AverageEpRet | -525 |\n", - "| StdEpRet | 226 |\n", - "| MaxEpRet | -189 |\n", - "| MinEpRet | -1.16e+03 |\n", - "| AverageTestEpRet | -532 |\n", - "| StdTestEpRet | 182 |\n", - "| MaxTestEpRet | -302 |\n", - "| MinTestEpRet | -824 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.41e+05 |\n", - "| AverageQ1Vals | -106 |\n", - "| StdQ1Vals | 164 |\n", - "| MaxQ1Vals | 50.1 |\n", - "| MinQ1Vals | -1.13e+03 |\n", - "| AverageQ2Vals | -106 |\n", - "| StdQ2Vals | 164 |\n", - "| MaxQ2Vals | 37.7 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 95.7 |\n", - "| LossQ | 340 |\n", - "| Time | 1.76e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 65 |\n", - "| AverageEpRet | -470 |\n", - "| StdEpRet | 277 |\n", - "| MaxEpRet | -31.2 |\n", - "| MinEpRet | -1.01e+03 |\n", - "| AverageTestEpRet | -520 |\n", - "| StdTestEpRet | 359 |\n", - "| MaxTestEpRet | -127 |\n", - "| MinTestEpRet | -1.51e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.43e+05 |\n", - "| AverageQ1Vals | -105 |\n", - "| StdQ1Vals | 162 |\n", - "| MaxQ1Vals | 58.3 |\n", - "| MinQ1Vals | -1.22e+03 |\n", - "| AverageQ2Vals | -105 |\n", - "| StdQ2Vals | 162 |\n", - "| MaxQ2Vals | 51.6 |\n", - "| MinQ2Vals | -1.2e+03 |\n", - "| LossPi | 95.2 |\n", - "| LossQ | 329 |\n", - "| Time | 1.79e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 66 |\n", - "| AverageEpRet | -622 |\n", - "| StdEpRet | 284 |\n", - "| MaxEpRet | -126 |\n", - "| MinEpRet | -1.33e+03 |\n", - "| AverageTestEpRet | -525 |\n", - "| StdTestEpRet | 239 |\n", - "| MaxTestEpRet | -224 |\n", - "| MinTestEpRet | -1.01e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.45e+05 |\n", - "| AverageQ1Vals | -104 |\n", - "| StdQ1Vals | 163 |\n", - "| MaxQ1Vals | 46.5 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -104 |\n", - "| StdQ2Vals | 163 |\n", - "| MaxQ2Vals | 73.2 |\n", - "| MinQ2Vals | -1.19e+03 |\n", - "| LossPi | 94.4 |\n", - "| LossQ | 329 |\n", - "| Time | 1.83e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 67 |\n", - "| AverageEpRet | -483 |\n", - "| StdEpRet | 204 |\n", - "| MaxEpRet | -118 |\n", - "| MinEpRet | -836 |\n", - "| AverageTestEpRet | -530 |\n", - "| StdTestEpRet | 231 |\n", - "| MaxTestEpRet | -156 |\n", - "| MinTestEpRet | -994 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.47e+05 |\n", - "| AverageQ1Vals | -103 |\n", - "| StdQ1Vals | 161 |\n", - "| MaxQ1Vals | 56 |\n", - "| MinQ1Vals | -1.22e+03 |\n", - "| AverageQ2Vals | -103 |\n", - "| StdQ2Vals | 161 |\n", - "| MaxQ2Vals | 80 |\n", - "| MinQ2Vals | -1.24e+03 |\n", - "| LossPi | 93.2 |\n", - "| LossQ | 325 |\n", - "| Time | 1.86e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 68 |\n", - "| AverageEpRet | -443 |\n", - "| StdEpRet | 266 |\n", - "| MaxEpRet | -17.7 |\n", - "| MinEpRet | -926 |\n", - "| AverageTestEpRet | -498 |\n", - "| StdTestEpRet | 213 |\n", - "| MaxTestEpRet | -224 |\n", - "| MinTestEpRet | -779 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.5e+05 |\n", - "| AverageQ1Vals | -101 |\n", - "| StdQ1Vals | 160 |\n", - "| MaxQ1Vals | 71.7 |\n", - "| MinQ1Vals | -1.13e+03 |\n", - "| AverageQ2Vals | -101 |\n", - "| StdQ2Vals | 160 |\n", - "| MaxQ2Vals | 76.3 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 91.3 |\n", - "| LossQ | 311 |\n", - "| Time | 1.89e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 69 |\n", - "| AverageEpRet | -542 |\n", - "| StdEpRet | 422 |\n", - "| MaxEpRet | -74.6 |\n", - "| MinEpRet | -1.84e+03 |\n", - "| AverageTestEpRet | -466 |\n", - "| StdTestEpRet | 205 |\n", - "| MaxTestEpRet | -134 |\n", - "| MinTestEpRet | -905 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.52e+05 |\n", - "| AverageQ1Vals | -101 |\n", - "| StdQ1Vals | 160 |\n", - "| MaxQ1Vals | 57.9 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -101 |\n", - "| StdQ2Vals | 160 |\n", - "| MaxQ2Vals | 106 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 91.1 |\n", - "| LossQ | 315 |\n", - "| Time | 1.92e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 70 |\n", - "| AverageEpRet | -556 |\n", - "| StdEpRet | 188 |\n", - "| MaxEpRet | -166 |\n", - "| MinEpRet | -827 |\n", - "| AverageTestEpRet | -466 |\n", - "| StdTestEpRet | 163 |\n", - "| MaxTestEpRet | -247 |\n", - "| MinTestEpRet | -782 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.54e+05 |\n", - "| AverageQ1Vals | -98.9 |\n", - "| StdQ1Vals | 158 |\n", - "| MaxQ1Vals | 55.3 |\n", - "| MinQ1Vals | -1.2e+03 |\n", - "| AverageQ2Vals | -98.9 |\n", - "| StdQ2Vals | 158 |\n", - "| MaxQ2Vals | 104 |\n", - "| MinQ2Vals | -1.19e+03 |\n", - "| LossPi | 89.6 |\n", - "| LossQ | 298 |\n", - "| Time | 1.96e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 71 |\n", - "| AverageEpRet | -508 |\n", - "| StdEpRet | 360 |\n", - "| MaxEpRet | -116 |\n", - "| MinEpRet | -1.65e+03 |\n", - "| AverageTestEpRet | -503 |\n", - "| StdTestEpRet | 290 |\n", - "| MaxTestEpRet | -98.4 |\n", - "| MinTestEpRet | -933 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.56e+05 |\n", - "| AverageQ1Vals | -98.9 |\n", - "| StdQ1Vals | 158 |\n", - "| MaxQ1Vals | 68.3 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -98.9 |\n", - "| StdQ2Vals | 158 |\n", - "| MaxQ2Vals | 62.4 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 89.9 |\n", - "| LossQ | 310 |\n", - "| Time | 1.98e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 72 |\n", - "| AverageEpRet | -565 |\n", - "| StdEpRet | 254 |\n", - "| MaxEpRet | -154 |\n", - "| MinEpRet | -1.08e+03 |\n", - "| AverageTestEpRet | -595 |\n", - "| StdTestEpRet | 299 |\n", - "| MaxTestEpRet | -224 |\n", - "| MinTestEpRet | -1.16e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.58e+05 |\n", - "| AverageQ1Vals | -98.4 |\n", - "| StdQ1Vals | 157 |\n", - "| MaxQ1Vals | 40.1 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -98.4 |\n", - "| StdQ2Vals | 157 |\n", - "| MaxQ2Vals | 65.8 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 89.2 |\n", - "| LossQ | 307 |\n", - "| Time | 2.01e+03 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 73 |\n", - "| AverageEpRet | -531 |\n", - "| StdEpRet | 253 |\n", - "| MaxEpRet | -152 |\n", - "| MinEpRet | -1.18e+03 |\n", - "| AverageTestEpRet | -403 |\n", - "| StdTestEpRet | 239 |\n", - "| MaxTestEpRet | -66.2 |\n", - "| MinTestEpRet | -865 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.61e+05 |\n", - "| AverageQ1Vals | -98 |\n", - "| StdQ1Vals | 156 |\n", - "| MaxQ1Vals | 123 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -98 |\n", - "| StdQ2Vals | 156 |\n", - "| MaxQ2Vals | 61.2 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 89.2 |\n", - "| LossQ | 290 |\n", - "| Time | 2.05e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 74 |\n", - "| AverageEpRet | -608 |\n", - "| StdEpRet | 225 |\n", - "| MaxEpRet | -242 |\n", - "| MinEpRet | -1.07e+03 |\n", - "| AverageTestEpRet | -421 |\n", - "| StdTestEpRet | 224 |\n", - "| MaxTestEpRet | -127 |\n", - "| MinTestEpRet | -972 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.63e+05 |\n", - "| AverageQ1Vals | -96.8 |\n", - "| StdQ1Vals | 154 |\n", - "| MaxQ1Vals | 84.5 |\n", - "| MinQ1Vals | -1.11e+03 |\n", - "| AverageQ2Vals | -96.8 |\n", - "| StdQ2Vals | 154 |\n", - "| MaxQ2Vals | 44 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 87.6 |\n", - "| LossQ | 280 |\n", - "| Time | 2.08e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 75 |\n", - "| AverageEpRet | -438 |\n", - "| StdEpRet | 207 |\n", - "| MaxEpRet | -103 |\n", - "| MinEpRet | -930 |\n", - "| AverageTestEpRet | -416 |\n", - "| StdTestEpRet | 241 |\n", - "| MaxTestEpRet | -135 |\n", - "| MinTestEpRet | -887 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.65e+05 |\n", - "| AverageQ1Vals | -96.7 |\n", - "| StdQ1Vals | 155 |\n", - "| MaxQ1Vals | 72.5 |\n", - "| MinQ1Vals | -1.13e+03 |\n", - "| AverageQ2Vals | -96.7 |\n", - "| StdQ2Vals | 155 |\n", - "| MaxQ2Vals | 75.7 |\n", - "| MinQ2Vals | -1.2e+03 |\n", - "| LossPi | 88.1 |\n", - "| LossQ | 285 |\n", - "| Time | 2.11e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 76 |\n", - "| AverageEpRet | -639 |\n", - "| StdEpRet | 315 |\n", - "| MaxEpRet | -214 |\n", - "| MinEpRet | -1.51e+03 |\n", - "| AverageTestEpRet | -437 |\n", - "| StdTestEpRet | 268 |\n", - "| MaxTestEpRet | -19.2 |\n", - "| MinTestEpRet | -1.04e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.67e+05 |\n", - "| AverageQ1Vals | -95.7 |\n", - "| StdQ1Vals | 153 |\n", - "| MaxQ1Vals | 48.5 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -95.7 |\n", - "| StdQ2Vals | 153 |\n", - "| MaxQ2Vals | 46.2 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 86.8 |\n", - "| LossQ | 285 |\n", - "| Time | 2.14e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 77 |\n", - "| AverageEpRet | -468 |\n", - "| StdEpRet | 228 |\n", - "| MaxEpRet | -125 |\n", - "| MinEpRet | -901 |\n", - "| AverageTestEpRet | -556 |\n", - "| StdTestEpRet | 262 |\n", - "| MaxTestEpRet | -148 |\n", - "| MinTestEpRet | -812 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.69e+05 |\n", - "| AverageQ1Vals | -95.7 |\n", - "| StdQ1Vals | 153 |\n", - "| MaxQ1Vals | 37.2 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -95.7 |\n", - "| StdQ2Vals | 153 |\n", - "| MaxQ2Vals | 49.4 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 86.9 |\n", - "| LossQ | 283 |\n", - "| Time | 2.18e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 78 |\n", - "| AverageEpRet | -568 |\n", - "| StdEpRet | 284 |\n", - "| MaxEpRet | -123 |\n", - "| MinEpRet | -1.27e+03 |\n", - "| AverageTestEpRet | -550 |\n", - "| StdTestEpRet | 360 |\n", - "| MaxTestEpRet | -164 |\n", - "| MinTestEpRet | -1.26e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.72e+05 |\n", - "| AverageQ1Vals | -94.5 |\n", - "| StdQ1Vals | 151 |\n", - "| MaxQ1Vals | 47.8 |\n", - "| MinQ1Vals | -1.2e+03 |\n", - "| AverageQ2Vals | -94.5 |\n", - "| StdQ2Vals | 151 |\n", - "| MaxQ2Vals | 92 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 85.9 |\n", - "| LossQ | 265 |\n", - "| Time | 2.21e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 79 |\n", - "| AverageEpRet | -566 |\n", - "| StdEpRet | 337 |\n", - "| MaxEpRet | -96.5 |\n", - "| MinEpRet | -1.45e+03 |\n", - "| AverageTestEpRet | -543 |\n", - "| StdTestEpRet | 365 |\n", - "| MaxTestEpRet | -134 |\n", - "| MinTestEpRet | -1.41e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.74e+05 |\n", - "| AverageQ1Vals | -94.8 |\n", - "| StdQ1Vals | 151 |\n", - "| MaxQ1Vals | 69.7 |\n", - "| MinQ1Vals | -1.21e+03 |\n", - "| AverageQ2Vals | -94.8 |\n", - "| StdQ2Vals | 151 |\n", - "| MaxQ2Vals | 75.6 |\n", - "| MinQ2Vals | -1.21e+03 |\n", - "| LossPi | 86.4 |\n", - "| LossQ | 278 |\n", - "| Time | 2.24e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 80 |\n", - "| AverageEpRet | -616 |\n", - "| StdEpRet | 290 |\n", - "| MaxEpRet | -114 |\n", - "| MinEpRet | -1.16e+03 |\n", - "| AverageTestEpRet | -447 |\n", - "| StdTestEpRet | 196 |\n", - "| MaxTestEpRet | -182 |\n", - "| MinTestEpRet | -783 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.76e+05 |\n", - "| AverageQ1Vals | -94.6 |\n", - "| StdQ1Vals | 151 |\n", - "| MaxQ1Vals | 59.6 |\n", - "| MinQ1Vals | -1.13e+03 |\n", - "| AverageQ2Vals | -94.6 |\n", - "| StdQ2Vals | 151 |\n", - "| MaxQ2Vals | 74.6 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 86.4 |\n", - "| LossQ | 271 |\n", - "| Time | 2.28e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 81 |\n", - "| AverageEpRet | -535 |\n", - "| StdEpRet | 217 |\n", - "| MaxEpRet | -131 |\n", - "| MinEpRet | -999 |\n", - "| AverageTestEpRet | -422 |\n", - "| StdTestEpRet | 270 |\n", - "| MaxTestEpRet | -67.3 |\n", - "| MinTestEpRet | -1.09e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.78e+05 |\n", - "| AverageQ1Vals | -94.2 |\n", - "| StdQ1Vals | 150 |\n", - "| MaxQ1Vals | 47.4 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -94.2 |\n", - "| StdQ2Vals | 150 |\n", - "| MaxQ2Vals | 71 |\n", - "| MinQ2Vals | -1.15e+03 |\n", - "| LossPi | 85.8 |\n", - "| LossQ | 263 |\n", - "| Time | 2.31e+03 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 82 |\n", - "| AverageEpRet | -505 |\n", - "| StdEpRet | 251 |\n", - "| MaxEpRet | -79.9 |\n", - "| MinEpRet | -1.01e+03 |\n", - "| AverageTestEpRet | -734 |\n", - "| StdTestEpRet | 289 |\n", - "| MaxTestEpRet | -227 |\n", - "| MinTestEpRet | -1.22e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.8e+05 |\n", - "| AverageQ1Vals | -94.2 |\n", - "| StdQ1Vals | 149 |\n", - "| MaxQ1Vals | 53 |\n", - "| MinQ1Vals | -1.09e+03 |\n", - "| AverageQ2Vals | -94.2 |\n", - "| StdQ2Vals | 149 |\n", - "| MaxQ2Vals | 67.3 |\n", - "| MinQ2Vals | -1.08e+03 |\n", - "| LossPi | 86.6 |\n", - "| LossQ | 267 |\n", - "| Time | 2.35e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 83 |\n", - "| AverageEpRet | -585 |\n", - "| StdEpRet | 348 |\n", - "| MaxEpRet | -96.7 |\n", - "| MinEpRet | -1.3e+03 |\n", - "| AverageTestEpRet | -436 |\n", - "| StdTestEpRet | 169 |\n", - "| MaxTestEpRet | -212 |\n", - "| MinTestEpRet | -748 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.83e+05 |\n", - "| AverageQ1Vals | -92.9 |\n", - "| StdQ1Vals | 147 |\n", - "| MaxQ1Vals | 44.3 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -92.9 |\n", - "| StdQ2Vals | 147 |\n", - "| MaxQ2Vals | 75.2 |\n", - "| MinQ2Vals | -1.15e+03 |\n", - "| LossPi | 84.8 |\n", - "| LossQ | 263 |\n", - "| Time | 2.38e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 84 |\n", - "| AverageEpRet | -406 |\n", - "| StdEpRet | 232 |\n", - "| MaxEpRet | -128 |\n", - "| MinEpRet | -924 |\n", - "| AverageTestEpRet | -650 |\n", - "| StdTestEpRet | 236 |\n", - "| MaxTestEpRet | -198 |\n", - "| MinTestEpRet | -1.01e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.85e+05 |\n", - "| AverageQ1Vals | -92.5 |\n", - "| StdQ1Vals | 146 |\n", - "| MaxQ1Vals | 46.3 |\n", - "| MinQ1Vals | -1.12e+03 |\n", - "| AverageQ2Vals | -92.5 |\n", - "| StdQ2Vals | 146 |\n", - "| MaxQ2Vals | 80.6 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 84.4 |\n", - "| LossQ | 258 |\n", - "| Time | 2.41e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 85 |\n", - "| AverageEpRet | -474 |\n", - "| StdEpRet | 247 |\n", - "| MaxEpRet | -180 |\n", - "| MinEpRet | -1.22e+03 |\n", - "| AverageTestEpRet | -527 |\n", - "| StdTestEpRet | 163 |\n", - "| MaxTestEpRet | -166 |\n", - "| MinTestEpRet | -737 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.87e+05 |\n", - "| AverageQ1Vals | -91.8 |\n", - "| StdQ1Vals | 145 |\n", - "| MaxQ1Vals | 51.6 |\n", - "| MinQ1Vals | -1.09e+03 |\n", - "| AverageQ2Vals | -91.8 |\n", - "| StdQ2Vals | 145 |\n", - "| MaxQ2Vals | 33.2 |\n", - "| MinQ2Vals | -1.06e+03 |\n", - "| LossPi | 84.1 |\n", - "| LossQ | 249 |\n", - "| Time | 2.44e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 86 |\n", - "| AverageEpRet | -431 |\n", - "| StdEpRet | 264 |\n", - "| MaxEpRet | -112 |\n", - "| MinEpRet | -1.26e+03 |\n", - "| AverageTestEpRet | -665 |\n", - "| StdTestEpRet | 378 |\n", - "| MaxTestEpRet | -261 |\n", - "| MinTestEpRet | -1.55e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.89e+05 |\n", - "| AverageQ1Vals | -91.6 |\n", - "| StdQ1Vals | 146 |\n", - "| MaxQ1Vals | 65.2 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -91.7 |\n", - "| StdQ2Vals | 146 |\n", - "| MaxQ2Vals | 67.6 |\n", - "| MinQ2Vals | -1.12e+03 |\n", - "| LossPi | 83.5 |\n", - "| LossQ | 238 |\n", - "| Time | 2.47e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 87 |\n", - "| AverageEpRet | -515 |\n", - "| StdEpRet | 228 |\n", - "| MaxEpRet | -122 |\n", - "| MinEpRet | -976 |\n", - "| AverageTestEpRet | -420 |\n", - "| StdTestEpRet | 202 |\n", - "| MaxTestEpRet | -180 |\n", - "| MinTestEpRet | -829 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.91e+05 |\n", - "| AverageQ1Vals | -92.1 |\n", - "| StdQ1Vals | 146 |\n", - "| MaxQ1Vals | 48.9 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -92.1 |\n", - "| StdQ2Vals | 146 |\n", - "| MaxQ2Vals | 54.4 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 83.6 |\n", - "| LossQ | 256 |\n", - "| Time | 2.51e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 88 |\n", - "| AverageEpRet | -572 |\n", - "| StdEpRet | 258 |\n", - "| MaxEpRet | -57 |\n", - "| MinEpRet | -1.07e+03 |\n", - "| AverageTestEpRet | -508 |\n", - "| StdTestEpRet | 163 |\n", - "| MaxTestEpRet | -217 |\n", - "| MinTestEpRet | -794 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.94e+05 |\n", - "| AverageQ1Vals | -91.3 |\n", - "| StdQ1Vals | 145 |\n", - "| MaxQ1Vals | 42.6 |\n", - "| MinQ1Vals | -1.12e+03 |\n", - "| AverageQ2Vals | -91.3 |\n", - "| StdQ2Vals | 145 |\n", - "| MaxQ2Vals | 58 |\n", - "| MinQ2Vals | -1.09e+03 |\n", - "| LossPi | 83.7 |\n", - "| LossQ | 246 |\n", - "| Time | 2.54e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 89 |\n", - "| AverageEpRet | -503 |\n", - "| StdEpRet | 241 |\n", - "| MaxEpRet | -49.9 |\n", - "| MinEpRet | -1.15e+03 |\n", - "| AverageTestEpRet | -562 |\n", - "| StdTestEpRet | 306 |\n", - "| MaxTestEpRet | -68.2 |\n", - "| MinTestEpRet | -1.15e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.96e+05 |\n", - "| AverageQ1Vals | -90.3 |\n", - "| StdQ1Vals | 144 |\n", - "| MaxQ1Vals | 49.8 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -90.3 |\n", - "| StdQ2Vals | 144 |\n", - "| MaxQ2Vals | 54.1 |\n", - "| MinQ2Vals | -1.15e+03 |\n", - "| LossPi | 83 |\n", - "| LossQ | 243 |\n", - "| Time | 2.57e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 90 |\n", - "| AverageEpRet | -478 |\n", - "| StdEpRet | 286 |\n", - "| MaxEpRet | -68 |\n", - "| MinEpRet | -1.15e+03 |\n", - "| AverageTestEpRet | -603 |\n", - "| StdTestEpRet | 390 |\n", - "| MaxTestEpRet | -123 |\n", - "| MinTestEpRet | -1.55e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 1.98e+05 |\n", - "| AverageQ1Vals | -89.9 |\n", - "| StdQ1Vals | 143 |\n", - "| MaxQ1Vals | 36.5 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -89.9 |\n", - "| StdQ2Vals | 143 |\n", - "| MaxQ2Vals | 65.2 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 82.6 |\n", - "| LossQ | 237 |\n", - "| Time | 2.6e+03 |\n", - "---------------------------------------\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 91 |\n", - "| AverageEpRet | -509 |\n", - "| StdEpRet | 252 |\n", - "| MaxEpRet | -101 |\n", - "| MinEpRet | -1.12e+03 |\n", - "| AverageTestEpRet | -566 |\n", - "| StdTestEpRet | 308 |\n", - "| MaxTestEpRet | -62.9 |\n", - "| MinTestEpRet | -1.02e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2e+05 |\n", - "| AverageQ1Vals | -89.9 |\n", - "| StdQ1Vals | 143 |\n", - "| MaxQ1Vals | 36.4 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -89.9 |\n", - "| StdQ2Vals | 143 |\n", - "| MaxQ2Vals | 25.5 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 82.7 |\n", - "| LossQ | 241 |\n", - "| Time | 2.63e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 92 |\n", - "| AverageEpRet | -425 |\n", - "| StdEpRet | 205 |\n", - "| MaxEpRet | -170 |\n", - "| MinEpRet | -998 |\n", - "| AverageTestEpRet | -536 |\n", - "| StdTestEpRet | 271 |\n", - "| MaxTestEpRet | -209 |\n", - "| MinTestEpRet | -1.04e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.02e+05 |\n", - "| AverageQ1Vals | -88.7 |\n", - "| StdQ1Vals | 143 |\n", - "| MaxQ1Vals | 36 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -88.7 |\n", - "| StdQ2Vals | 143 |\n", - "| MaxQ2Vals | 32.9 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 81.3 |\n", - "| LossQ | 237 |\n", - "| Time | 2.67e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 93 |\n", - "| AverageEpRet | -498 |\n", - "| StdEpRet | 277 |\n", - "| MaxEpRet | -83.8 |\n", - "| MinEpRet | -1.11e+03 |\n", - "| AverageTestEpRet | -523 |\n", - "| StdTestEpRet | 286 |\n", - "| MaxTestEpRet | -83.5 |\n", - "| MinTestEpRet | -967 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.05e+05 |\n", - "| AverageQ1Vals | -88.2 |\n", - "| StdQ1Vals | 144 |\n", - "| MaxQ1Vals | 97.3 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -88.2 |\n", - "| StdQ2Vals | 144 |\n", - "| MaxQ2Vals | 36.8 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 80.8 |\n", - "| LossQ | 244 |\n", - "| Time | 2.7e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 94 |\n", - "| AverageEpRet | -470 |\n", - "| StdEpRet | 231 |\n", - "| MaxEpRet | -88.9 |\n", - "| MinEpRet | -946 |\n", - "| AverageTestEpRet | -407 |\n", - "| StdTestEpRet | 194 |\n", - "| MaxTestEpRet | -167 |\n", - "| MinTestEpRet | -793 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.07e+05 |\n", - "| AverageQ1Vals | -87.9 |\n", - "| StdQ1Vals | 143 |\n", - "| MaxQ1Vals | 48.9 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -87.9 |\n", - "| StdQ2Vals | 143 |\n", - "| MaxQ2Vals | 65.6 |\n", - "| MinQ2Vals | -1.1e+03 |\n", - "| LossPi | 80.4 |\n", - "| LossQ | 244 |\n", - "| Time | 2.73e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 95 |\n", - "| AverageEpRet | -471 |\n", - "| StdEpRet | 257 |\n", - "| MaxEpRet | -113 |\n", - "| MinEpRet | -994 |\n", - "| AverageTestEpRet | -563 |\n", - "| StdTestEpRet | 152 |\n", - "| MaxTestEpRet | -261 |\n", - "| MinTestEpRet | -827 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.09e+05 |\n", - "| AverageQ1Vals | -87.2 |\n", - "| StdQ1Vals | 141 |\n", - "| MaxQ1Vals | 30.3 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -87.2 |\n", - "| StdQ2Vals | 141 |\n", - "| MaxQ2Vals | 45.3 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 80.3 |\n", - "| LossQ | 243 |\n", - "| Time | 2.76e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 96 |\n", - "| AverageEpRet | -473 |\n", - "| StdEpRet | 268 |\n", - "| MaxEpRet | -76.1 |\n", - "| MinEpRet | -1.03e+03 |\n", - "| AverageTestEpRet | -392 |\n", - "| StdTestEpRet | 191 |\n", - "| MaxTestEpRet | -90.2 |\n", - "| MinTestEpRet | -713 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.11e+05 |\n", - "| AverageQ1Vals | -86.8 |\n", - "| StdQ1Vals | 139 |\n", - "| MaxQ1Vals | 32.9 |\n", - "| MinQ1Vals | -1.09e+03 |\n", - "| AverageQ2Vals | -86.8 |\n", - "| StdQ2Vals | 139 |\n", - "| MaxQ2Vals | 40.5 |\n", - "| MinQ2Vals | -1.1e+03 |\n", - "| LossPi | 79.5 |\n", - "| LossQ | 233 |\n", - "| Time | 2.79e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 97 |\n", - "| AverageEpRet | -497 |\n", - "| StdEpRet | 345 |\n", - "| MaxEpRet | -37.1 |\n", - "| MinEpRet | -1.17e+03 |\n", - "| AverageTestEpRet | -420 |\n", - "| StdTestEpRet | 227 |\n", - "| MaxTestEpRet | -72.6 |\n", - "| MinTestEpRet | -742 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.13e+05 |\n", - "| AverageQ1Vals | -86.5 |\n", - "| StdQ1Vals | 140 |\n", - "| MaxQ1Vals | 43 |\n", - "| MinQ1Vals | -1.17e+03 |\n", - "| AverageQ2Vals | -86.5 |\n", - "| StdQ2Vals | 140 |\n", - "| MaxQ2Vals | 38.9 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 79.6 |\n", - "| LossQ | 234 |\n", - "| Time | 2.82e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 98 |\n", - "| AverageEpRet | -429 |\n", - "| StdEpRet | 215 |\n", - "| MaxEpRet | -135 |\n", - "| MinEpRet | -848 |\n", - "| AverageTestEpRet | -511 |\n", - "| StdTestEpRet | 337 |\n", - "| MaxTestEpRet | -92.5 |\n", - "| MinTestEpRet | -1.37e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.16e+05 |\n", - "| AverageQ1Vals | -86.1 |\n", - "| StdQ1Vals | 139 |\n", - "| MaxQ1Vals | 30.3 |\n", - "| MinQ1Vals | -1.25e+03 |\n", - "| AverageQ2Vals | -86.1 |\n", - "| StdQ2Vals | 139 |\n", - "| MaxQ2Vals | 43.7 |\n", - "| MinQ2Vals | -1.21e+03 |\n", - "| LossPi | 79.1 |\n", - "| LossQ | 226 |\n", - "| Time | 2.85e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 99 |\n", - "| AverageEpRet | -514 |\n", - "| StdEpRet | 278 |\n", - "| MaxEpRet | -141 |\n", - "| MinEpRet | -1.21e+03 |\n", - "| AverageTestEpRet | -633 |\n", - "| StdTestEpRet | 489 |\n", - "| MaxTestEpRet | -181 |\n", - "| MinTestEpRet | -1.66e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.18e+05 |\n", - "| AverageQ1Vals | -84.8 |\n", - "| StdQ1Vals | 139 |\n", - "| MaxQ1Vals | 30.2 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -84.8 |\n", - "| StdQ2Vals | 139 |\n", - "| MaxQ2Vals | 27.5 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 77.7 |\n", - "| LossQ | 225 |\n", - "| Time | 2.88e+03 |\n", - "---------------------------------------\n" + "================================================================================\n", + "\u001b[32;1mExperimentGrid [gyro-td3-randomsearch] runs over parameters:\n", + "\u001b[0m\n", + " \u001b[36;1menv_name \u001b[0m [] \n", + "\n", + "\tCartPole-v0\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", + "\t60\n", + "\n", + " \u001b[36;1msteps_per_epoch \u001b[0m [ste] \n", + "\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(300,)\n", + "\t(800,)\n", + "\t(64, 64)\n", + "\n", + " \u001b[36;1mac_kwargs:activation \u001b[0m [act] \n", + "\n", + "\tReLU\n", + "\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", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat100_sta20000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-995_bat150_sta20000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat100_sta20000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-95_pol0-999_bat150_sta20000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat100_sta20000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-995_bat150_sta20000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat100_sta20000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta10000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta10000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta10000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta10000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta10000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta10000_noi0-7_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta20000_noi0-5_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta20000_noi0-5_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta20000_noi0-5_hid800\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta20000_noi0-7_hid300\n", + "gyro-td3-randomsearch_cartpole-v0_gam0-99_pol0-999_bat150_sta20000_noi0-7_hid64-64\n", + "gyro-td3-randomsearch_cartpole-v0_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": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "---------------------------------------\n", - "| Epoch | 100 |\n", - "| AverageEpRet | -557 |\n", - "| StdEpRet | 280 |\n", - "| MaxEpRet | -26 |\n", - "| MinEpRet | -1.17e+03 |\n", - "| AverageTestEpRet | -544 |\n", - "| StdTestEpRet | 372 |\n", - "| MaxTestEpRet | -148 |\n", - "| MinTestEpRet | -1.24e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.2e+05 |\n", - "| AverageQ1Vals | -84 |\n", - "| StdQ1Vals | 139 |\n", - "| MaxQ1Vals | 51.4 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -84 |\n", - "| StdQ2Vals | 139 |\n", - "| MaxQ2Vals | 43 |\n", - "| MinQ2Vals | -1.22e+03 |\n", - "| LossPi | 76.6 |\n", - "| LossQ | 220 |\n", - "| Time | 2.92e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 101 |\n", - "| AverageEpRet | -434 |\n", - "| StdEpRet | 192 |\n", - "| MaxEpRet | -155 |\n", - "| MinEpRet | -806 |\n", - "| AverageTestEpRet | -418 |\n", - "| StdTestEpRet | 152 |\n", - "| MaxTestEpRet | -244 |\n", - "| MinTestEpRet | -730 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.22e+05 |\n", - "| AverageQ1Vals | -82.7 |\n", - "| StdQ1Vals | 138 |\n", - "| MaxQ1Vals | 35.3 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -82.7 |\n", - "| StdQ2Vals | 138 |\n", - "| MaxQ2Vals | 54.9 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 76.3 |\n", - "| LossQ | 219 |\n", - "| Time | 2.95e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 102 |\n", - "| AverageEpRet | -625 |\n", - "| StdEpRet | 341 |\n", - "| MaxEpRet | -120 |\n", - "| MinEpRet | -1.24e+03 |\n", - "| AverageTestEpRet | -490 |\n", - "| StdTestEpRet | 223 |\n", - "| MaxTestEpRet | -73.4 |\n", - "| MinTestEpRet | -824 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.24e+05 |\n", - "| AverageQ1Vals | -81.2 |\n", - "| StdQ1Vals | 137 |\n", - "| MaxQ1Vals | 96.8 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -81.2 |\n", - "| StdQ2Vals | 137 |\n", - "| MaxQ2Vals | 71.4 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 74.2 |\n", - "| LossQ | 213 |\n", - "| Time | 2.99e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 103 |\n", - "| AverageEpRet | -617 |\n", - "| StdEpRet | 327 |\n", - "| MaxEpRet | -104 |\n", - "| MinEpRet | -1.32e+03 |\n", - "| AverageTestEpRet | -561 |\n", - "| StdTestEpRet | 214 |\n", - "| MaxTestEpRet | -248 |\n", - "| MinTestEpRet | -906 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.27e+05 |\n", - "| AverageQ1Vals | -80.7 |\n", - "| StdQ1Vals | 138 |\n", - "| MaxQ1Vals | 70.5 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -80.7 |\n", - "| StdQ2Vals | 138 |\n", - "| MaxQ2Vals | 41 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 74.1 |\n", - "| LossQ | 204 |\n", - "| Time | 3.02e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 104 |\n", - "| AverageEpRet | -527 |\n", - "| StdEpRet | 254 |\n", - "| MaxEpRet | -65.7 |\n", - "| MinEpRet | -1.01e+03 |\n", - "| AverageTestEpRet | -425 |\n", - "| StdTestEpRet | 224 |\n", - "| MaxTestEpRet | -92.5 |\n", - "| MinTestEpRet | -774 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.29e+05 |\n", - "| AverageQ1Vals | -79.9 |\n", - "| StdQ1Vals | 137 |\n", - "| MaxQ1Vals | 41.1 |\n", - "| MinQ1Vals | -1.13e+03 |\n", - "| AverageQ2Vals | -79.9 |\n", - "| StdQ2Vals | 137 |\n", - "| MaxQ2Vals | 44.5 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 73.2 |\n", - "| LossQ | 217 |\n", - "| Time | 3.05e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 105 |\n", - "| AverageEpRet | -469 |\n", - "| StdEpRet | 235 |\n", - "| MaxEpRet | -144 |\n", - "| MinEpRet | -1.12e+03 |\n", - "| AverageTestEpRet | -317 |\n", - "| StdTestEpRet | 137 |\n", - "| MaxTestEpRet | -134 |\n", - "| MinTestEpRet | -541 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.31e+05 |\n", - "| AverageQ1Vals | -78.8 |\n", - "| StdQ1Vals | 135 |\n", - "| MaxQ1Vals | 24.5 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -78.8 |\n", - "| StdQ2Vals | 135 |\n", - "| MaxQ2Vals | 38.7 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 72.6 |\n", - "| LossQ | 200 |\n", - "| Time | 3.08e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 106 |\n", - "| AverageEpRet | -509 |\n", - "| StdEpRet | 244 |\n", - "| MaxEpRet | -114 |\n", - "| MinEpRet | -989 |\n", - "| AverageTestEpRet | -542 |\n", - "| StdTestEpRet | 277 |\n", - "| MaxTestEpRet | -129 |\n", - "| MinTestEpRet | -965 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.33e+05 |\n", - "| AverageQ1Vals | -79.1 |\n", - "| StdQ1Vals | 136 |\n", - "| MaxQ1Vals | 40.6 |\n", - "| MinQ1Vals | -1.09e+03 |\n", - "| AverageQ2Vals | -79.1 |\n", - "| StdQ2Vals | 136 |\n", - "| MaxQ2Vals | 54 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 72.7 |\n", - "| LossQ | 207 |\n", - "| Time | 3.11e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 107 |\n", - "| AverageEpRet | -571 |\n", - "| StdEpRet | 245 |\n", - "| MaxEpRet | -189 |\n", - "| MinEpRet | -969 |\n", - "| AverageTestEpRet | -538 |\n", - "| StdTestEpRet | 189 |\n", - "| MaxTestEpRet | -255 |\n", - "| MinTestEpRet | -880 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.35e+05 |\n", - "| AverageQ1Vals | -78.4 |\n", - "| StdQ1Vals | 135 |\n", - "| MaxQ1Vals | 33.8 |\n", - "| MinQ1Vals | -1.11e+03 |\n", - "| AverageQ2Vals | -78.4 |\n", - "| StdQ2Vals | 135 |\n", - "| MaxQ2Vals | 45.3 |\n", - "| MinQ2Vals | -1.16e+03 |\n", - "| LossPi | 71.6 |\n", - "| LossQ | 202 |\n", - "| Time | 3.15e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 108 |\n", - "| AverageEpRet | -481 |\n", - "| StdEpRet | 187 |\n", - "| MaxEpRet | -110 |\n", - "| MinEpRet | -837 |\n", - "| AverageTestEpRet | -399 |\n", - "| StdTestEpRet | 162 |\n", - "| MaxTestEpRet | -149 |\n", - "| MinTestEpRet | -668 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.38e+05 |\n", - "| AverageQ1Vals | -78 |\n", - "| StdQ1Vals | 135 |\n", - "| MaxQ1Vals | 34 |\n", - "| MinQ1Vals | -1.15e+03 |\n", - "| AverageQ2Vals | -78 |\n", - "| StdQ2Vals | 135 |\n", - "| MaxQ2Vals | 41.9 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 72.1 |\n", - "| LossQ | 217 |\n", - "| Time | 3.18e+03 |\n", - "---------------------------------------\n" + " \r" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "---------------------------------------\n", - "| Epoch | 109 |\n", - "| AverageEpRet | -476 |\n", - "| StdEpRet | 272 |\n", - "| MaxEpRet | -63.6 |\n", - "| MinEpRet | -1.04e+03 |\n", - "| AverageTestEpRet | -531 |\n", - "| StdTestEpRet | 326 |\n", - "| MaxTestEpRet | -90.1 |\n", - "| MinTestEpRet | -1.19e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.4e+05 |\n", - "| AverageQ1Vals | -76.9 |\n", - "| StdQ1Vals | 134 |\n", - "| MaxQ1Vals | 59 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -76.9 |\n", - "| StdQ2Vals | 134 |\n", - "| MaxQ2Vals | 42.2 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 70.7 |\n", - "| LossQ | 212 |\n", - "| Time | 3.21e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 110 |\n", - "| AverageEpRet | -523 |\n", - "| StdEpRet | 321 |\n", - "| MaxEpRet | -29.2 |\n", - "| MinEpRet | -1.39e+03 |\n", - "| AverageTestEpRet | -583 |\n", - "| StdTestEpRet | 282 |\n", - "| MaxTestEpRet | -187 |\n", - "| MinTestEpRet | -1.03e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.42e+05 |\n", - "| AverageQ1Vals | -76.8 |\n", - "| StdQ1Vals | 135 |\n", - "| MaxQ1Vals | 43.9 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -76.8 |\n", - "| StdQ2Vals | 135 |\n", - "| MaxQ2Vals | 53.2 |\n", - "| MinQ2Vals | -1.19e+03 |\n", - "| LossPi | 70.9 |\n", - "| LossQ | 202 |\n", - "| Time | 3.24e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 111 |\n", - "| AverageEpRet | -453 |\n", - "| StdEpRet | 254 |\n", - "| MaxEpRet | -81.5 |\n", - "| MinEpRet | -1.13e+03 |\n", - "| AverageTestEpRet | -524 |\n", - "| StdTestEpRet | 105 |\n", - "| MaxTestEpRet | -339 |\n", - "| MinTestEpRet | -689 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.44e+05 |\n", - "| AverageQ1Vals | -76.5 |\n", - "| StdQ1Vals | 135 |\n", - "| MaxQ1Vals | 30.1 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -76.5 |\n", - "| StdQ2Vals | 135 |\n", - "| MaxQ2Vals | 41.8 |\n", - "| MinQ2Vals | -1.23e+03 |\n", - "| LossPi | 70.4 |\n", - "| LossQ | 207 |\n", - "| Time | 3.27e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 112 |\n", - "| AverageEpRet | -596 |\n", - "| StdEpRet | 262 |\n", - "| MaxEpRet | -173 |\n", - "| MinEpRet | -1.26e+03 |\n", - "| AverageTestEpRet | -415 |\n", - "| StdTestEpRet | 161 |\n", - "| MaxTestEpRet | -137 |\n", - "| MinTestEpRet | -652 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.46e+05 |\n", - "| AverageQ1Vals | -76.3 |\n", - "| StdQ1Vals | 134 |\n", - "| MaxQ1Vals | 34.9 |\n", - "| MinQ1Vals | -1.19e+03 |\n", - "| AverageQ2Vals | -76.3 |\n", - "| StdQ2Vals | 134 |\n", - "| MaxQ2Vals | 46.7 |\n", - "| MinQ2Vals | -1.18e+03 |\n", - "| LossPi | 70.3 |\n", - "| LossQ | 198 |\n", - "| Time | 3.3e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 113 |\n", - "| AverageEpRet | -482 |\n", - "| StdEpRet | 333 |\n", - "| MaxEpRet | -62.8 |\n", - "| MinEpRet | -1.44e+03 |\n", - "| AverageTestEpRet | -559 |\n", - "| StdTestEpRet | 304 |\n", - "| MaxTestEpRet | -142 |\n", - "| MinTestEpRet | -1.28e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.49e+05 |\n", - "| AverageQ1Vals | -76.2 |\n", - "| StdQ1Vals | 134 |\n", - "| MaxQ1Vals | 38.3 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -76.2 |\n", - "| StdQ2Vals | 134 |\n", - "| MaxQ2Vals | 50.3 |\n", - "| MinQ2Vals | -1.2e+03 |\n", - "| LossPi | 69.7 |\n", - "| LossQ | 200 |\n", - "| Time | 3.33e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 114 |\n", - "| AverageEpRet | -450 |\n", - "| StdEpRet | 216 |\n", - "| MaxEpRet | -94.9 |\n", - "| MinEpRet | -872 |\n", - "| AverageTestEpRet | -432 |\n", - "| StdTestEpRet | 132 |\n", - "| MaxTestEpRet | -232 |\n", - "| MinTestEpRet | -645 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.51e+05 |\n", - "| AverageQ1Vals | -75.7 |\n", - "| StdQ1Vals | 132 |\n", - "| MaxQ1Vals | 44.9 |\n", - "| MinQ1Vals | -1.16e+03 |\n", - "| AverageQ2Vals | -75.7 |\n", - "| StdQ2Vals | 132 |\n", - "| MaxQ2Vals | 44.4 |\n", - "| MinQ2Vals | -1.13e+03 |\n", - "| LossPi | 69.6 |\n", - "| LossQ | 201 |\n", - "| Time | 3.36e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 115 |\n", - "| AverageEpRet | -487 |\n", - "| StdEpRet | 240 |\n", - "| MaxEpRet | -108 |\n", - "| MinEpRet | -932 |\n", - "| AverageTestEpRet | -371 |\n", - "| StdTestEpRet | 152 |\n", - "| MaxTestEpRet | -143 |\n", - "| MinTestEpRet | -616 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.53e+05 |\n", - "| AverageQ1Vals | -75.4 |\n", - "| StdQ1Vals | 132 |\n", - "| MaxQ1Vals | 21.2 |\n", - "| MinQ1Vals | -1.14e+03 |\n", - "| AverageQ2Vals | -75.4 |\n", - "| StdQ2Vals | 132 |\n", - "| MaxQ2Vals | 29.5 |\n", - "| MinQ2Vals | -1.11e+03 |\n", - "| LossPi | 69.7 |\n", - "| LossQ | 205 |\n", - "| Time | 3.4e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 116 |\n", - "| AverageEpRet | -538 |\n", - "| StdEpRet | 220 |\n", - "| MaxEpRet | -110 |\n", - "| MinEpRet | -960 |\n", - "| AverageTestEpRet | -475 |\n", - "| StdTestEpRet | 311 |\n", - "| MaxTestEpRet | -173 |\n", - "| MinTestEpRet | -1.23e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.55e+05 |\n", - "| AverageQ1Vals | -75.4 |\n", - "| StdQ1Vals | 132 |\n", - "| MaxQ1Vals | 26 |\n", - "| MinQ1Vals | -1.18e+03 |\n", - "| AverageQ2Vals | -75.4 |\n", - "| StdQ2Vals | 132 |\n", - "| MaxQ2Vals | 37.1 |\n", - "| MinQ2Vals | -1.17e+03 |\n", - "| LossPi | 69.3 |\n", - "| LossQ | 201 |\n", - "| Time | 3.43e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 117 |\n", - "| AverageEpRet | -437 |\n", - "| StdEpRet | 203 |\n", - "| MaxEpRet | -92.8 |\n", - "| MinEpRet | -857 |\n", - "| AverageTestEpRet | -582 |\n", - "| StdTestEpRet | 247 |\n", - "| MaxTestEpRet | -79.8 |\n", - "| MinTestEpRet | -861 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.57e+05 |\n", - "| AverageQ1Vals | -75.5 |\n", - "| StdQ1Vals | 132 |\n", - "| MaxQ1Vals | 49.5 |\n", - "| MinQ1Vals | -1.13e+03 |\n", - "| AverageQ2Vals | -75.5 |\n", - "| StdQ2Vals | 132 |\n", - "| MaxQ2Vals | 51 |\n", - "| MinQ2Vals | -1.14e+03 |\n", - "| LossPi | 69.4 |\n", - "| LossQ | 201 |\n", - "| Time | 3.47e+03 |\n", - "---------------------------------------\n" + "\u001b[36;1mRunning experiment:\n", + "\u001b[0m\n", + "gyro-td3-randomsearch_cartpole-v0_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\"ReLU\",\n", + " \"hidden_sizes\":\t[\n", + " 300\n", + " ]\n", + " },\n", + " \"act_noise\":\t0.1,\n", + " \"batch_size\":\t100,\n", + " \"env_name\":\t\"CartPole-v0\",\n", + " \"epochs\":\t60,\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", + "\n", + "\n", + "\n", + "================================================================================\n", + "\n", + "\n", + "There appears to have been an error in your experiment.\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" ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------\n", - "| Epoch | 118 |\n", - "| AverageEpRet | -549 |\n", - "| StdEpRet | 236 |\n", - "| MaxEpRet | -111 |\n", - "| MinEpRet | -1.28e+03 |\n", - "| AverageTestEpRet | -588 |\n", - "| StdTestEpRet | 404 |\n", - "| MaxTestEpRet | -138 |\n", - "| MinTestEpRet | -1.66e+03 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.6e+05 |\n", - "| AverageQ1Vals | -75.1 |\n", - "| StdQ1Vals | 130 |\n", - "| MaxQ1Vals | 31.7 |\n", - "| MinQ1Vals | -1.05e+03 |\n", - "| AverageQ2Vals | -75.1 |\n", - "| StdQ2Vals | 130 |\n", - "| MaxQ2Vals | 38.6 |\n", - "| MinQ2Vals | -1.05e+03 |\n", - "| LossPi | 69 |\n", - "| LossQ | 192 |\n", - "| Time | 3.5e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 119 |\n", - "| AverageEpRet | -491 |\n", - "| StdEpRet | 247 |\n", - "| MaxEpRet | -102 |\n", - "| MinEpRet | -945 |\n", - "| AverageTestEpRet | -535 |\n", - "| StdTestEpRet | 217 |\n", - "| MaxTestEpRet | -173 |\n", - "| MinTestEpRet | -879 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.62e+05 |\n", - "| AverageQ1Vals | -74.9 |\n", - "| StdQ1Vals | 130 |\n", - "| MaxQ1Vals | 60.9 |\n", - "| MinQ1Vals | -1.11e+03 |\n", - "| AverageQ2Vals | -74.9 |\n", - "| StdQ2Vals | 130 |\n", - "| MaxQ2Vals | 28.6 |\n", - "| MinQ2Vals | -1.12e+03 |\n", - "| LossPi | 69.2 |\n", - "| LossQ | 204 |\n", - "| Time | 3.53e+03 |\n", - "---------------------------------------\n", - "---------------------------------------\n", - "| Epoch | 120 |\n", - "| AverageEpRet | -431 |\n", - "| StdEpRet | 249 |\n", - "| MaxEpRet | -64.6 |\n", - "| MinEpRet | -885 |\n", - "| AverageTestEpRet | -519 |\n", - "| StdTestEpRet | 242 |\n", - "| MaxTestEpRet | -56.1 |\n", - "| MinTestEpRet | -838 |\n", - "| EpLen | 110 |\n", - "| TestEpLen | 110 |\n", - "| TotalEnvInteracts | 2.64e+05 |\n", - "| AverageQ1Vals | -74.8 |\n", - "| StdQ1Vals | 129 |\n", - "| MaxQ1Vals | 105 |\n", - "| MinQ1Vals | -1.11e+03 |\n", - "| AverageQ2Vals | -74.8 |\n", - "| StdQ2Vals | 129 |\n", - "| MaxQ2Vals | 77.4 |\n", - "| MinQ2Vals | -1.08e+03 |\n", - "| LossPi | 69.1 |\n", - "| LossQ | 197 |\n", - "| Time | 3.56e+03 |\n", - "---------------------------------------\n" + "ename": "CalledProcessError", + "evalue": "Command '['/usr/bin/python3.6', '/home/matthieulc/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/utils/run_entrypoint.py', 'eJytVE+PGzUUn0myaZpsd1esREXpjQNZiUwC1R6QtuVPEEiEXa0WOCLLGTsz0/HY7tjeNkhISKXdVHrisgYJOHLiI/ARuHLplU8A4oo48GYSuiknDutRYvs9v/d+7/f8/GXrm7Qd1AOux0I5prM4FzxaW3vYIrNMCDJzMraZkv7c99MAtklBc05MzpcqFKP0Gpm6TNhMEjvXHGXQGSvGP6k2j/yJ70+C+mtOdsfvs3DRyNvliDVYIIInuGPhS8GT4Cw4C2cN1mStrzoo2zgIKs3twIaL5sMwDBatGUq+xhULPg58/wg6XJ4SSQvuJ0F69d8gDQzSXYR3g0XwMMSDR488tCrUCGUP7g5TVfBhQa1NM+5EPHxPxa7g0prh4TtvDLUZsFIMZqocJPNSmVhpPoiVtKUSw5Ib5cqYm6HRmZSZTJyulzg5mwkzLJ0k9SrSc2ThQNBiyugdP/lhHPi0B81kXvjHfs8iK7AfU2SYP9C8zCoE0YFQKDJ3Ips6mRMtnLmQPfMF7SrvmfTWp7vQKXRGEG5euU13oHth6yffjreCRiesvhfCdrPTROP8Pi0T4+GKdAWJtfOwUZv4MwSY7j72FbZJ8wvfhx4hmsY5TTghHjaXmUZ1fpgcqbmvNC+ua6JnHNRn8BZVZ9Idd4Z+K69XEqGmmBJu0hv/sa2SsUqhMr1x7g10GJ9RJ6zxR9BiWWzRCLbwohpXcnJKhePGf+b76BfZ7Y1paY+V4IPTUUWTVnGKLBzAtrFcG4JEk1roD8s29EquBZ0Tk33O/Ydvv7sdwEZCi4L6D976fVYPaGsl5jRHyR9Pu7f1j0+hO6U2TpdGEwY9YzEmqf37w51XoVvQBxiECC79RMJVGlsiVWY4+vj5u2p8DxuYpShRcDw9/PXPn/6G1r3n95sYNovnhHEE6CcN2MQoCb/w9MvKU7cWkFhkGqW/rboag5JVmSvCN9OMMS5rzAjytRA7oou4slNatza8bFUZp5GUUaGYE9xE69rWCf/oU2xqBy3DOcNmg2tCJQmSuRakq5zVzhKWlR7+uvQuY9TSYXV2YNmtQUklU4XhFGGTGAugl0UnWL/R4M19gnuccYHVen00wvpQnHCBfI0G+wQZuTUaXbpDYvDedbCjl88SHF92AO8c3oabq56hIlHVS7MsH4apfh6a1f+559BeltOne9CqAaU3oclUjM10nay99sS46ary2EzQo1IqW1e/qi107jkqlgm98j+eLLxc+f2LvnX2JPoHYNdmdA==']' returned non-zero exit status 1.", + "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 33\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\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---> 35\u001b[0;31m \u001b[0meg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mspinup\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[0;34m'/usr/bin/python3.6'\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.6', '/home/matthieulc/Documents/MA2/ps-drl-for-gyroscope-control/resources/spinningup/spinup/utils/run_entrypoint.py', 'eJytVE+PGzUUn0myaZpsd1esREXpjQNZiUwC1R6QtuVPEEiEXa0WOCLLGTsz0/HY7tjeNkhISKXdVHrisgYJOHLiI/ARuHLplU8A4oo48GYSuiknDutRYvs9v/d+7/f8/GXrm7Qd1AOux0I5prM4FzxaW3vYIrNMCDJzMraZkv7c99MAtklBc05MzpcqFKP0Gpm6TNhMEjvXHGXQGSvGP6k2j/yJ70+C+mtOdsfvs3DRyNvliDVYIIInuGPhS8GT4Cw4C2cN1mStrzoo2zgIKs3twIaL5sMwDBatGUq+xhULPg58/wg6XJ4SSQvuJ0F69d8gDQzSXYR3g0XwMMSDR488tCrUCGUP7g5TVfBhQa1NM+5EPHxPxa7g0prh4TtvDLUZsFIMZqocJPNSmVhpPoiVtKUSw5Ib5cqYm6HRmZSZTJyulzg5mwkzLJ0k9SrSc2ThQNBiyugdP/lhHPi0B81kXvjHfs8iK7AfU2SYP9C8zCoE0YFQKDJ3Ips6mRMtnLmQPfMF7SrvmfTWp7vQKXRGEG5euU13oHth6yffjreCRiesvhfCdrPTROP8Pi0T4+GKdAWJtfOwUZv4MwSY7j72FbZJ8wvfhx4hmsY5TTghHjaXmUZ1fpgcqbmvNC+ua6JnHNRn8BZVZ9Idd4Z+K69XEqGmmBJu0hv/sa2SsUqhMr1x7g10GJ9RJ6zxR9BiWWzRCLbwohpXcnJKhePGf+b76BfZ7Y1paY+V4IPTUUWTVnGKLBzAtrFcG4JEk1roD8s29EquBZ0Tk33O/Ydvv7sdwEZCi4L6D976fVYPaGsl5jRHyR9Pu7f1j0+hO6U2TpdGEwY9YzEmqf37w51XoVvQBxiECC79RMJVGlsiVWY4+vj5u2p8DxuYpShRcDw9/PXPn/6G1r3n95sYNovnhHEE6CcN2MQoCb/w9MvKU7cWkFhkGqW/rboag5JVmSvCN9OMMS5rzAjytRA7oou4slNatza8bFUZp5GUUaGYE9xE69rWCf/oU2xqBy3DOcNmg2tCJQmSuRakq5zVzhKWlR7+uvQuY9TSYXV2YNmtQUklU4XhFGGTGAugl0UnWL/R4M19gnuccYHVen00wvpQnHCBfI0G+wQZuTUaXbpDYvDedbCjl88SHF92AO8c3oabq56hIlHVS7MsH4apfh6a1f+559BeltOne9CqAaU3oclUjM10nay99sS46ary2EzQo1IqW1e/qi107jkqlgm98j+eLLxc+f2LvnX2JPoHYNdmdA==']' returned non-zero exit status 1." ] } ], "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", - " parser = argparse.ArgumentParser()\n", - " parser.add_argument('--cpu', type=int, default=4)\n", - " parser.add_argument('--num_runs', type=int, default=3)\n", - " args = parser.parse_args()\n", + "# Add parameter range\n", + "eg.add('env_name', 'CartPole-v0', '', 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", "\n", - " eg = ExperimentGrid(name='ppo-pyt-bench')\n", - " eg.add('env_name', 'CartPole-v0', '', True)\n", - " eg.add('seed', [10*i for i in range(args.num_runs)])\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.run(ppo_pytorch, num_cpu=args.cpu)" + "# Run experiments\n", + "eg.run(spinup.td3_pytorch, num_cpu='auto')" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'3.6.9 (default, Nov 7 2019, 10:44:02) \\n[GCC 8.3.0]'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import sys\n", + "sys.version" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "Gn3Gp40bcOVz" }, "source": [ "## Test" ] }, { "cell_type": "code", "execution_count": 4, "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": "stderr", "output_type": "stream", "text": [ "/home/matthieulc/Documents/MA2/PS1/ps1venv/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": [ "-900.18321242575\n" ] } ], "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": 5, "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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nnuWHYkkSZIkqQcsWADbbAP9XcFckiRJ6rS6LppFxE8iYm5ETG6nPSLi+xHxVEQ8EhEH9XSMdW3cuDw1Y2x0LWxJkiRJUi+xcKFTM0qSJEldVddFM+A64J0baT8O2KPyOB24pgdiagzz5+c1zZyaUZIkSZL6jAULYMiQsqOQJEmSGlNdF81SSvcC8zdyyHuAn6XsfmBIROzQM9HVufvvz1uLZpIkSZLUZzjSTJIkSeq6Rp/lfCfg+RY/z6jsm1VOOJ1zzjnnMKTVLYAf+tCHOOuss1i2bBnHH398m9eMGTOGMWPG8NJLL3HSSSe1aT/zzDM5+eSTef53v+NUgIsugs02W99+7rnncuKJJ/LEE09wxhlntHn9hRdeyNFHH83DDz/MOeec06b90ksv5YgjjmDcuHFccMEFbdqvvPJKDjjgAO655x6++c1vtmm/9tpr2Wuvvbj99tu54oor2rRff/317LLLLtx0001cc03bgYO33HILw4YN47rrruO6665r037nnXey1VZbcdttt3HxxRe3aW9qagLg8ssv54477tigbcstt+Suu+4C4Bvf+AZ/+MMfNmgfOnQot956KwDnn38+48eP36B955135uc//zmQP9uHH354g/Y999yTsWPHAnD66aczderUDdoPOOAArrzySgBOOeUUZsyYsUH7qFGjuOyyywD4wAc+wLx58zZoP+qoo7jooosAOO6441i+fPkG7SeccAJf/OIXARg9ejStdeTaGzFixKavveef59RTT23T3leuvauvvpqbb765Tfumrr3zzjsP8Nrr1vdeO9feMcccw+jRo732avy9t3DhQvbbbz+vvQK+9xYuXMiQIUO89gr43mvOrdde7b73jj766Dbtksq1YAHsvnvZUUiSJEmNqdGLZh0SEaeTp29k+PDh6/8Rp2xr165l4cKFG+ybOnUqTU1NrFixok0bwJQpU2hqamLRokVV2x977DGampoY+sc/snbLLXn55Zc3aH/00UfZZpttmD59etXXT5o0if79+/PUU09VbX/wwQdZtWoVkydPrto+YcIEFi5cyKRJk6q2P/DAA8yaNYtHH320avv48eOZNm0ajz32WNX2++67j8GDBzNlypSq7ffeey8DBw5k5cqVVdubP/tp06a1aV++fPn69meeeaZN+7p169a3V8vfgAED1rfPmDGjTfvMmTPX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JAcdlBx9dDIFU2UCAACsUTNRR97vft32xBMnGwcAAKxHE2+aVdW/JPlkkjtV1der6qlJ/izJQ6rqq0ke3D9OVW2pqtclSWvt0iQvS/KZ/uel/b61pSo58sjk9NOTL3xh0tEAAABMvVmuIw88MNljD00zAAAYwsTXNGutPXGJQw9a5NxTkjxt3uNjkhwzUGir50H9Wz399ORud5tsLAAAAFNuluvIquSwwzTNAABgCBMfaUaS290u2bAh+cpXJh0JAAAAU+5+9+vWNLtwTazGBgAAa4em2TTYtKlrnGmaAQAAcD3uc59u++lPTzYOAABYbzTNpsUBByRf/eqkowAAAGDK7b57t92+fbJxAADAeqNpNi32378badbapCMBAABgim3a1G1/9KPJxgEAAOuNptm0OOCA5Ac/SL7xjUlHAgAAwBTTNAMAgGFomk2LAw7otqZoBAAAYAc0zQAAYBiaZtNi//277Ve+Mtk4AAAAmGqaZgAAMAxNs2lx29smN7iBphkAAAA7NNc0u+qqycYBAADrjabZtNhll260maYZAAAAO7Drrt3WSDMAABgvTbNpcsAB1jQDAABgh6qSjRs1zQAAYNw0zabJHe6QnHvupKMAAABgym3apGkGAADjpmk2TW54Q1UPAAAA10vTDAAAxk/TbJps2NBtW5tsHAAAAEw1TTMAABg/TbNpskv/x3HttZONAwAAgKmmaQYAAOOnaTZN5ppm11wz2TgAAACYaps2JVddNekoAABgfdE0myZGmgEAADCCjRuNNAMAgHHTNJsmc2uaaZoBAACwA6ZnBACA8dM0myZGmgEAADACTTMAABg/TbNpomkGAADACDTNAABg/DTNpslc0+yaayYbBwAAAFNN0wwAAMZP02yaWNMMAACAEWiaAQDA+GmaTRPTMwIAADACTTMAABg/TbNpomkGAADACDZtSq66atJRAADA+qJpNk2saQYAAMAINm400gwAAMZN02yaWNMMAACAEZieEQAAxk/TbJqYnhEAAIARaJoBAMD4aZpNE00zAAAARqBpBgAA46dpNk2saQYAAMAINM0AAGD8NM2miTXNAAAAGIGmGQAAjJ+m2TQxPSMAAAAj0DQDAIDx0zSbJppmAAAAjGDjxm5mf+UjAACMj6bZNLGmGQAAACPYtKnbXnXVZOMAAID1RNNsmljTDAAAYEWq6k5V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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 }