diff --git a/examples/rl/data_analysis.ipynb b/examples/rl/data_analysis.ipynb index 7be65d6e6..9136d8ef8 100644 --- a/examples/rl/data_analysis.ipynb +++ b/examples/rl/data_analysis.ipynb @@ -16,37 +16,19 @@ "source": [ "import numpy as np \n", "import matplotlib.pyplot as plt\n", + "import plotly\n", "import os\n", "print(os.getcwd())" ] }, { "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "# data_paths = {\"ppo\": os.getcwd()+\"/ppo_data/\",\n", - "# \"sac\": os.getcwd()+\"/sac_data/\"}\n", - "data_paths = {\"ppo\": os.getcwd()+\"/Results/cartpole_ppo_data/\", \n", - " \"sac\": os.getcwd()+\"/Results/cartpole_sac_data/\", \n", - " \"td3\": os.getcwd()+\"/Results/cartpole_td3_data/\", \n", - " \"ddpg\": os.getcwd()+\"/Results/cartpole_ddpg_data/\"}\n", - "#data_paths = {\"ppo\": os.getcwd()+\"/Results/Olaf/quadrotor_2D_ppo_data/\", \n", - "# \"sac\": os.getcwd()+\"/Results/Olaf/quadrotor_2D_sac_data/\", \n", - "# \"td3\": os.getcwd()+\"/Results/Olaf/quadrotor_2D_td3_data/\"}\n", - "seeds = [i for i in range(0,10)]\n", - "#seeds = [0]" - ] - }, - { - "cell_type": "code", - "execution_count": 14, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def moving_average(x, w):\n", - " return np.convolve(x, np.ones(w)) / w\n", + " return np.convolve(x, np.ones(w) / w, mode='valid')\n", " \n", "def load_from_log_file(path):\n", " '''Return x, y sequence data from the stat csv.'''\n", @@ -67,17 +49,54 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "seeds = [i for i in range(0,10)]\n", + "#seeds = [0]\n", + "\n", + "data_paths = {\n", + " \"PPO\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Longest_run/\",\n", + " # \"ppo_1\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Long_run/\", \n", + " # \"ppo_2\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Medium_run/\",\n", + " # \"ppo_22\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Medium_run2/\",\n", + " # \"ppo_3\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Short_run/\",\n", + " # \"ppo_4\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Shortest_run/\",\n", + " \"SAC\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Longest_run/\",\n", + " # \"sac_1\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Long_run/\", \n", + " # \"sac_2\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Medium_run/\",\n", + " # \"sac_22\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Medium_run2/\",\n", + " # \"sac_3\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Short_run/\",\n", + " # \"sac_4\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Shortest_run/\",\n", + "}\n", + "\n", + "colors = {\n", + " \"PPO\": \"orange\",\n", + " \"SAC\": \"green\",\n", + " \"GP MPC\": \"royalblue\",\n", + " \"iLQR\": \"gray\"\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "ppo\n", - "sac\n", - "td3\n", - "ddpg\n" + "PPO\n", + "SAC\n" ] } ], @@ -87,642 +106,53 @@ " print(method)\n", " perf_data.update({method: {}})\n", " for seed in seeds:\n", + " xk, x, lk, l = load_from_log_file(data_paths[method] + str(seed) + \"/logs/stat_eval/ep_length.log\")\n", " xk, x, yk, y = load_from_log_file(data_paths[method] + str(seed) + \"/logs/stat_eval/ep_return.log\")\n", " xk, x, zk, z = load_from_log_file(data_paths[method] + str(seed) + \"/logs/stat_eval/ep_return_std.log\")\n", - " xk, x, ck, c = load_from_log_file(data_paths[method] + str(seed) + \"/logs/stat_eval/constraint_violation.log\")\n", + " # xk, x, ck, c = load_from_log_file(data_paths[method] + str(seed) + \"/logs/stat_eval/constraint_violation.log\")\n", " # perf_data[method].update({seed: {\"x\": x, \"y\": y, \"c\": c}})\n", - " perf_data[method].update({seed: {\"x\": x, \"y\": y, \"z\": z, \"c\": c}})" + " # perf_data[method].update({seed: {\"x\": x, \"y\": y, \"z\": z, \"c\": c}})\n", + " xk, x, yk, m = load_from_log_file(data_paths[method] + str(seed) + \"/logs/stat_eval/mse.log\")\n", + " xk, x, yk, n = load_from_log_file(data_paths[method] + str(seed) + \"/logs/stat_eval/mse_std.log\")\n", + " # perf_data[method].update({\"x\": x, \"y\": y, \"z\": z, \"x1\": x1, \"y1\": y1, \"z1\": z1})\n", + " perf_data[method].update({seed: {\"x\": x, \"y\": y, \"z\": z, \"m\": m, \"n\": n, \"l\": l}})" ] }, { "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'ppo': {0: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([ -88.15775064, -110.80896017, -116.10320637, -119.46548994,\n", - " -92.09106174, -64.25393533, -47.48677165, -69.30662023,\n", - " -60.30467331, -88.17607396, -23.59048325, -90.87252346,\n", - " -15.25030234, -8.78282656, -5.79158202, -7.30442645]),\n", - " 'z': array([ 4.15811497, 23.13705735, 10.31592974, 8.94511162, 5.67150428,\n", - " 39.36820806, 31.65101058, 33.26866465, 30.23007339, 14.44750956,\n", - " 17.70665165, 2.97173683, 6.8311226 , 1.72437304, 2.47379934,\n", - " 3.92283254]),\n", - " 'c': array([28.1, 28.2, 31.7, 34.4, 26.6, 14.7, 13.2, 17.9, 16.4, 23.1, 7. ,\n", - " 22.4, 2.9, 0.2, 0. , 0. ])},\n", - " 1: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([-67.91610023, -53.40671503, -64.62514255, -66.35840838,\n", - " -87.81387889, -94.22731699, -90.24905498, -58.79075258,\n", - " -44.35972097, -61.40454903, -9.30498245, -8.80209441,\n", - " -7.6044643 , -7.59277906, -4.68156383, -4.40672849]),\n", - " 'z': array([30.728283 , 29.74882595, 25.55996407, 30.31901437, 11.65889713,\n", - " 4.10021515, 16.68536504, 26.20849348, 38.80456634, 31.32378191,\n", - " 2.48632591, 1.37589148, 1.81055437, 1.06387001, 1.05117242,\n", - " 1.70916467]),\n", - " 'c': array([20.8, 17. , 20.5, 18.4, 28.6, 29.4, 26.4, 16.6, 9.4, 16.2, 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ])},\n", - " 2: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([-100.39980478, -73.04375601, -93.34557955, -89.92046596,\n", - " -85.59018073, -51.13473029, -81.70017771, -70.21202545,\n", - " -60.47638877, -60.65871857, -65.39839124, -35.76429277,\n", - " -13.97048527, -7.68179415, -10.19019997, -8.95580367]),\n", - " 'z': array([ 2.19992819, 21.34051787, 3.05532206, 3.3999837 , 1.65030495,\n", - " 37.66485366, 7.77635885, 26.57867691, 33.14778177, 34.87602746,\n", - " 20.90141774, 22.53970922, 1.42179221, 1.70779423, 1.46701376,\n", - " 1.61871985]),\n", - " 'c': array([31.3, 22.3, 34.5, 31.7, 31.2, 16.5, 25.6, 21. , 16. , 15.5, 16.3,\n", - " 9.2, 0.9, 0. , 0. , 0. ])},\n", - " 3: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([-83.02402423, -71.77818481, -82.05796674, -90.54551854,\n", - " -85.56271133, -85.31685532, -84.4121318 , -90.78979229,\n", - " -47.90072649, -25.51680556, -8.27271889, -11.85757268,\n", - " -15.75341708, -8.37725403, -4.88154136, -6.44937024]),\n", - " 'z': array([ 3.78417064, 22.99658609, 0.57995264, 2.58985925, 2.99997822,\n", - " 3.71056011, 4.35576055, 3.16850439, 29.38641626, 21.39618361,\n", - " 4.74721975, 3.30760283, 5.2505719 , 1.44092333, 1.77630397,\n", - " 2.14031609]),\n", - " 'c': array([29.4, 23.5, 32.2, 33.2, 27.5, 28.9, 26.5, 33.3, 13.5, 6.4, 0.5,\n", - " 1.5, 1.5, 0. , 0. , 0. ])},\n", - " 4: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([ -78.25603452, -88.15755932, -80.85823162, -135.88484029,\n", - " -118.20620823, -84.56251778, -99.15056706, -61.05523057,\n", - " -45.49561499, -57.24070411, -59.42362142, -43.99554657,\n", - " -35.63985117, -40.93778084, -32.83323752, -21.4385759 ]),\n", - " 'z': array([21.53768478, 22.37562905, 2.08860279, 5.38289836, 7.55217166,\n", - " 5.50235804, 21.73379088, 40.02883866, 36.12166915, 30.18096517,\n", - " 28.59859709, 31.14269571, 28.420123 , 25.70969362, 20.99195807,\n", - " 6.80190971]),\n", - " 'c': array([27. , 24.6, 29.4, 37.2, 35.9, 29.3, 28.7, 18.7, 12.9, 16.6, 17.1,\n", - " 10.9, 8.6, 10.9, 8.6, 2.8])},\n", - " 5: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([ -95.01403974, -123.79892124, -102.7442057 , -89.815646 ,\n", - " -39.66297729, -46.9252954 , -67.41175488, -11.8282033 ,\n", - " -14.71989308, -6.40495247, -10.55180597, -6.38568054,\n", - " -6.68760819, -4.69920376, -4.80615511, -4.50284142]),\n", - " 'z': array([14.30988285, 12.37001644, 9.79027082, 21.98219231, 34.02801021,\n", - " 34.4690545 , 31.91678882, 3.58677587, 3.01341989, 1.91630836,\n", - " 1.59130328, 1.15350047, 1.79735957, 1.34250451, 1.36681713,\n", - " 1.08033008]),\n", - " 'c': array([24.3, 31.7, 29. , 26.1, 11.1, 10.9, 16.8, 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. ])},\n", - " 6: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([-65.32806028, -83.67334789, -83.91174635, -78.10015514,\n", - " -73.11778666, -67.93214535, -48.66061502, -64.25442483,\n", - " -60.3782076 , -17.24724205, -13.53857026, -10.07927537,\n", - " -7.24454048, -7.77040104, -5.06210837, -6.25896362]),\n", - " 'z': array([31.58735223, 0.74757479, 0.71705823, 21.69671301, 27.93631289,\n", - " 26.89142816, 34.08134048, 23.3786628 , 23.3090608 , 16.39541779,\n", - " 15.96755933, 1.22367773, 3.40950729, 1.41821465, 1.07917687,\n", - " 2.53668562]),\n", - " 'c': array([19.4, 31.3, 33.9, 27. , 17.9, 18.5, 14.3, 18. , 15.4, 4.4, 1.6,\n", - " 0. , 0. , 0. , 0. , 0. ])},\n", - " 7: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([ -73.76297787, -84.11068413, -99.08956487, -102.73139077,\n", - " -65.98193177, -63.72649271, -66.35557655, -47.00841884,\n", - " -27.83754147, -58.65351462, -17.91631418, -31.3729593 ,\n", - " -11.30332785, -8.96608866, -6.9142119 , -9.28875209]),\n", - " 'z': array([18.64289795, 1.06408548, 4.642824 , 4.91191071, 27.02547765,\n", - " 30.32041875, 34.69096995, 35.3872896 , 28.99568217, 32.88988769,\n", - " 5.5118178 , 10.67491732, 2.00321804, 1.42482125, 2.24978546,\n", - " 0.61636763]),\n", - " 'c': array([25.5, 33.4, 33.8, 33.9, 21.2, 19.4, 16.8, 13.5, 6.4, 14.1, 0.2,\n", - " 2.1, 0. , 0. , 0. , 0. ])},\n", - " 8: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([-76.14318458, -38.61504398, -77.26428041, -90.65647631,\n", - " -73.78944513, -50.69761194, -84.72772427, -19.97462745,\n", - " -15.71906944, -11.7142282 , -16.10601562, -6.08499132,\n", - " -5.43795618, -5.63244445, -5.78452319, -5.43550785]),\n", - " 'z': array([18.47014595, 40.93644303, 19.87684185, 4.00407135, 19.84974271,\n", - " 34.03450903, 8.58124619, 12.31322311, 14.16381784, 2.02424316,\n", - " 3.50018079, 2.39915506, 1.94608352, 1.75336086, 2.00400833,\n", - " 2.5019934 ]),\n", - " 'c': array([23.9, 13.2, 22.2, 25.3, 22.5, 14.3, 22.7, 5. , 1.8, 0. , 0.9,\n", - " 0. , 0. , 0. , 0. , 0. ])},\n", - " 9: {'x': array([ 3000., 6000., 9000., 12000., 15000., 18000., 21000., 24000.,\n", - " 27000., 30000., 33000., 36000., 39000., 42000., 45000., 48000.]),\n", - " 'y': array([ -87.11240468, -88.58981476, -116.05483179, -89.40426019,\n", - " -83.31175542, -84.47527842, -45.14124752, -54.92142752,\n", - " -25.00155725, -23.71708584, -16.51391822, -9.73139814,\n", - " -15.01075531, -6.56120037, -8.15728398, -6.27575905]),\n", - " 'z': array([ 3.62630277, 9.51038404, 9.04789158, 5.28366629, 13.67574873,\n", - " 2.53608348, 27.87970085, 29.28781756, 16.22092121, 19.62062683,\n", - " 4.48558986, 1.72619632, 2.37281374, 1.07180294, 0.71999168,\n", - " 1.37417581]),\n", - " 'c': array([29.7, 26.3, 34. , 28.4, 25.4, 26.7, 12.6, 15.7, 7.2, 4.2, 0.1,\n", - " 0. , 0. , 0. , 0. , 0. ])}},\n", - " 'sac': {0: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-78.07790812, -60.33753125, -29.63921306, -60.75737487,\n", - " -7.19386485, -7.20750915, -7.70115104, -8.68704632,\n", - " -8.42646033, -5.86816584, -5.69042965, -5.18544206,\n", - " -6.0289549 , -6.30382655, -5.5702274 , -5.2551961 ,\n", - " -5.84007806, -6.97435863, -5.74449092, -5.75024993]),\n", - " 'z': array([19.84491073, 43.95713772, 34.81889161, 34.62960477, 2.04793161,\n", - " 1.64875443, 1.33900012, 2.53493957, 1.34047503, 1.36565155,\n", - " 1.11282274, 0.48880285, 1.24949952, 1.31641216, 1.07702055,\n", - " 1.48261893, 1.32239444, 1.60655968, 1.15342742, 0.89049145]),\n", - " 'c': array([24.5, 14.7, 7.5, 15.1, 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 1: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-65.24821296, -24.43987314, -17.54505894, -12.43690074,\n", - " -7.20531116, -6.61096602, -6.97821511, -5.51898878,\n", - " -6.37463325, -5.33324126, -5.37788904, -5.27448811,\n", - " -5.72307335, -6.01937392, -4.894859 , -5.92607578,\n", - " -6.53192607, -6.29820647, -5.89273643, -6.85415147]),\n", - " 'z': array([33.64595278, 37.50972551, 8.71057061, 7.02629526, 1.74683554,\n", - " 1.84420431, 2.22292818, 1.93067024, 1.31936557, 1.82069635,\n", - " 1.58433952, 1.42841273, 1.47304957, 1.52337978, 1.24834965,\n", - " 1.13248805, 2.35201219, 1.79630743, 1.229116 , 1.68602352]),\n", - " 'c': array([18.2, 5.4, 0.9, 0.4, 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 2: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-69.35735261, -57.95267831, -27.03133304, -7.35251776,\n", - " -9.74536485, -5.66213119, -5.26494809, -5.45806351,\n", - " -5.0730373 , -6.60276861, -5.35123771, -4.64795848,\n", - " -7.17886732, -6.10599183, -7.2799352 , -6.40995668,\n", - " -5.79168466, -5.55089296, -6.06540081, -5.7944525 ]),\n", - " 'z': array([28.87250967, 31.3791714 , 26.16133977, 2.29118464, 2.40681472,\n", - " 1.4120881 , 1.05344095, 1.29049847, 1.49915448, 1.99894645,\n", - " 2.07842612, 1.21846415, 0.96939657, 1.49616192, 1.39116869,\n", - " 1.58489047, 1.05979279, 0.56014305, 1.18636849, 1.20012059]),\n", - " 'c': array([20.3, 13.9, 5.8, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 3: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -69.06920537, -62.39885709, -20.20209215, -23.24543596,\n", - " -8.60319992, -8.480007 , -6.59101948, -12.26020956,\n", - " -8.86206397, -7.74456537, -10.05795771, -10.10407839,\n", - " -9.98968216, -10.61858908, -750.93058322, -375.49741798,\n", - " -268.30870606, -280.79743834, -259.59869236, -261.78042475]),\n", - " 'z': array([23.03818139, 35.47001515, 12.1680979 , 8.33074529, 2.43479351,\n", - " 2.92771657, 2.22521414, 4.43897227, 1.09660478, 1.46274702,\n", - " 2.58978269, 1.91678454, 2.62566084, 2.37970549, 20.79951087,\n", - " 10.53053647, 5.73098006, 4.79021059, 2.81688544, 1.60900841]),\n", - " 'c': array([20.2, 13.1, 0.4, 2.5, 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 46.1, 45. , 44.9, 45. , 45.4, 44.1])},\n", - " 4: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -76.89032409, -44.50686882, -45.47539624, -6.65421714,\n", - " -9.32473289, -6.75548172, -5.52250068, -6.1608249 ,\n", - " -4.58609088, -6.3651977 , -15.0163006 , -26.62013013,\n", - " -182.21047214, -441.53744631, -456.34930916, -547.62863901,\n", - " -337.98687975, -146.25134802, -130.88974202, -137.36593503]),\n", - " 'z': array([12.69779152, 38.43783449, 33.67128192, 3.89107248, 1.68747783,\n", - " 1.73313469, 1.31463171, 2.24104178, 1.8563587 , 2.1101253 ,\n", - " 10.087443 , 17.83370861, 27.84269648, 39.78186747, 33.38760259,\n", - " 35.8320893 , 22.40331481, 2.71972203, 1.67895073, 5.14868679]),\n", - " 'c': array([19.5, 11.8, 8. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 6.2, 21.4, 34.6, 38.3, 38.8, 38.6, 35.7, 36. , 19.9])},\n", - " 5: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-65.89964499, -52.82131708, -43.08648805, -12.17284954,\n", - " -9.77086312, -7.57493878, -5.93784215, -6.13931906,\n", - " -7.16364275, -5.33226168, -6.34258326, -7.66062225,\n", - " -9.75888468, -6.33416813, -6.97436693, -6.3959969 ,\n", - " -8.33078707, -7.07954414, -7.05645984, -6.17812513]),\n", - " 'z': array([33.47902333, 39.40488504, 35.05966812, 12.86299352, 4.20217461,\n", - " 2.18442224, 1.97054841, 2.76348552, 2.43071494, 0.77255432,\n", - " 1.07973661, 1.67228861, 2.69925011, 1.45342565, 1.76673998,\n", - " 0.90334686, 1.01542112, 1.46867459, 1.19474122, 1.0804704 ]),\n", - " 'c': array([18.6, 13.2, 8.9, 1.5, 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 6: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -73.12660912, -66.87809109, -26.98915078, -15.85976783,\n", - " -7.38437392, -6.35743866, -6.20616661, -6.66104479,\n", - " -9.78754722, -5.70179199, -7.10141513, -7.32442731,\n", - " -7.63959533, -325.1037648 , -2197.01475267, -619.32015768,\n", - " -417.56966432, -387.68059481, -335.28691077, -210.81929253]),\n", - " 'z': array([ 23.79420361, 31.00769587, 21.34951728, 10.13177236,\n", - " 3.55824778, 2.17232342, 2.55821224, 1.37710935,\n", - " 2.76360721, 1.67922421, 2.21043593, 1.45907418,\n", - " 2.18957235, 390.26788595, 11.8424026 , 5.43033293,\n", - " 1.87728046, 2.81303186, 3.44426974, 15.40038201]),\n", - " 'c': array([21. , 15.2, 3. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 13.2, 47. , 47. , 47. , 46.8, 45.1, 42.1])},\n", - " 7: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-86.14745349, -69.82938704, -60.55254439, -14.04169523,\n", - " -7.34542197, -7.2115004 , -10.55462428, -9.00398941,\n", - " -10.55297465, -10.35577563, -10.16653991, -8.10488631,\n", - " -9.65560524, -6.9296579 , -8.60702596, -7.21454063,\n", - " -13.10179014, -5.93049151, -5.92612057, -26.02003013]),\n", - " 'z': array([ 2.18792122, 29.35488398, 44.26681783, 9.05993667, 1.98442795,\n", - " 2.47778851, 3.42120682, 2.97468921, 1.86665993, 2.15497783,\n", - " 2.75509479, 2.1312129 , 2.7818385 , 2.26897937, 1.6689237 ,\n", - " 1.67910899, 9.38348996, 0.84031475, 1.26995393, 10.14208448]),\n", - " 'c': array([25.6, 16.7, 14.1, 0.4, 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 1.6, 0. , 0. , 0.3])},\n", - " 8: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-74.9859112 , -69.01984779, -23.65836429, -31.19489791,\n", - " -16.4698042 , -6.11075637, -6.71493862, -5.94775284,\n", - " -6.67796766, -6.54471716, -9.22281525, -5.90887619,\n", - " -6.03234983, -5.61588372, -7.04708809, -4.71964615,\n", - " -6.39281846, -8.10944542, -7.17309419, -5.72201423]),\n", - " 'z': array([22.52407981, 20.69104383, 13.71149863, 22.93448607, 8.89372125,\n", - " 1.70029396, 2.28735753, 1.35420945, 2.20279422, 2.44834516,\n", - " 3.2820735 , 1.73847588, 1.28879417, 0.80597151, 1.28274854,\n", - " 1.18829384, 1.74807889, 2.22482051, 1.68242802, 1.69691565]),\n", - " 'c': array([25.1, 18. , 6.2, 10.7, 2.9, 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 9: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-69.60505268, -62.10412986, -24.58642659, -10.59314954,\n", - " -10.67013602, -7.78939339, -7.13856097, -5.61309561,\n", - " -6.18964005, -6.57873348, -7.34552924, -8.00388536,\n", - " -5.64702154, -7.41298009, -7.7534408 , -23.97246065,\n", - " -43.34849873, -15.53243225, -12.07979048, -6.82981321]),\n", - " 'z': array([25.43346732, 48.16056757, 26.83800791, 6.64509126, 4.08690817,\n", - " 2.95224512, 1.61868099, 1.12129537, 2.88810154, 2.20185379,\n", - " 2.06130777, 3.04401063, 0.98670066, 2.94783452, 3.23984619,\n", - " 12.53312986, 46.4391647 , 20.68746487, 5.66447056, 2.37961924]),\n", - " 'c': array([22.1, 13.1, 3.2, 0.5, 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0.9, 4.5, 1.1, 0. , 0. ])}},\n", - " 'td3': {0: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-85.94421168, -70.06199891, -88.3518554 , -58.78658976,\n", - " -35.89540506, -5.82941956, -4.9417647 , -7.37047535,\n", - " -7.24192199, -5.8245196 , -5.20987856, -5.32613607,\n", - " -7.02438922, -6.00310981, -6.16076265, -6.06208038,\n", - " -5.80742577, -5.99900247, -5.55101179, -6.51476477]),\n", - " 'z': array([22.00836082, 28.41609996, 19.45257435, 37.81685459, 40.53740952,\n", - " 1.76770043, 1.69423616, 2.9786095 , 2.67761847, 1.45400024,\n", - " 1.40209404, 1.18736774, 1.70186473, 1.83284751, 2.03263634,\n", - " 2.03417312, 1.80392433, 2.06413943, 1.74770794, 1.64181311]),\n", - " 'c': array([22.7, 20.5, 23.8, 13. , 4.7, 0.2, 0. , 0. , 0. , 0. , 0. ,\n", - " 0.2, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 1: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-88.1460536 , -45.94947908, -72.08559651, -57.45342627,\n", - " -74.96474968, -60.11658654, -25.26550983, -29.32336914,\n", - " -9.07853327, -7.60492815, -6.37685471, -6.64473372,\n", - " -5.45837994, -5.88706237, -6.26822371, -6.13553622,\n", - " -7.28173944, -6.52344741, -7.07458376, -16.89156441]),\n", - " 'z': array([28.49763712, 41.19661576, 19.41998835, 31.86997608, 28.947596 ,\n", - " 31.18194991, 21.98156012, 28.64739858, 1.65128532, 2.71596572,\n", - " 1.99293239, 1.79777877, 1.81693931, 2.34535738, 1.40003113,\n", - " 1.36194808, 2.30500656, 2.02489599, 1.36382605, 15.7198095 ]),\n", - " 'c': array([22.7, 13.3, 19.7, 14.8, 17.8, 13.8, 3.6, 4.7, 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 2.4])},\n", - " 2: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -98.5289618 , -102.24355779, -84.02528359, -107.08753813,\n", - " -87.27047944, -73.89035748, -12.0645071 , -10.89341377,\n", - " -10.99018025, -27.67190238, -20.66131911, -13.40694394,\n", - " -13.78103301, -130.4538544 , -150.61173877, -79.03635174,\n", - " -59.44704119, -13.33556566, -18.26920826, -150.85806681]),\n", - " 'z': array([25.62763485, 5.68424539, 26.56401701, 48.0067934 , 32.32528243,\n", - " 26.51638531, 2.42785593, 3.42010511, 4.62545024, 18.38454035,\n", - " 12.61100562, 8.99854172, 3.06996942, 98.39072559, 26.889394 ,\n", - " 19.7327986 , 35.45527924, 9.17399271, 19.00256783, 7.53924281]),\n", - " 'c': array([23. , 28.2, 21.4, 19.2, 17.6, 17.4, 0. , 0. , 0. , 0. , 0.3,\n", - " 1.6, 0. , 16.3, 32. , 22.7, 15.6, 3.5, 2.8, 32.3])},\n", - " 3: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-81.17712593, -93.9318703 , -93.34002398, -11.75896037,\n", - " -29.55926182, -13.30365237, -9.84147134, -15.48659984,\n", - " -9.30149957, -8.17068386, -33.37286029, -18.71896217,\n", - " -11.37618481, -9.01509544, -7.74705464, -9.75446444,\n", - " -5.50155901, -9.86711277, -11.08479701, -11.66659277]),\n", - " 'z': array([19.57616024, 27.5174342 , 21.51364681, 5.13931048, 15.87992909,\n", - " 11.39115668, 1.8216829 , 13.49331146, 3.47620495, 1.96155532,\n", - " 29.199426 , 13.10804325, 3.24274847, 2.61679213, 2.5945896 ,\n", - " 3.02973773, 2.92192891, 3.3473363 , 1.82037911, 3.84121644]),\n", - " 'c': array([26.3, 26.7, 21.6, 0.3, 7.2, 2.7, 0. , 1.5, 0. , 0. , 7.3,\n", - " 2.6, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 4: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-63.60283691, -99.64012494, -79.57277764, -64.42824744,\n", - " -40.91249357, -47.75957188, -40.79252709, -7.67718137,\n", - " -5.96233383, -8.9197078 , -6.99532597, -7.20078574,\n", - " -8.51271868, -6.11621019, -6.64270924, -6.46947919,\n", - " -8.10823296, -6.73752411, -7.31021255, -6.17837895]),\n", - " 'z': array([24.4758332 , 29.54834317, 20.36304887, 32.20340305, 35.95879232,\n", - " 29.97400078, 31.81034795, 3.13478173, 2.71438894, 4.76449562,\n", - " 5.32753978, 2.04918421, 2.03030747, 1.77817332, 1.51427702,\n", - " 1.45356767, 1.58260899, 1.84827779, 1.99469583, 1.95895778]),\n", - " 'c': array([18.4, 23.8, 21.8, 17. , 11.5, 13.9, 11.5, 0. , 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 5: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-84.17921624, -75.48351039, -83.36004308, -82.28601454,\n", - " -75.1940769 , -53.56318152, -61.15271655, -80.95176007,\n", - " -60.80490099, -34.6495125 , -23.22871368, -48.77044682,\n", - " -27.42559418, -8.91388802, -6.78943397, -7.98161263,\n", - " -8.09689424, -13.54414852, -12.82482307, -13.37233233]),\n", - " 'z': array([15.52965767, 23.11948828, 7.45922424, 16.53932144, 26.73992653,\n", - " 35.63630325, 43.9307807 , 38.96964603, 37.32594168, 27.84997745,\n", - " 23.53194294, 37.70893402, 23.91573772, 2.57305833, 1.91073188,\n", - " 1.73090874, 1.6957232 , 1.60634858, 2.72565049, 4.34738185]),\n", - " 'c': array([24.1, 22.3, 22.9, 23.1, 19.5, 14.8, 13.1, 19.4, 13.9, 7.7, 4.2,\n", - " 9.4, 4.9, 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 6: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-154.34850522, -120.10633844, -53.41207805, -65.04308116,\n", - " -36.90420265, -39.5696131 , -48.95626 , -22.0555279 ,\n", - " -9.89730637, -7.37245373, -7.37403052, -6.75279697,\n", - " -7.24332818, -6.78674071, -7.96264292, -7.94443069,\n", - " -7.69252758, -8.67176996, -9.87883256, -12.22547147]),\n", - " 'z': array([21.3295575 , 49.62113909, 38.43709574, 39.13836323, 21.8348643 ,\n", - " 30.03320835, 32.25098733, 18.59139114, 6.07970331, 1.16559597,\n", - " 1.84826624, 1.16065894, 1.75867394, 2.20756202, 0.7946329 ,\n", - " 1.19733069, 0.55129436, 1.11288335, 1.69025951, 3.03667543]),\n", - " 'c': array([29.6, 18.9, 13.5, 16.6, 10.9, 10.1, 11.2, 4.3, 0. , 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 7: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-102.63481832, -172.71014804, -103.77656218, -24.05083644,\n", - " -7.66221092, -7.90928273, -8.46990309, -17.49743608,\n", - " -6.33918355, -45.11152547, -42.65535513, -7.68147045,\n", - " -6.60143647, -7.61578275, -6.34325229, -7.88846321,\n", - " -9.66269034, -6.74711147, -6.94283885, -7.09796546]),\n", - " 'z': array([19.05515338, 68.19663241, 41.56309264, 19.435171 , 4.26060053,\n", - " 4.27840437, 3.7185322 , 23.37100265, 2.54804485, 43.67874513,\n", - " 40.3249004 , 1.95806576, 1.83900344, 2.0136299 , 1.88739857,\n", - " 2.81153385, 4.09005582, 0.82518325, 0.86247953, 2.42411192]),\n", - " 'c': array([24.7, 20.6, 21.7, 4.2, 0. , 0.1, 0. , 2. , 0. , 8.6, 8.5,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 8: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-92.20479425, -19.47851148, -26.84153924, -60.18777517,\n", - " -16.55054841, -8.94515712, -12.34361683, -15.25074933,\n", - " -6.70738605, -17.09117543, -8.09510113, -9.69472508,\n", - " -11.64001963, -8.53629672, -8.25961659, -6.72398336,\n", - " -8.44622293, -10.03643956, -7.58991522, -8.72999117]),\n", - " 'z': array([16.34015432, 16.98137133, 18.47352252, 33.15342032, 10.28662385,\n", - " 4.74198897, 3.33383242, 13.4792587 , 2.5046929 , 14.97965586,\n", - " 2.91004502, 1.70101924, 1.32698971, 0.62890362, 1.36244358,\n", - " 1.54492238, 1.77453121, 3.93491631, 2.31683249, 1.91600621]),\n", - " 'c': array([22.5, 2.7, 5.4, 16.1, 2.3, 0. , 2.1, 3.4, 0. , 0.7, 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 9: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-90.7885944 , -87.11952652, -64.70260735, -19.88583916,\n", - " -11.20716592, -73.29198892, -21.61302407, -10.02653052,\n", - " -9.82398538, -6.7724848 , -9.30154277, -11.07868205,\n", - " -9.58243823, -7.53893544, -8.12099766, -10.73081034,\n", - " -13.73528459, -11.1555124 , -15.45595653, -29.84646264]),\n", - " 'z': array([ 6.77511907, 11.74216639, 37.61303157, 18.157194 , 7.29019766,\n", - " 18.47515421, 37.19238422, 3.34941509, 1.62778328, 1.69626118,\n", - " 2.1458154 , 3.67711941, 3.06687186, 2.09753463, 2.73303713,\n", - " 4.0618146 , 7.10106535, 2.65942251, 7.52857632, 37.59229216]),\n", - " 'c': array([25.7, 23.7, 17.4, 6.8, 2.6, 17.6, 4.3, 2.1, 1.1, 0. , 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 1.8])}},\n", - " 'ddpg': {0: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -95.95716586, -77.536507 , -90.2450936 , -73.37329898,\n", - " -82.54700179, -80.78333082, -51.6642578 , -64.8446082 ,\n", - " -76.75541837, -14.35556661, -85.20919299, -13.37806732,\n", - " -72.13630312, -206.19050725, -450.77263209, -509.61860935,\n", - " -209.64849755, -166.91184915, -126.29368466, -18.64014551]),\n", - " 'z': array([ 37.62329252, 20.1873807 , 26.12227757, 39.15299444,\n", - " 36.23030113, 40.00687884, 33.29503219, 35.15646545,\n", - " 40.20367932, 9.95610163, 21.40140716, 5.26507638,\n", - " 95.21710862, 110.63661417, 61.29253974, 51.43481752,\n", - " 28.04528254, 41.45146256, 30.83840654, 2.71839663]),\n", - " 'c': array([22.4, 23.5, 19.7, 18.2, 12.4, 16.2, 11.8, 16.5, 21.1, 3.6, 10.6,\n", - " 0. , 5.7, 15.3, 19.6, 31.3, 25.8, 25. , 15.3, 0. ])},\n", - " 1: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -84.75858338, -87.40659822, -71.40335766, -164.30481958,\n", - " -99.39236823, -157.97967084, -97.35770974, -106.74897974,\n", - " -31.69817764, -18.91556815, -6.85103537, -5.91246398,\n", - " -10.91007875, -9.23343595, -8.19291483, -9.30628586,\n", - " -5.96941117, -30.53573469, -22.3662505 , -87.49797925]),\n", - " 'z': array([15.37321957, 4.09066969, 48.9356664 , 22.30673999, 29.46223032,\n", - " 12.82361635, 11.0853089 , 1.34894136, 19.03377157, 16.46351775,\n", - " 1.98202837, 1.4020216 , 2.33703549, 2.99290714, 1.00996253,\n", - " 2.05439719, 1.58743207, 23.6289253 , 32.87234004, 53.79426573]),\n", - " 'c': array([23. , 27.5, 17.7, 21.4, 20.6, 31.7, 24.7, 27.9, 7.9, 3.3, 0. ,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 6. , 3.6, 19.7])},\n", - " 2: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-244.86325227, -86.3951179 , -85.37054626, -76.94824509,\n", - " -81.44168073, -77.58697262, -33.36149021, -105.36088698,\n", - " -96.24617048, -96.71227961, -93.16172698, -105.29479754,\n", - " -126.53547428, -128.7206711 , -107.23703396, -95.2677292 ,\n", - " -35.4000771 , -9.13614517, -104.2566314 , -11.59143422]),\n", - " 'z': array([32.92787665, 6.05179659, 10.69826999, 33.28526877, 15.57732296,\n", - " 22.10218203, 25.21959222, 41.97317817, 30.7794646 , 28.29451386,\n", - " 13.33886871, 1.68283583, 1.28672757, 0.5135691 , 2.01013613,\n", - " 38.40509519, 28.99504031, 3.47007711, 24.24935571, 7.70797002]),\n", - " 'c': array([31.8, 26.5, 23. , 19.6, 27.3, 23. , 7.2, 20.6, 24.1, 26.7, 27.7,\n", - " 33.3, 29.9, 29.9, 31.7, 19.5, 7.5, 0.1, 24. , 2.1])},\n", - " 3: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -88.73759221, -126.00000311, -90.99067143, -80.46410846,\n", - " -12.83645707, -16.03716323, -42.81936977, -13.51917284,\n", - " -24.75945539, -35.83917692, -14.02774955, -9.29914404,\n", - " -10.60575605, -11.95517279, -7.10112706, -7.92139116,\n", - " -19.43059879, -75.15357008, -13.38348433, -7.0985137 ]),\n", - " 'z': array([13.15407607, 52.46704738, 2.18520214, 11.22204933, 12.81667528,\n", - " 7.51305438, 27.89587958, 13.54602554, 23.6786912 , 37.86153515,\n", - " 14.33454502, 4.06873548, 4.58162264, 8.51931056, 3.7506986 ,\n", - " 1.18807648, 28.95627727, 30.58058651, 24.14060408, 1.41197402]),\n", - " 'c': array([26.2, 26.3, 29.5, 22.7, 1.8, 3.5, 11.7, 1.7, 7.5, 7.8, 2.8,\n", - " 0.8, 1.3, 3.6, 0.9, 0. , 4.4, 21.7, 2.4, 0. ])},\n", - " 4: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -57.85865149, -74.11694082, -70.19026064, -84.18831636,\n", - " -83.53374019, -71.85111259, -57.51445245, -84.49066923,\n", - " -72.5572182 , -79.28883464, -45.83532699, -129.85670736,\n", - " -313.31889514, -19.69863616, -9.36634841, -25.68620527,\n", - " -11.51693558, -9.62308996, -30.12383728, -12.26404949]),\n", - " 'z': array([30.18438732, 29.870457 , 29.04197513, 3.22187512, 25.36574105,\n", - " 37.05351538, 36.13086451, 36.08591068, 49.98065166, 54.27231097,\n", - " 28.48041137, 23.18674818, 41.32047561, 13.10132903, 3.27045503,\n", - " 3.49000542, 7.35901433, 5.1008803 , 14.51229556, 10.6276242 ]),\n", - " 'c': array([16.2, 22.1, 22.9, 28.2, 24. , 16.2, 14.4, 20.1, 16.9, 16.1, 12.8,\n", - " 22.9, 23. , 1.5, 0. , 0. , 0. , 0. , 0. , 0. ])},\n", - " 5: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -95.77587374, -85.33406005, -114.33498087, -112.34155807,\n", - " -101.60911145, -133.99463064, -8.74047116, -115.08657042,\n", - " -17.69012209, -103.04353705, -122.925984 , -78.92432405,\n", - " -101.91064899, -99.68935924, -30.05280358, -94.6588618 ,\n", - " -31.63711694, -14.87276245, -14.76882662, -21.25790984]),\n", - " 'z': array([15.75878618, 14.32290751, 30.06350849, 35.90840224, 6.94466408,\n", - " 33.31356661, 3.73396229, 39.76046643, 6.17335928, 45.46260125,\n", - " 14.57370589, 46.95368372, 19.03904578, 8.04376882, 22.22837657,\n", - " 3.83988157, 33.5729415 , 12.50391111, 0.96691551, 4.3192503 ]),\n", - " 'c': array([24.6, 23.4, 23.4, 25. , 29.4, 27.7, 0. , 21.5, 0. , 14.3, 17.3,\n", - " 17.3, 25.6, 26.8, 4.8, 26.8, 6.8, 3.3, 0. , 1.9])},\n", - " 6: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-121.51290919, -92.26852823, -21.4798191 , -78.72161812,\n", - " -92.70530608, -57.91764719, -98.39567541, -67.57846499,\n", - " -53.85569133, -54.57893978, -18.58912415, -31.86498026,\n", - " -25.25531387, -54.93528158, -16.70189186, -18.7636848 ,\n", - " -11.63996589, -15.92818131, -14.74570672, -21.61254021]),\n", - " 'z': array([25.29275722, 20.45706251, 11.31938166, 27.18819152, 6.56093936,\n", - " 35.39044708, 18.98274941, 25.62347078, 27.17950953, 33.98969634,\n", - " 8.61352965, 18.7021114 , 16.42592361, 22.47267129, 7.07717974,\n", - " 4.18982177, 2.08890093, 7.82016317, 8.789092 , 7.12586545]),\n", - " 'c': array([26.4, 21. , 5.6, 20.1, 25.6, 13.9, 23.1, 17.1, 13.1, 11.5, 1.9,\n", - " 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.6, 2.2])},\n", - " 7: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-108.38387466, -98.20150427, -34.85556526, -42.10022212,\n", - " -65.56799993, -11.34277597, -28.18381525, -10.79434242,\n", - " -7.90888795, -12.71270688, -21.11374718, -103.85949379,\n", - " -51.93365982, -152.8030517 , -175.08409233, -145.15263834,\n", - " -115.76310848, -102.18559016, -27.85745691, -13.47415484]),\n", - " 'z': array([21.44585732, 6.34545397, 14.20572753, 36.76684962, 25.82404116,\n", - " 6.43910912, 25.48781057, 4.73920333, 2.30441533, 2.37860444,\n", - " 20.16364963, 76.89157171, 56.37863798, 9.83543846, 13.79390946,\n", - " 10.22818282, 6.37749184, 3.97117169, 5.19507364, 2.85361773]),\n", - " 'c': array([29.5, 26.2, 1.2, 7.1, 16. , 0.7, 5.1, 2. , 0. , 0. , 4.7,\n", - " 14.4, 11. , 38. , 40.8, 40.2, 34.4, 35.4, 0. , 0. ])},\n", - " 8: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([-166.43640934, -174.6512315 , -81.928213 , -261.60196128,\n", - " -135.05830111, -152.05504637, -295.16612293, -238.92046484,\n", - " -136.93420936, -147.83613596, -242.14531438, -114.41628891,\n", - " -28.59287696, -37.56466098, -19.71274223, -69.81461789,\n", - " -33.5928915 , -178.88189746, -114.03204541, -49.9306826 ]),\n", - " 'z': array([98.32053454, 59.11481943, 26.0411492 , 74.75096028, 0.3754464 ,\n", - " 3.6909833 , 18.00529347, 29.42848687, 16.84944035, 22.69305223,\n", - " 34.00426581, 10.29195785, 24.08533589, 26.63153401, 9.93230311,\n", - " 23.82371447, 18.06219468, 30.78322225, 43.88140579, 45.76903533]),\n", - " 'c': array([24.3, 24.2, 21.1, 24.8, 39.7, 38.2, 37.7, 33.9, 27.2, 24.4, 30.2,\n", - " 29.1, 7. , 9.3, 3.5, 15.6, 6.2, 28.9, 20.4, 8.5])},\n", - " 9: {'x': array([ 500., 1000., 1500., 2000., 2500., 3000., 3500., 4000.,\n", - " 4500., 5000., 5500., 6000., 6500., 7000., 7500., 8000.,\n", - " 8500., 9000., 9500., 10000.]),\n", - " 'y': array([ -98.59481682, -76.35499153, -82.34566714, -97.722363 ,\n", - " -55.73676181, -62.23786681, -107.983981 , -123.65415846,\n", - " -60.05662397, -32.24639699, -45.29479073, -17.22421801,\n", - " -10.93949224, -51.29447895, -7.56834087, -6.51862324,\n", - " -5.432557 , -4.93144591, -8.47881117, -7.1310802 ]),\n", - " 'z': array([ 9.15574628, 18.6260246 , 20.07091993, 40.44450302, 26.40887359,\n", - " 34.10840208, 8.73629036, 11.55301326, 39.18273304, 11.03148291,\n", - " 34.53789721, 4.92900077, 5.66695823, 36.4908701 , 2.27143873,\n", - " 1.85179411, 1.44159655, 1.45038918, 2.62394397, 2.13812183]),\n", - " 'c': array([27.6, 24.5, 21.3, 21.5, 14.2, 15.8, 29.6, 26.1, 16.7, 6.5, 11.1,\n", - " 0. , 1.8, 11.2, 0. , 0. , 0. , 0. , 0. , 0. ])}}}" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "perf_data" - ] + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "ppo\n", - "0\n", - "1\n", - "2\n", - "3\n", - "4\n", - "5\n", - "6\n", - "7\n", - "8\n", - "9\n", - "sac\n", - "0\n", - "1\n", - "2\n", - "3\n", - "4\n", - "5\n", - "6\n", - "7\n", - "8\n", - "9\n", - "td3\n", - "0\n", - "1\n", - "2\n", - "3\n", - "4\n", - "5\n", - "6\n", - "7\n", - "8\n", - "9\n", - "ddpg\n", - "0\n", - "1\n", - "2\n", - "3\n", - "4\n", - "5\n", - "6\n", - "7\n", - "8\n", - "9\n" + "PPO\n", + "SAC\n" ] }, { "data": { "text/plain": [ - "Text(0.5, 1.0, 'Task: Cartpole')" + "Text(0.5, 1.0, 'Task: Quadrotor 2D')" ] }, - "execution_count": 19, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHLCAYAAADC2TzJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADmEElEQVR4nOy9d3wc9Z3//5yZ7VqterEs945tbDC9mmabQEhIQpILJJQLIT0XuEvCN3fpOdKTS4FUIMmPJKQAgUBoBgwBGzDGgHuVrN61vc3M5/fHaFdtV1pJu9JKmiePfWh3ZnZmdlnvvuZdXm9JCCEwMTExMTExMTEBQJ7qEzAxMTExMTExySdMcWRiYmJiYmJiMgBTHJmYmJiYmJiYDMAURyYmJiYmJiYmAzDFkYmJiYmJiYnJAExxZGJiYmJiYmIyAFMcmZiYmJiYmJgMwBRHJiYmJiYmJiYDMMWRiYmJiYmJickATHFkYmKSV9TV1SFJEt/73vem+lSmDTfccAMLFy6c6tMwMZkxmOLIxMRkVCRJyuj23HPPTfWpjkhbWxv/+Z//ycqVK3G5XBQUFLBhwwa+8Y1v0Nvbm9Vj3Xnnndx7771Z3aeJicnkYJnqEzAxMcl/fv/73w96/Lvf/Y6nnnpq2PJVq1ZN5mmNiVdffZW3ve1tBAIBrrvuOjZs2ADAzp07+da3vsXzzz/Pk08+mbXj3XnnnZSXl3PDDTdkbZ8mJiaTgymOTExMRuW6664b9HjHjh089dRTw5bnK729vVx99dUoisLrr7/OypUrB63/5je/ya9+9ausHCsUCuFyubKyLxMTk6nBTKuZmJhkhXvuuYeLL76YyspK7HY7J510Enfdddew7Xbu3MnmzZspLy/H6XSyaNEibrrpphH3LYTgIx/5CDabjQceeCC5/OjRoxw9enTUc/vFL35BU1MTP/jBD4YJI4Cqqir++7//O/n473//O1dccQU1NTXY7XaWLFnC17/+dTRNG/S8jRs3smbNGl577TUuuOACXC4X/+///T8WLlzI3r172bZtWzLluHHjRgDuvfdeJEni+eef55ZbbqGsrAyPx8OHPvQhenp6hp3bnXfeyerVq7Hb7dTU1PCJT3wioxSgruv86Ec/YvXq1TgcDqqqqrjllltSHsPExGQwZuTIxMQkK9x1112sXr2aq666CovFwiOPPMLHP/5xdF3nE5/4BADt7e1s2rSJiooKvvCFL1BcXExdXd0gwTMUTdO46aabuP/++3nwwQe54oorkusuueQSwCjiHomHH34Yp9PJe97znoxey7333ovb7ebWW2/F7XbzzDPP8KUvfQmfz8d3v/vdQdt2dXVx+eWX8/73v5/rrruOqqoqNm7cyKc+9Sncbjdf/OIXAUOADeSTn/wkxcXFfOUrX+HgwYPcdddd1NfX89xzzyFJEgBf+cpX+OpXv8qll17Kxz72seR2r776Ki+++CJWqzXta7jlllu49957ufHGG/n0pz/N8ePH+elPf8rrr78+6nNNTGY9wsTExGSMfOITnxBDvz5CodCw7TZv3iwWL16cfPzggw8KQLz66qtp9338+HEBiO9+97siHo+L973vfcLpdIonnnhi2LYLFiwQCxYsGPV8S0pKxLp160bdLkGq13LLLbcIl8slIpFIctmFF14oAPHzn/982ParV68WF1544bDl99xzjwDEhg0bRCwWSy7/zne+IwDx97//XQghRHt7u7DZbGLTpk1C07Tkdj/96U8FIO6+++7ksuuvv37Q+/DCCy8IQNx3332Djv3444+nXG5iYjIYM61mYmKSFZxOZ/K+1+uls7OTCy+8kGPHjuH1egEoLi4G4B//+AfxeHzE/cViMa655hr+8Y9/8Nhjj7Fp06Zh29TV1Y0aNQLw+XwUFhaO67X4/X46Ozs5//zzCYVCHDhwYNC2drudG2+8MeN9J/jIRz4yKHrzsY99DIvFwmOPPQbA008/TSwW4z/+4z+Q5f6v6ptvvhmPx8Ojjz6adt9/+ctfKCoq4rLLLqOzszN527BhA263m2effXbM52tiMpsw02omJiZZ4cUXX+TLX/4y27dvJxQKDVrn9XopKiriwgsv5N3vfjdf/epX+eEPf8jGjRt55zvfyQc+8AHsdvug59xxxx0EAgH++c9/Jut1xovH48Hv92e8/d69e/nv//5vnnnmGXw+37DXMpC5c+dis9nGfE7Lli0b9NjtdjNnzpyk2KuvrwdgxYoVg7az2WwsXrw4uT4Vhw8fxuv1UllZmXJ9e3v7mM/XxGQ2YYojExOTCXP06FEuueQSVq5cyQ9+8APmzZuHzWbjscce44c//CG6rgOGX9Jf//pXduzYwSOPPMITTzzBTTfdxPe//3127NiB2+1O7nPz5s08/vjj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X389pkyZgpSUlCbnmT9/Pv7973+jV69eeOedd/Cvf/0L3bp1AwDodDp8/vnnKC4uRp8+ffDEE09g7ty5AOA2D4kQcglveo5oQjYhQUN/YhAAtt6jd999F++++67ztpkzZzq/T0tLwxdffOH2mDvuuKPJeTIyMrBmzZoWn2fIkCH44YcfnNdXrlwJmUyG7OzsQJpPSHTzqs6R/T7aeJaQgNG7iLSrd955B/n5+ejQoQN++OEHPPbYY7j55pubHaIjhNjRUn5C2hWFI9KuSktLMXfuXJSWliI9PR033XQTFixYEOpmERLenEv5PU3Itvcc0ZwjQgJG7yISNJIktXrMo48+ikcffbQdWkNIFHEEHk9L+Z11juhjnZBA0YRsQggJd45wZPUw58hxHw2rERIwCkdtwJseFOI9+nmSmEcbzxLSrigcBZFMZvtQqqurC3FLoovj5+n4+RISc7zaPoR6jggJFhqcDiKe52EwGJy71at9qFJNmpIkCXV1dSgvL4fBYADP86FuEiGh4U3PkXO1Gr1PCAkUhaMgS0tLAwBnQCKBMxgMzp8rITHJqwnZjjpH1HNESKAoHAUZYwzp6elISUmB2exh2S3xikwmox4jQhzhyKueIwpHhASKwlEb4XmefqkTQoLDm3BEFbIJCZqImJB9/Phx3H333cjLy4NKpULHjh3x1FNPwWQyuR33448/4oorroBSqURWVhb+/ve/NznXRx99hK5du0KpVKJnz5748ssv2+tlEEKIf5zhyJsJ2RSOCAlURISjgwcPQhRF/L//9//w888/Y/HixXjttdfw+OOPO4+pqqrC6NGjkZOTg++//x4vvPAC5s2bh3/+85/OY7Zt24bbbrsNd999N/bt24drr70W1157LX766adQvCxCCPGOTxOyaViNkEBFxJ8YY8eOxdixY53X8/PzcejQIbz66qt48cUXAdg2MDWZTHjzzTchl8vRvXt3FBcX46WXXsKUKVMAAEuXLsXYsWOdG6o+88wzWLt2LV5++WW89tpr7f/CCCHEG45w5FWFbApHhAQqIsJRcyorK5GQkOC8vn37dlx55ZWQy+XO28aMGYPnn38eFy9eRHx8PLZv347p06e7nWfMmDFYtWpVi89jNBphNBrdnhew9VQRQki7qLcARgmorgNa+uypqbcdU2du+RhCYpjj97Y3hYUjMhwdOXIE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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHLCAYAAAAk8PeNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACQXUlEQVR4nOzdd3yddd3/8dd1XWefk5zs1TbdK22hpS2FgpZRqYAU+SEyRBmKqEVUcIHeOHCjqLdWUW+g4GQoyB5lFii0ZZXukaQjaXZyTnL2Odf1++NKTpJmt0lOxuf5eARyrvM953xOmibvfqdiGIaBEEIIIcQ4pKa6ACGEEEKIVJEgJIQQQohxS4KQEEIIIcYtCUJCCCGEGLckCAkhhBBi3JIgJIQQQohxS4KQEEIIIcYtCUJCCCGEGLckCAkhhBBi3JIgJITol/LychRF4Ze//GWqSxk2Z5xxBmeccUaqyxBCDCEJQkKMYoqi9Ovj5ZdfTnWpvTp48CBf+MIXmDJlCna7nby8PC666CLeeOONVJc26J566im+//3vD9vr6brOunXrWL16NZMmTcLtdjN//nx+9KMfEQ6HO7VtC7ttH1arlZycHJYvX86tt97KwYMHh61uIYaLJdUFCCGO3V//+tdOt++//36ef/75Ltfnzp07nGUNyOuvv855550HwOc+9zlKSkqoqqpi3bp1nH766axdu5YvfvGLKa5y8Dz11FOsXbt22MJQMBjkmmuu4ZRTTuELX/gCeXl5bNy4ke9973u88MILvPjiiyiK0ukxl19+Oeeddx66rtPY2MjmzZv5zW9+w29/+1vuvvtuLrvssmGpXYjhIEFIiFHsyiuv7HT7zTff5Pnnn+9yfaRqbGzkE5/4BE6nk9dff53p06cn77vppptYtWoVX/7yl1m0aBGnnHJKCivtWTgcxmazoaqp62DXdZ1oNIrD4ehyn81m4/XXX2f58uXJa9dddx1TpkxJhqGVK1d2esxJJ53U5XvowIEDnHPOOVx11VXMnTuXE088cWjejBDDTIbGhBjj7r33Xs466yzy8vKw2+2UlJTwxz/+sUu7LVu2sGrVKnJycnA6nUydOpVrr7221+c2DIPPf/7z2Gw2/vOf/ySv79+/n/379/dZ25/+9Ceqqqq44447OoUgAKfTyX333QfAD3/4w+T173//+116MADWrVuHoiiUl5cnr/33v//l/PPPp6ioCLvdzvTp07n99ttJJBJdHv/nP/+Z6dOn43Q6Ofnkk9mwYUOXNi+//DKKovCvf/2L7373u0yYMAGXy4Xf7wfgoYceYvHixTidTnJycrjyyiupqKhIPv7qq69m7dq1QOdhzTaBQICbb76ZSZMmYbfbmT17Nr/85S8xDKNTHYqicMMNN/D3v/+defPmYbfbeeaZZ7r9Gttstk4hqM1FF10EwM6dO7t93NEmT57MunXriEaj/OIXv+jXY4QYDaRHSIgx7o9//CPz5s1j9erVWCwWHn/8cb70pS+h6zpr1qwBoKamhnPOOYfc3Fy+/e1vk5GRQXl5eadwc7REIsG1117LAw88wCOPPML555+fvO/ss88G6BRKuvP444/jcDj45Cc/2e39U6dO5fTTT2f9+vWEw+Fuezx6s27dOjweDzfddBMej4cXX3yR2267Db/fzx133JFsd/fdd3P99dezfPlyvvrVr1JaWsrq1avJyspi0qRJXZ739ttvx2az8fWvf51IJILNZmPdunVcc801LF26lJ/+9KdUV1fz29/+ltdff513332XjIwMrr/+eiorK7sdvjQMg9WrV/PSSy/x2c9+loULF/Lss8/yjW98g4qKCn796193av/iiy/y4IMPcsMNN5CTk8OUKVMG9LWpqqoCICcnp9+POfXUU5k+fTrPP//8gF5LiBHNEEKMGWvWrDGO/msdDAa7tFu1apUxbdq05O1HHnnEAIzNmzf3+NxlZWUGYNxxxx1GLBYzLr30UsPpdBrPPvtsl7aTJ082Jk+e3Ge9GRkZxoknnthrmxtvvNEAjK1btxqGYRjf+973urxHwzCMe++91wCMsrKy5LXu3vv1119vuFwuIxwOG4ZhGNFo1MjLyzMWLlxoRCKRZLs///nPBmCsWLEiee2ll14yAGPatGmdnrvtOebPn2+EQqHk9SeeeMIAjNtuuy15rbs/I8MwjEcffdQAjB/96Eedrn/iE58wFEUx9u3bl7wGGKqqGtu3b+/yPP21cuVKIz093WhsbExe6/hn3JMLL7zQAAyfz3fMry3ESCJDY0KMcU6nM/m5z+ejrq6OFStWUFpais/nAyAjIwOAJ554glgs1uvzRaNRLrnkEp544gmeeuopzjnnnC5tysvL++wNAmhubiYtLa3XNm33Nzc39/l8R+v43pubm6mrq+NDH/oQwWCQXbt2AeaQYE1NDV/4whew2WzJ9ldffTVer7fb573qqqs6PXfbc3zpS1/q1Gt1/vnnM2fOHJ588sk+a33qqafQNI0bb7yx0/Wbb74ZwzB4+umnO11fsWIFJSUlfT5vd37yk5+wfv16fvaznyX/7PvL4/EAx/bnIcRIJEFIiDHu9ddfZ+XKlbjdbjIyMsjNzeXWW28FSAahFStWcPHFF/ODH/yAnJwcLrzwQu69914ikUiX5/vpT3/Ko48+ysMPP3zce+ykpaX1+Qu17f68vLwBP//27du56KKL8Hq9pKenk5ubm5wE3PbeDxw4AMDMmTM7PdZqtTJt2rRun3fq1Kmdbrc9x+zZs7u0nTNnTvL+3hw4cICioqIuwbBtxd/Rz3F0Df31wAMP8N3vfpfPfvazx7Qar6WlBaDPACvEaCFBSIgxbP/+/Zx99tnU1dVx55138uSTT/L888/zta99DTBXG4E5+fbhhx9m48aN3HDDDVRUVHDttdeyePHi5C++NqtWrcLtdvOLX/yiyz40A1VSUsLu3bu7DVxttm7dis1mY8KECclau3P0BOimpiZWrFjB+++/zw9/+EMef/xxnn/+eX7+858D7e/9WHTsDUqVY6nh+eef5zOf+Qznn38+d9111zG97rZt28jLyyM9Pf2YHi/ESCNBSIgx7PHHHycSifDYY49x/fXXc95557Fy5coef4mecsop/PjHP2bLli38/e9/Z/v27fzrX//q0ubRRx/ljTfe4JJLLiEejx9zfRdccAHhcJiHHnqo2/vLy8vZsGEDH/vYx5I1Z2ZmAmbQ6ejoHpOXX36Z+vp61q1bx1e+8hU+9rGPsXLlyuTj20yePBmAvXv3droei8UoKyvr1/toe47du3d3uW/37t3J+6HnIDd58mQqKyu79JC1DeF1fI5j8dZbb3HRRRexZMkSHnzwQSyWga+V2bhxI/v37+92OFSI0UqCkBBjmKZpAJ2WX/t8Pu69995O7RobG7ss0V64cCFAt701K1eu5F//+hfPPPMMn/70p7v0rvR3+fz1119PQUEB3/jGNygtLe10Xzgc5pprrkFRFL75zW8mr7cts3/11VeT1wKBQHKpfZvu3ns0GuUPf/hDp3ZLliwhNzeXu+66i2g0mry+bt26LmGrJ0uWLCEvL4+77rqr09fr6aefZufOnZ1W1LndbqBrkDvvvPNIJBL8/ve/73T917/+NYqicO655/arlu601TBlyhSeeOKJY+pNOnDgAFdffTU2m41vfOMbx1yLECONLJ8XYgw755xzsNlsXHDBBVx//fW0tLTwl7/8hby8PI4cOZJsd9999/GHP/yBiy66iOnTp9Pc3Mxf/vIX0tPTk7s+H+3jH/849957L5/5zGdIT0/nT3/6U/K+/i6fz8zM5OGHH+a8887jpJNO6rKzdGlpKb///e9ZtmxZp/dUXFzMZz/7Wb7xjW+gaRr33HMPubm5nY6AWL58OZmZmVx11VXceOONKIrCX//61y6Bz2q18qMf/Yjrr7+es846i0svvZSysjLuvffeHucIHc1qtfLzn/+ca665hhUrVnD55Zcnl89PmTIlORQJsHjxYgBuvPFGVq1ahaZpXHbZZVxwwQWceeaZfOc736G8vJwTTzyR5557jv/+97989atf7bLPUn81NzezatUqGhsb+cY3vtFl4vb06dM59dRTO1175513+Nvf/oau6zQ1NbF582b+/e9/J7+GJ5xwwjHVIsSIlNI1a0KIQdXd0uzHHnvMOOGEEwyHw2FMmTLF+PnPf27cc889nZaav/POO8bll19uFBcXG3a73cjLyzM+9rGPGVu2bEk+T09Lq//whz8YgPH1r389ea2/y+fblJeXG5///OeN4uJiw2KxGIABGOvXr++2/dtvv20sW7bMsNlsRnFxsXHnnXd2u3z+9ddfN0455RTD6XQaRUVFxje/+U3j2WefNQDjpZde6vI+pk6datjtdmPJkiXGq6++aqxYsaLb5fMPPfRQt3U98MADxqJFiwy73W5kZWUZn/rUp4zDhw93ahOPx40vf/nLRm5urqEoSqc/r+bmZuNrX/uaUVRUZFitVmPmzJnGHXfcYei63uk5AGPNmjX9+Mq2/7n19HHVVVf12NZisRhZWVnGsmXLjFtuucU4cOBAv15TiNFEMYyj/nkkhBAp9sILL3Deeedx+umn8/TTT3da1i6EEINJ5ggJIUacs88+m/vuu4+XXnqJa665pstwlhBCDBbpERJCCCHEuCU9QkIIIYQYtyQICSGEEGLckiAkhBBCiHFLgpAQQgghxi3ZULEXuq5TWVlJWlpaj9viCyGEEGJkMQyD5uZmioqKUNXe+3wkCPWisrKSSZMmpboMIYQQQhyDQ4cO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", "text/plain": [ "
" ] @@ -735,36 +165,64 @@ "eval_data = {}\n", "w = 1\n", "fig = plt.figure()\n", + "last_iter = perf_data[\"PPO\"][0][\"x\"][-1]\n", "for method in data_paths.keys():\n", " print(method)\n", - " temp = np.zeros((len(seeds), 4, perf_data[method][seeds[0]][\"x\"].shape[0]))\n", + " temp = np.zeros((len(seeds), 6, perf_data[method][seeds[0]][\"x\"].shape[0]))\n", " for seed in seeds:\n", - " print(seed)\n", + " # print(seed)\n", " temp[seed, 0, :] = perf_data[method][seed][\"x\"]\n", " temp[seed, 1, :] = perf_data[method][seed][\"y\"]\n", " temp[seed, 2, :] = perf_data[method][seed][\"z\"]\n", - " temp[seed, 3, :] = perf_data[method][seed][\"c\"]\n", + " temp[seed, 3, :] = (perf_data[method][seed][\"m\"])**0.5\n", + " temp[seed, 4, :] = perf_data[method][seed][\"n\"]**0.5\n", + " temp[seed, 5, :] = perf_data[method][seed][\"l\"]\n", + " for seed in seeds:\n", + " for j,k in enumerate(temp[seed, 0, :]):\n", + " if temp[seed, 5, j] < 540:\n", + " temp[seed, 0, j] = np.nan\n", + " temp[seed, 1, j] = np.nan\n", + " temp[seed, 2, j] = np.nan\n", + " temp[seed, 3, j] = np.nan\n", + " temp[seed, 4, j] = np.nan\n", " eval_data.update({method: temp})\n", + " start_iter = last_iter - perf_data[method][seed][\"x\"][-1]\n", "\n", " # plotting performance\n", - " plt.plot(temp[0,0,:], np.mean(temp[:,1,:], axis=0), label=method)\n", - " plt.fill_between(temp[0,0,:], np.mean(temp[:,1,:], axis=0)+np.mean(temp[:,2,:], axis=0), \n", - " np.mean(temp[:,1,:], axis=0)-np.mean(temp[:,2,:], axis=0), alpha=0.25)\n", + " # plt.plot(start_iter+temp[0,0,w-1:], moving_average(np.mean(temp[:,3,:], axis=0), w), label=method)\n", + " # plt.fill_between(start_iter+temp[0,0,w-1:], \n", + " # moving_average(np.mean(temp[:,3,:], axis=0)-np.mean(temp[:,4,:], axis=0), w), \n", + " # moving_average(np.mean(temp[:,3,:], axis=0)+np.mean(temp[:,4,:], axis=0), w), alpha=0.25)\n", + " plt.plot(start_iter+temp[0,0,:], np.mean(temp[:,3,:], axis=0), color=colors[method], label=method)\n", + " plt.fill_between(start_iter+temp[0,0,:], \n", + " np.mean(temp[:,3,:], axis=0)-np.mean(temp[:,4,:], axis=0), \n", + " np.mean(temp[:,3,:], axis=0)+np.mean(temp[:,4,:], axis=0), color=colors[method], alpha=0.25)\n", "\n", " # plotting constraint violations\n", " # plt.plot(temp[0,0,:], np.mean(temp[:,3,:], axis=0), label=method)\n", "\n", + "gp_mpc_data = np.load(\"./Results/LSY_pc/GPMPC_rmse_200_mass_20_sample_10_epoch.npy\", allow_pickle=True).item()\n", + "start_iter = last_iter - gp_mpc_data['train_steps'][-1]\n", + "plt.plot(0*start_iter+gp_mpc_data['train_steps'], gp_mpc_data['mean'], color=colors[\"GP MPC\"], label='GP MPC')\n", + "plt.fill_between(0*start_iter+gp_mpc_data['train_steps'], \n", + " gp_mpc_data['mean']-gp_mpc_data['std'], \n", + " gp_mpc_data['mean']+gp_mpc_data['std'], color=colors[\"GP MPC\"], alpha=0.25)\n", + "\n", + "s = 1 # time std\n", + "rmse_ilqr_mean = 0.026000000000000002\n", + "rmse_ilqr_std = 0.001843908891458577\n", + "plt.axhline(xmin=0.0, xmax=0.95, y=rmse_ilqr_mean, linestyle='--', color=colors[\"iLQR\"], label='iLQR')\n", + "plt.fill_between([0.0, last_iter], rmse_ilqr_mean-s*rmse_ilqr_std, rmse_ilqr_mean+s*rmse_ilqr_std, color=colors[\"iLQR\"], alpha=0.25)\n", + "\n", "# gp_05 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_0.5_cost.npy\", allow_pickle=True)\n", "# gp_10 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_1.0_cost.npy\", allow_pickle=True)\n", "# gp_30 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_3.0_cost.npy\", allow_pickle=True)\n", - "\n", "# plt.plot(gp_05.item()[\"mean\"][:,0], gp_05.item()[\"mean\"][:,1], label=\"GP-MPC (m=0.5)\")\n", "# plt.fill_between(gp_05.item()[\"mean\"][:,0], gp_05.item()[\"mean\"][:,1]-gp_05.item()[\"std\"], gp_05.item()[\"mean\"][:,1]+gp_05.item()[\"std\"], alpha=0.25)\n", "# plt.plot(gp_10.item()[\"mean\"][:,0], gp_10.item()[\"mean\"][:,1], label=\"GP-MPC (m=1.0)\")\n", "# plt.fill_between(gp_10.item()[\"mean\"][:,0], gp_10.item()[\"mean\"][:,1]-gp_10.item()[\"std\"], gp_10.item()[\"mean\"][:,1]+gp_10.item()[\"std\"], alpha=0.25)\n", "# plt.plot(gp_30.item()[\"mean\"][:,0], gp_30.item()[\"mean\"][:,1], label=\"GP-MPC (m=3.0)\")\n", "# plt.fill_between(gp_30.item()[\"mean\"][:,0], gp_30.item()[\"mean\"][:,1]-gp_30.item()[\"std\"], gp_30.item()[\"mean\"][:,1]+gp_30.item()[\"std\"], alpha=0.25)\n", - "\n", "# gp_05 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_0.5_constraint_percentage.npy\", allow_pickle=True)\n", "# gp_10 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_1.0_constraint_percentage.npy\", allow_pickle=True)\n", "# gp_30 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_3.0_constraint_percentage.npy\", allow_pickle=True)\n", @@ -774,40 +232,48 @@ "\n", "\n", "plt.legend()\n", - "plt.ylim(-200,00)\n", + "# plt.ylim(-200,00)\n", "plt.xscale(\"log\")\n", + "# plt.gca().invert_xaxis()\n", + "plt.yscale(\"log\")\n", "plt.xlabel(\"Training steps\")\n", - "plt.ylabel(\"Performance\")\n", - "plt.title(\"Task: Cartpole\")\n", + "plt.ylabel(\"RMSE\")\n", + "plt.title(\"Task: Quadrotor 2D\")\n", "# plt.savefig(\"perf1.pdf\",bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(0.5, 1.0, 'Task: Cartpole')" + "(array([ 5.56661044, 8.98567327, 6.40123258, 14.21983029, 13.08274237,\n", + " 8.77096302, 8.71078224, 5.30294769, 4.94162143, 3.66671972,\n", + " 3.31768475, 2.55528452, 2.02426006, 2.07484464, 1.40722345,\n", + " 1.84371323]),\n", + " array([ 5.56661044, 8.98567327, 6.40123258, 14.21983029, 13.08274237,\n", + " 8.77096302, 8.71078224, 5.30294769, 4.94162143, 3.66671972,\n", + " 3.31768475, 2.55528452, 2.02426006, 2.07484464, 1.40722345,\n", + " 1.84371323]))" ] }, - "execution_count": 25, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "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REREboFBDxEREbkFBj1ERETkFhj0EBERkVtg0ENERERugUEPERERuQUGPUREROQWGPQQERGRW2DQQ0RERG6BQQ8R2USHDh2wZMkSs4/fvn07FAoFioqKbDYmInJvDHqI3JxCoWjy68UXX7TqvPv378fs2bPNPn7o0KHIzs5GcHCwVa8nBwZeRK0bd1kncnPZ2dna66tXr8bzzz+P06dPa+8LCAjQXhcEAWq1Gh4ezf/qaNOmjUXj8PLyQnR0tEXPISKyBDM9RG4uOjpa+xUcHAyFQqG9ferUKQQGBuLXX39FSkoKvL298ccff+D8+fO46aabEBUVhYCAAAwYMACbN282OG/D8pZCocAnn3yCKVOmwM/PD507d8ZPP/2kfbxhlmXVqlUICQnBxo0b0b17dwQEBGDChAkGQVpdXR3mzZuHkJAQhIeH49///jemT5+Om2++2eT3e/HiRUyaNAmhoaHw9/dHz549sWHDBly4cAGjR48GAISGhkKhUGDGjBkAAI1Gg0WLFiEhIQG+vr7o3bs3vv/++0ZjX79+PZKTk+Hj44PBgwfjr7/+avZ1ich+GPQQUbOeeuopvP766zh58iSSk5NRVlaG66+/Hlu2bMHhw4cxYcIETJo0CRkZGU2eZ+HChbj99ttx7NgxXH/99bj77rtRUFBg8viKigr897//xRdffIGdO3ciIyMDCxYs0D7+xhtv4Msvv8TKlSuxe/dulJSUYN26dU2OYe7cuaiursbOnTtx/PhxvPHGGwgICEBcXBx++OEHAMDp06eRnZ2Nd999FwCwaNEifP755/jggw/w999/4/HHH8c999yDHTt2GJz7X//6F9566y3s378fbdq0waRJk1BbW9vk6xKRHQlERPVWrlwpBAcHa29v27ZNACCsW7eu2ef27NlTWLp0qfZ2fHy88M4772hvAxCeffZZ7e2ysjIBgPDrr78avFZhYaF2LACEc+fOaZ+zfPlyISoqSns7KipKePPNN7W36+rqhPbt2ws33XSTyXEmJSUJL774otHHGo5BEAShqqpK8PPzE/7880+DYx944AFh2rRpBs/75ptvtI/n5+cLvr6+wurVq5t9XSKyD/b0EFGz+vfvb3C7rKwML774ItavX4/s7GzU1dWhsrKy2UxPcnKy9rq/vz+CgoKQl5dn8ng/Pz907NhRezsmJkZ7fHFxMXJzczFw4EDt4yqVCikpKdBoNCbPOW/ePDz00EP4/fffMXbsWNxyyy0G42ro3LlzqKiowHXXXWdwf01NDfr27Wtw35AhQ7TXw8LC0LVrV5w8edKq1yUi+bG8RUTN8vf3N7i9YMECrF27Fq+99hp27dqFI0eOICkpCTU1NU2ex9PT0+C2QqFoMkAxdrwgCBaO3tCDDz6ItLQ03HvvvTh+/Dj69++PpUuXmjy+rKwMALB+/XocOXJE+3XixAmDvh65X5eI5Megh4gstnv3bsyYMQNTpkxBUlISoqOjceHCBbuOITg4GFFRUdi/f7/2PrVajUOHDjX73Li4OPzjH//AmjVr8MQTT+Djjz8GIM4gk84j6dGjB7y9vZGRkYFOnToZfMXFxRmcd+/evdrrhYWFOHPmDLp3797s6xKRfbC8RUQW69y5M9asWYNJkyZBoVDgueeeazJjYyuPPPIIFi1ahE6dOqFbt25YunQpCgsLoVAoTD7nsccew8SJE9GlSxcUFhZi27Zt2sAkPj4eCoUCv/zyC66//nr4+voiMDAQCxYswOOPPw6NRoNrrrkGxcXF2L17N4KCgjB9+nTtuV966SWEh4cjKioKzzzzDCIiIrQzyZp6XSKyD2Z6iMhib7/9NkJDQzF06FBMmjQJ48ePR79+/ew+jn//+9+YNm0a7rvvPgwZMgQBAQEYP348fHx8TD5HrVZj7ty56N69OyZMmIAuXbpgxYoVAIC2bdti4cKFeOqppxAVFYWHH34YAPDyyy/jueeew6JFi7TPW79+PRISEgzO/frrr+PRRx9FSkoKcnJy8PPPPxtkj0y9LhHZh0JoaYGciMhJaDQadO/eHbfffjtefvllu73u9u3bMXr0aBQWFiIkJMRur0tElmF5i4hc1sWLF/H7779j5MiRqK6uxrJly5Ceno677rrL0UMjIifE8hYRuSylUolVq1ZhwIABGDZsGI4fP47NmzezV4aIjGJ5i4iIiNwCMz1ERETkFhj0EBERkVtg0ENERERugUEPERERuQUGPUREROQWGPQQERGRW2DQQ0RERG6BQQ8RERG5hf8HZu5noFPsJ0wAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], + "source": [ + "np.mean(temp[:,3,:], axis=0),np.mean(temp[:,4,:], axis=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "eval_data = {}\n", "fig = plt.figure()\n", @@ -834,53 +300,9 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'mean': array([[ 0.00000000e+00, 0.00000000e+00],\n", - " [ 2.93333333e+00, 0.00000000e+00],\n", - " [ 5.80000000e+00, 0.00000000e+00],\n", - " [ 8.73333333e+00, 0.00000000e+00],\n", - " [ 1.16000000e+01, 0.00000000e+00],\n", - " [ 1.62000000e+01, 7.13807821e-06],\n", - " [ 2.00666667e+01, 5.61831177e-06],\n", - " [ 2.40666667e+01, -2.38906074e-06],\n", - " [ 2.82000000e+01, -1.02407836e-05],\n", - " [ 3.20666667e+01, -8.33910976e-06],\n", - " [ 3.60000000e+01, -1.04122867e-05],\n", - " [ 4.01333333e+01, -7.54548368e-06],\n", - " [ 4.42000000e+01, -1.02303621e-05],\n", - " [ 4.80666667e+01, -5.04734446e-06],\n", - " [ 5.20000000e+01, -1.68983074e-06],\n", - " [ 5.60000000e+01, -9.74065818e-06],\n", - " [ 6.00000000e+01, 2.63845694e-06],\n", - " [ 6.42000000e+01, -2.09249434e-05],\n", - " [ 6.81333333e+01, -5.47407624e-06],\n", - " [ 7.22000000e+01, -6.64692476e-06],\n", - " [ 7.60666667e+01, 1.17464305e-05],\n", - " [ 8.02000000e+01, 3.14250987e-05],\n", - " [ 8.40000000e+01, 1.14396414e-06],\n", - " [ 8.81333333e+01, -1.20415006e-05],\n", - " [ 9.20666667e+01, 2.60521625e-06],\n", - " [ 9.60000000e+01, -1.09591599e-06]]),\n", - " 'std': array([ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", - " 0.00000000e+00, 2.36773365e-05, 7.15179273e-06, 7.58463169e-06,\n", - " 1.31655641e-05, -4.39223308e-06, 3.74564938e-06, -1.20826999e-05,\n", - " 4.45549482e-06, -2.43457703e-06, 2.32290714e-05, 4.33940976e-06,\n", - " 1.42243419e-06, -7.85092155e-06, 1.32692975e-06, 5.62122927e-06,\n", - " -2.02191680e-05, 1.40953070e-05, -4.80527980e-07, 4.53870620e-06,\n", - " -1.53160461e-05, 5.50057713e-06]),\n", - " 'training_time': 96.0}" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "gp_05 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_0.5_constraint_percentage.npy\", allow_pickle=True)\n", "gp_10 = np.load(os.getcwd() + \"/gp_mpc_data/gp_mpc_M_1.0_constraint_percentage.npy\", allow_pickle=True)\n", @@ -896,6 +318,174 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# data_paths = {\"ppo_pyb\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/0\", \n", + "# \"ppo_sysid\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/1\"}\n", + "data_paths = {\"ppo_1\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Long_run\", \n", + " \"ppo_2\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Medium_run\",\n", + " \"ppo_3\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_ppo_data/Short_run\",\n", + " \"sac_1\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Long_run\", \n", + " \"sac_2\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Medium_run\",\n", + " \"sac_3\": os.getcwd()+\"/Results/LSY_pc/quadrotor_2D_attitude_sac_data/Short_run\",}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "perf_data = {}\n", + "for method in data_paths.keys():\n", + " print(method)\n", + " if method != \"ppo_4\":\n", + " perf_data.update({method: {}})\n", + " xk, x, yk, y = load_from_log_file(data_paths[method] + \"/logs/stat_eval/ep_return.log\")\n", + " xk, x, zk, z = load_from_log_file(data_paths[method] + \"/logs/stat_eval/ep_return_std.log\")\n", + " # xk, x1, yk, y1 = load_from_log_file(data_paths[method] + \"/HW/\" + \"/logs/stat_eval/ep_return.log\")\n", + " # xk, x1, zk, z1 = load_from_log_file(data_paths[method] + \"/HW/\" + \"/logs/stat_eval/ep_return_std.log\")\n", + " xk, x, yk, m = load_from_log_file(data_paths[method] + \"/logs/stat_eval/mse.log\")\n", + " # perf_data[method].update({\"x\": x, \"y\": y, \"z\": z, \"x1\": x1, \"y1\": y1, \"z1\": z1})\n", + " perf_data[method].update({\"x\": x, \"y\": y, \"z\": z, \"m\": m})\n", + " else:\n", + " perf_data.update({method: {}})\n", + " xk, x, yk, y = load_from_log_file(data_paths[method] + \"/logs/stat_eval/ep_return.log\")\n", + " xk, x, zk, z = load_from_log_file(data_paths[method] + \"/logs/stat_eval/ep_return_std.log\")\n", + " perf_data[method].update({\"x\": x, \"y\": y, \"z\": z})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "perf_data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fig = plt.figure()\n", + "method = \"ppo_1\"\n", + "plt.plot(perf_data[method][\"x\"], perf_data[method][\"y\"], 'r', label=method)\n", + "# plt.fill_between(perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + "# perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "last_iter1 = perf_data[method][\"x\"][-1]\n", + "last_iter = last_iter1\n", + "plt.plot([last_iter]*200, np.linspace(0, 600, 200), \"--k\")\n", + "plt.plot(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"], 'r')\n", + "# plt.fill_between(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"]+perf_data[method][\"z1\"], \n", + "# perf_data[method][\"y1\"]-perf_data[method][\"z1\"], alpha=0.25)\n", + "\n", + "\n", + "method = \"ppo_2\"\n", + "start_iter = last_iter1 - perf_data[method][\"x\"][-1]\n", + "plt.plot(start_iter+perf_data[method][\"x\"], perf_data[method][\"y\"], 'g', label=method)\n", + "# plt.fill_between(start_iter+perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + "# perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "plt.plot([last_iter]*200, np.linspace(0, 600, 200), \"--k\")\n", + "plt.plot(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"], 'g')\n", + "# plt.fill_between(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"]+perf_data[method][\"z1\"], \n", + "# perf_data[method][\"y1\"]-perf_data[method][\"z1\"], alpha=0.25)\n", + "\n", + "\n", + "method = \"ppo_3\"\n", + "start_iter = last_iter1 - perf_data[method][\"x\"][-1]\n", + "plt.plot(start_iter+perf_data[method][\"x\"], perf_data[method][\"y\"], 'b', label=method)\n", + "# plt.fill_between(start_iter+perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + "# perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "# last_iter = perf_data[method][\"x\"][-1]\n", + "plt.plot([last_iter]*200, np.linspace(0, 600, 200), \"--k\")\n", + "plt.plot(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"], 'b')\n", + "# plt.fill_between(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"]+perf_data[method][\"z1\"], \n", + "# perf_data[method][\"y1\"]-perf_data[method][\"z1\"], alpha=0.25)\n", + "\n", + "method = \"ppo_4\"\n", + "# start_iter = last_iter1 - perf_data[method][\"x\"][-1]\n", + "# plt.plot(start_iter+perf_data[method][\"x\"], perf_data[method][\"y\"], 'b', label=method)\n", + "# plt.fill_between(start_iter+perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + "# perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "# last_iter = perf_data[method][\"x\"][-1]\n", + "# plt.plot([last_iter]*200, np.linspace(0, 600, 200), \"--k\")\n", + "plt.plot(last_iter+perf_data[method][\"x\"], perf_data[method][\"y\"], 'm', label=method)\n", + "# plt.fill_between(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"]+perf_data[method][\"z1\"], \n", + "# perf_data[method][\"y1\"]-perf_data[method][\"z1\"], alpha=0.25)\n", + "\n", + "plt.legend()\n", + "plt.ylim(00, 600)\n", + "plt.xscale(\"log\")\n", + "plt.xlabel(\"Training steps\")\n", + "plt.ylabel(\"Cummulative return\")\n", + "plt.title(\"Task: Quad_2d\")\n", + "# plt.savefig(\"perf1.pdf\",bbox_inches=\"tight\", pad_inches=0.0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax1 = plt.subplot(3,1,1)\n", + "method = \"ppo_1\"\n", + "ax1.plot(perf_data[method][\"x\"], perf_data[method][\"y\"], 'b', label=method)\n", + "ax1.fill_between(perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + " perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "# last_iter = perf_data[method][\"x\"][-1]\n", + "# plt.plot([last_iter]*200, np.linspace(0, 600, 200), \"--k\")\n", + "\n", + "method = \"ppo_2\"\n", + "ax1.plot(perf_data[method][\"x\"], perf_data[method][\"y\"], label=method)\n", + "ax1.fill_between(perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + " perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "# last_iter = perf_data[method][\"x\"][-1]\n", + "# ax1.plot([last_iter]*200, np.linspace(0, 600, 200), \"--k\")\n", + "\n", + "method = \"ppo_3\"\n", + "ax1.plot(perf_data[method][\"x\"], perf_data[method][\"y\"], label=method)\n", + "ax1.fill_between(perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + " perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "# last_iter = perf_data[method][\"x\"][-1]\n", + "# plt.plot([last_iter]*200, np.linspace(0, 600, 200), \"--k\")\n", + "\n", + "ax2 = plt.subplot(3,3,1)\n", + "method = \"ppo_1\"\n", + "ax2.plot(perf_data[method][\"x1\"], perf_data[method][\"y1\"], 'b')\n", + "ax2.fill_between(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"]+perf_data[method][\"z1\"], \n", + " perf_data[method][\"y1\"]-perf_data[method][\"z1\"], alpha=0.25)\n", + "method = \"ppo_2\"\n", + "ax2.plot(perf_data[method][\"x1\"], perf_data[method][\"y1\"], label=method)\n", + "ax2.fill_between(last_iter+perf_data[method][\"x1\"], perf_data[method][\"y1\"]+perf_data[method][\"z1\"], \n", + " perf_data[method][\"y1\"]-perf_data[method][\"z1\"], alpha=0.25)\n", + "method = \"ppo_3\"\n", + "ax2.plot(perf_data[method][\"x1\"], perf_data[method][\"y1\"], label=method)\n", + "ax2.fill_between(perf_data[method][\"x1\"], perf_data[method][\"y1\"]+perf_data[method][\"z1\"], \n", + " perf_data[method][\"y1\"]-perf_data[method][\"z1\"], alpha=0.25)\n", + "method = \"ppo_4\"\n", + "ax2.plot(perf_data[method][\"x\"], perf_data[method][\"y\"], label=method)\n", + "ax2.fill_between(perf_data[method][\"x\"], perf_data[method][\"y\"]+perf_data[method][\"z\"], \n", + " perf_data[method][\"y\"]-perf_data[method][\"z\"], alpha=0.25)\n", + "\n", + "plt.legend()\n", + "plt.ylim(00, 600)\n", + "# plt.xscale(\"log\")\n", + "plt.xlabel(\"Training steps\")\n", + "plt.ylabel(\"Cummulative return\")\n", + "plt.title(\"Task: Quad_2d\")\n", + "# plt.savefig(\"perf1.pdf\",bbox_inches=\"tight\", pad_inches=0.0)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -920,7 +510,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.3" + "version": "3.10.14" } }, "nbformat": 4, diff --git a/examples/rl/train_rl_model.sh b/examples/rl/train_rl_model.sh index be7092b18..7ee1e5fae 100755 --- a/examples/rl/train_rl_model.sh +++ b/examples/rl/train_rl_model.sh @@ -24,28 +24,28 @@ fi # Removed the temporary data used to train the new unsafe model. # rm -r -f ./${ALGO}_data_2/ -if [ "$ALGO" == 'safe_explorer_ppo' ]; then - # Pretrain the unsafe controller/agent. - python3 ../../safe_control_gym/experiments/train_rl_controller.py \ - --algo ${ALGO} \ - --task ${SYS_NAME} \ - --overrides \ - ./config_overrides/${SYS}/${ALGO}_${SYS}_pretrain.yaml \ - ./config_overrides/${SYS}/${SYS}_${TASK}.yaml \ - --output_dir ./unsafe_rl_temp_data/ \ - --seed 2 \ - --kv_overrides \ - task_config.init_state=None - - # Move the newly trained unsafe model. - mv ./unsafe_rl_temp_data/model_latest.pt ./models/${ALGO}/${ALGO}_pretrain_${SYS}_${TASK}.pt - - # Removed the temporary data used to train the new unsafe model. - rm -r -f ./unsafe_rl_temp_data/ -fi +#if [ "$ALGO" == 'safe_explorer_ppo' ]; then +# # Pretrain the unsafe controller/agent. +# python3 ../../safe_control_gym/experiments/train_rl_controller.py \ +# --algo ${ALGO} \ +# --task ${SYS_NAME} \ +# --overrides \ +# ./config_overrides/${SYS}/${ALGO}_${SYS}_pretrain.yaml \ +# ./config_overrides/${SYS}/${SYS}_${TASK}.yaml \ +# --output_dir ./unsafe_rl_temp_data/ \ +# --seed 2 \ +# --kv_overrides \ +# task_config.init_state=None +# +# # Move the newly trained unsafe model. +# mv ./unsafe_rl_temp_data/model_latest.pt ./models/${ALGO}/${ALGO}_pretrain_${SYS}_${TASK}.pt +# +# # Removed the temporary data used to train the new unsafe model. +# rm -r -f ./unsafe_rl_temp_data/ +#fi # Train the unsafe controller/agent. -for SEED in {0..0} +for SEED in {1..1} do python3 ../../safe_control_gym/experiments/train_rl_controller.py \ --algo ${ALGO} \ @@ -56,7 +56,8 @@ do --output_dir ./Results/${SYS}_${ALGO}_data/${SEED}/ \ --seed ${SEED} \ --kv_overrides \ - task_config.randomized_init=True + task_config.randomized_init=True + # --pretrain_path ./models/${ALGO}/model_latest.pt done # Move the newly trained unsafe model. diff --git a/safe_control_gym/controllers/ppo/ppo.py b/safe_control_gym/controllers/ppo/ppo.py index 990c41918..f6b438e2e 100644 --- a/safe_control_gym/controllers/ppo/ppo.py +++ b/safe_control_gym/controllers/ppo/ppo.py @@ -153,13 +153,22 @@ def learn(self, ): """Performs learning (pre-training, training, fine-tuning, etc.).""" + # Initial Evaluation. + eval_results = self.run(env=self.eval_env, n_episodes=self.eval_batch_size) + self.logger.info('Eval | ep_lengths {:.2f} +/- {:.2f} | ep_return {:.3f} +/- {:.3f}'.format( + eval_results['ep_lengths'].mean(), + eval_results['ep_lengths'].std(), + eval_results['ep_returns'].mean(), + eval_results['ep_returns'].std())) + if self.num_checkpoints > 0: step_interval = np.linspace(0, self.max_env_steps, self.num_checkpoints) interval_save = np.zeros_like(step_interval, dtype=bool) while self.total_steps < self.max_env_steps: results = self.train_step() # Checkpoint. - if self.total_steps >= self.max_env_steps or (self.save_interval and self.total_steps % self.save_interval == 0): + if (self.total_steps >= self.max_env_steps + or (self.save_interval and self.total_steps % self.save_interval == 0)): # Latest/final checkpoint. self.save(self.checkpoint_path) self.logger.info(f'Checkpoint | {self.checkpoint_path}') @@ -176,10 +185,11 @@ def learn(self, if self.eval_interval and self.total_steps % self.eval_interval == 0: eval_results = self.run(env=self.eval_env, n_episodes=self.eval_batch_size) results['eval'] = eval_results - self.logger.info('Eval | ep_lengths {:.2f} +/- {:.2f} | ep_return {:.3f} +/- {:.3f}'.format(eval_results['ep_lengths'].mean(), - eval_results['ep_lengths'].std(), - eval_results['ep_returns'].mean(), - eval_results['ep_returns'].std())) + self.logger.info('Eval | ep_lengths {:.2f} +/- {:.2f} | ep_return {:.3f} +/- {:.3f}'.format( + eval_results['ep_lengths'].mean(), + eval_results['ep_lengths'].std(), + eval_results['ep_returns'].mean(), + eval_results['ep_returns'].std())) # Save best model. eval_score = eval_results['ep_returns'].mean() eval_best_score = getattr(self, 'eval_best_score', -np.infty) @@ -209,7 +219,7 @@ def select_action(self, obs, info=None): def run(self, env=None, render=False, - n_episodes=50, + n_episodes=1, verbose=False, ): """Runs evaluation with current policy.""" @@ -229,9 +239,11 @@ def run(self, obs = self.obs_normalizer(obs) ep_returns, ep_lengths, eval_return = [], [], 0.0 frames = [] + mse, ep_rmse_mean, ep_rmse_std = [], [], [] while len(ep_returns) < n_episodes: action = self.select_action(obs=obs, info=info) obs, _, done, info = env.step(action) + mse.append(info["mse"]) if render: env.render() frames.append(env.render('rgb_array')) @@ -239,6 +251,9 @@ def run(self, print(f'obs {obs} | act {action}') if done: assert 'episode' in info + ep_rmse_mean.append(np.array(mse).mean()**0.5) + ep_rmse_std.append(np.array(mse).std()**0.5) + mse = [] ep_returns.append(info['episode']['r']) ep_lengths.append(info['episode']['l']) obs, _ = env.reset() @@ -246,7 +261,9 @@ def run(self, # Collect evaluation results. ep_lengths = np.asarray(ep_lengths) ep_returns = np.asarray(ep_returns) - eval_results = {'ep_returns': ep_returns, 'ep_lengths': ep_lengths} + eval_results = {'ep_returns': ep_returns, 'ep_lengths': ep_lengths, + 'rmse': np.array(ep_rmse_mean).mean(), + 'rmse_std': np.array(ep_rmse_std).mean()} if len(frames) > 0: eval_results['frames'] = frames # Other episodic stats from evaluation env. @@ -344,7 +361,8 @@ def log_step(self, eval_ep_lengths = results['eval']['ep_lengths'] eval_ep_returns = results['eval']['ep_returns'] eval_constraint_violation = results['eval']['constraint_violation'] - eval_mse = results['eval']['mse'] + eval_rmse = results['eval']['rmse'] + eval_rmse_std = results['eval']['rmse_std'] self.logger.add_scalars( { 'ep_length': eval_ep_lengths.mean(), @@ -352,7 +370,8 @@ def log_step(self, 'ep_return_std': eval_ep_returns.std(), 'ep_reward': (eval_ep_returns / eval_ep_lengths).mean(), 'constraint_violation': eval_constraint_violation.mean(), - 'mse': eval_mse.mean() + 'rmse': eval_rmse, + 'rmse_std': eval_rmse_std }, step, prefix='stat_eval') diff --git a/safe_control_gym/controllers/mpc/qlearning_mpc.py b/safe_control_gym/controllers/rlmpc/qlearning_mpc.py similarity index 94% rename from safe_control_gym/controllers/mpc/qlearning_mpc.py rename to safe_control_gym/controllers/rlmpc/qlearning_mpc.py index c6696e758..881c4cae4 100644 --- a/safe_control_gym/controllers/mpc/qlearning_mpc.py +++ b/safe_control_gym/controllers/rlmpc/qlearning_mpc.py @@ -1,4 +1,4 @@ -'''Model Predictive Control.''' +"""Q learning for Model Predictive Control.""" from copy import deepcopy @@ -14,7 +14,7 @@ class Qlearning_MPC(BaseController): - '''MPC with full nonlinear model.''' + """MPC with full nonlinear model.""" def __init__( self, @@ -34,7 +34,7 @@ def __init__( seed: int = 0, **kwargs ): - '''Creates task and controller. + """Creates task and controller. Args: env_func (Callable): function to instantiate task/environment. @@ -49,7 +49,7 @@ def __init__( additional_constraints (list): List of additional constraints use_gpu (bool): False (use cpu) True (use cuda). seed (int): random seed. - ''' + """ super().__init__(env_func, output_dir, use_gpu, seed, **kwargs) for k, v in locals().items(): if k != 'self' and k != 'kwargs' and '__' not in k: @@ -88,21 +88,21 @@ def __init__( def add_constraints(self, constraints ): - '''Add the constraints (from a list) to the system. + """Add the constraints (from a list) to the system. Args: constraints (list): List of constraints controller is subject too. - ''' + """ self.constraints, self.state_constraints_sym, self.input_constraints_sym = reset_constraints(constraints + self.constraints.constraints) def remove_constraints(self, constraints ): - '''Remove constraints from the current constraint list. + """Remove constraints from the current constraint list. Args: constraints (list): list of constraints to be removed. - ''' + """ old_constraints_list = self.constraints.constraints for constraint in constraints: assert constraint in self.constraints.constraints, \ @@ -111,11 +111,11 @@ def remove_constraints(self, self.constraints, self.state_constraints_sym, self.input_constraints_sym = reset_constraints(old_constraints_list) def close(self): - '''Cleans up resources.''' + """Cleans up resources.""" self.env.close() def reset(self): - '''Prepares for training or evaluation.''' + """Prepares for training or evaluation.""" # Setup reference input. if self.env.TASK == Task.STABILIZATION: self.mode = 'stabilization' @@ -136,7 +136,7 @@ def reset(self): self.setup_results_dict() def set_dynamics_func(self): - '''Updates symbolic dynamics with actual control frequency.''' + """Updates symbolic dynamics with actual control frequency.""" # self.dynamics_func = cs.integrator('fd', 'rk', # { # 'x': self.model.x_sym, @@ -150,7 +150,7 @@ def set_dynamics_func(self): self.dt) def compute_initial_guess(self, init_state, goal_states, x_lin, u_lin): - '''Use LQR to get an initial guess of the ''' + """Use LQR to get an initial guess of the """ dfdxdfdu = self.model.df_func(x=x_lin, u=u_lin) dfdx = dfdxdfdu['dfdx'].toarray() dfdu = dfdxdfdu['dfdu'].toarray() @@ -168,7 +168,7 @@ def compute_initial_guess(self, init_state, goal_states, x_lin, u_lin): return x_guess, u_guess def setup_optimizer(self): - '''Sets up nonlinear optimization problem.''' + """Sets up nonlinear optimization problem.""" nx, nu = self.model.nx, self.model.nu T = self.T # Define optimizer and variables. @@ -253,7 +253,7 @@ def select_action(self, obs, info=None ): - '''Solves nonlinear mpc problem to get next action. + """Solves nonlinear mpc problem to get next action. Args: obs (ndarray): Current state/observation. @@ -261,7 +261,7 @@ def select_action(self, Returns: action (ndarray): Input/action to the task/env. - ''' + """ opti_dict = self.opti_dict opti = opti_dict['opti'] @@ -308,7 +308,7 @@ def select_action(self, return action def get_references(self): - '''Constructs reference states along mpc horizon.(nx, T+1).''' + """Constructs reference states along mpc horizon.(nx, T+1).""" if self.env.TASK == Task.STABILIZATION: # Repeat goal state for horizon steps. goal_states = np.tile(self.env.X_GOAL.reshape(-1, 1), (1, self.T + 1)) @@ -326,7 +326,7 @@ def get_references(self): return goal_states # (nx, T+1). def setup_results_dict(self): - '''Setup the results dictionary to store run information.''' + """Setup the results dictionary to store run information.""" self.results_dict = {'obs': [], 'reward': [], 'done': [], @@ -350,7 +350,7 @@ def run(self, max_steps=None, terminate_run_on_done=None ): - '''Runs evaluation with current policy. + """Runs evaluation with current policy. Args: render (bool): if to do real-time rendering. @@ -358,7 +358,7 @@ def run(self, Returns: dict: evaluation statisitcs, rendered frames. - ''' + """ if env is None: env = self.env if terminate_run_on_done is None: @@ -440,16 +440,17 @@ def run(self, self.results_dict['total_rmse_state_error'] = compute_state_rmse(self.results_dict['state']) self.results_dict['total_rmse_obs_error'] = compute_state_rmse(self.results_dict['obs']) except ValueError: - raise Exception('[ERROR] mpc.run().py: MPC could not find a solution for the first step given the initial conditions. ' + raise Exception('[ERROR] mpc.run().py: MPC could not find a solution for ' + 'the first step given the initial conditions. ' 'Check to make sure initial conditions are feasible.') return deepcopy(self.results_dict) def reset_before_run(self, obs, info=None, env=None): - '''Reinitialize just the controller before a new run. + """Reinitialize just the controller before a new run. Args: obs (ndarray): The initial observation for the new run. info (dict): The first info of the new run. env (BenchmarkEnv): The environment to be used for the new run. - ''' + """ self.reset() diff --git a/safe_control_gym/controllers/mpc/qlearning_mpc.yaml b/safe_control_gym/controllers/rlmpc/qlearning_mpc.yaml similarity index 100% rename from safe_control_gym/controllers/mpc/qlearning_mpc.yaml rename to safe_control_gym/controllers/rlmpc/qlearning_mpc.yaml diff --git a/safe_control_gym/controllers/sac/sac.py b/safe_control_gym/controllers/sac/sac.py index fb9b78cc8..2b2db7a8f 100644 --- a/safe_control_gym/controllers/sac/sac.py +++ b/safe_control_gym/controllers/sac/sac.py @@ -236,11 +236,12 @@ def run(self, env=None, render=False, n_episodes=10, verbose=False, **kwargs): obs = self.obs_normalizer(obs) ep_returns, ep_lengths = [], [] frames = [] - + mse, ep_rmse_mean, ep_rmse_std = [], [], [] while len(ep_returns) < n_episodes: action = self.select_action(obs=obs, info=info) obs, _, done, info = env.step(action) + mse.append(info["mse"]) if render: env.render() frames.append(env.render('rgb_array')) @@ -249,6 +250,9 @@ def run(self, env=None, render=False, n_episodes=10, verbose=False, **kwargs): if done: assert 'episode' in info + ep_rmse_mean.append(np.array(mse).mean()**0.5) + ep_rmse_std.append(np.array(mse).std()**0.5) + mse = [] ep_returns.append(info['episode']['r']) ep_lengths.append(info['episode']['l']) obs, info = env.reset() @@ -257,7 +261,9 @@ def run(self, env=None, render=False, n_episodes=10, verbose=False, **kwargs): # collect evaluation results ep_lengths = np.asarray(ep_lengths) ep_returns = np.asarray(ep_returns) - eval_results = {'ep_returns': ep_returns, 'ep_lengths': ep_lengths} + eval_results = {'ep_returns': ep_returns, 'ep_lengths': ep_lengths, + 'rmse': np.array(ep_rmse_mean).mean(), + 'rmse_std': np.array(ep_rmse_std).mean()} if len(frames) > 0: eval_results['frames'] = frames # Other episodic stats from evaluation env. @@ -383,7 +389,8 @@ def log_step(self, results): eval_ep_lengths = results['eval']['ep_lengths'] eval_ep_returns = results['eval']['ep_returns'] eval_constraint_violation = results['eval']['constraint_violation'] - eval_mse = results['eval']['mse'] + eval_rmse = results['eval']['rmse'] + eval_rmse_std = results['eval']['rmse_std'] self.logger.add_scalars( { 'ep_length': eval_ep_lengths.mean(), @@ -391,7 +398,8 @@ def log_step(self, results): 'ep_return_std': eval_ep_returns.std(), 'ep_reward': (eval_ep_returns / eval_ep_lengths).mean(), 'constraint_violation': eval_constraint_violation.mean(), - 'mse': eval_mse.mean() + 'rmse': eval_rmse, + 'rmse_std': eval_rmse_std }, step, prefix='stat_eval') diff --git a/safe_control_gym/experiments/train_rl_controller.py b/safe_control_gym/experiments/train_rl_controller.py index 15682bca3..faaec7034 100644 --- a/safe_control_gym/experiments/train_rl_controller.py +++ b/safe_control_gym/experiments/train_rl_controller.py @@ -28,6 +28,7 @@ def train(): set_seed_from_config(config) set_device_from_config(config) + print(config) # Define function to create task/env. env_func = partial(make, @@ -43,6 +44,8 @@ def train(): use_gpu=config.use_gpu, seed=config.seed, **config.algo_config) + if 'pretrain_path' in config.keys(): + ctrl.load(config.pretrain_path) ctrl.reset() # Training. diff --git a/safe_control_gym/utils/configuration.py b/safe_control_gym/utils/configuration.py index 6f387d8f3..2a9e5a1d1 100644 --- a/safe_control_gym/utils/configuration.py +++ b/safe_control_gym/utils/configuration.py @@ -36,6 +36,7 @@ def add_arguments(self): # self.add_argument('--device', type=str, help='cpu or cuda(gpu)') self.add_argument('--use_gpu', action='store_true', help='added to use gpu (if available)') self.add_argument('--output_dir', type=str, help='output saving folder') + self.add_argument('--pretrain_path', type=str, help='path to pretrained model') self.add_argument('--restore', type=str, help='folder to reload from') # Need to explicitly provide from command line (if training for the 1st time). self.add_argument('--algo', type=str, help='algorithm/controller')