{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## FrozenLake-v1\n", "\n", "Here is a [better rendering](https://nbviewer.org/github/facebookresearch/Pearl/blob/main/tutorials/frozen_lake/frozen_lake.ipynb) of this notebook on [nbviewer](https://nbviewer.org/).\n", "\n", "This example shows how to use DQN to solve the `FrozenLake-v1` environment from gymnasium. This environment has observations as indices (tabular observation)which is not suitable for learning with a neural network. In what follows, we show how to use Pearl's `OneHotObservationsFromDiscrete` wrapper to convert observations to their one-hot representations." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "8NNfwWXGvn_o", "output": { "id": 361938766731901, "loadingStatus": "loaded" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "I0212 225446.596 magics.py:84] %autoreload was called with parameter_s='2'\n" ] } ], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Installation\n", "If you haven't installed Pearl, please make sure you install Pearl with the following cell. Otherwise, you can skip the cell below." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "1uLHbYlegKX-", "output": { "id": 1081297929584504, "loadingStatus": "loaded" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/mnt/xarfuse/uid-304016/165a7884-seed-nspid4026531836_cgpid23203732-ns-4026531841/runtime/bin/bento_kernel_pearl_binary#native-main#bundle-runtime#cinder#py_version_3_10_cinder: No module named pip\r\n", "Note: you may need to restart the kernel to use updated packages.\n", "Cloning into 'Pearl'...\r\n", "fatal: unable to access 'https://github.com/facebookresearch/Pearl.git/': Couldn't connect to server\r\n", "[Errno 2] No such file or directory: 'Pearl'\n", "/data/users/rodrigobraz\n", "/mnt/xarfuse/uid-304016/165a7884-seed-nspid4026531836_cgpid23203732-ns-4026531841/runtime/bin/bento_kernel_pearl_binary#native-main#bundle-runtime#cinder#py_version_3_10_cinder: No module named pip\r\n", "Note: you may need to restart the kernel to use updated packages.\n", "/data/users\n" ] } ], "source": [ "%pip uninstall Pearl -y\n", "%rm -rf Pearl\n", "!git clone https://github.com/facebookresearch/Pearl.git\n", "%cd Pearl\n", "%pip install .\n", "%cd .." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import Modules" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "vcb70ZC_h3OA", "output": { "id": 716826897185117, "loadingStatus": "loaded" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "I0212 225508.977 box.py:24] Using 'gymnasium' package.\n", "I0212 225508.980 box_action.py:25] Using 'gymnasium' package.\n", "I0212 225508.982 discrete.py:22] Using 'gymnasium' package.\n", "I0212 225508.984 discrete_action.py:25] Using 'gymnasium' package.\n", "I0212 225509.422 gym_environment.py:27] Using 'gymnasium' package.\n" ] } ], "source": [ "from pearl.utils.functional_utils.experimentation.set_seed import set_seed\n", "from pearl.policy_learners.sequential_decision_making.deep_q_learning import DeepQLearning\n", "from pearl.replay_buffers.sequential_decision_making.fifo_off_policy_replay_buffer import FIFOOffPolicyReplayBuffer\n", "from pearl.utils.functional_utils.train_and_eval.online_learning import online_learning\n", "from pearl.pearl_agent import PearlAgent\n", "from pearl.utils.instantiations.environments.gym_environment import GymEnvironment\n", "from pearl.utils.instantiations.environments.environments import (\n", " OneHotObservationsFromDiscrete,\n", ")\n", "from pearl.utils.instantiations.spaces.discrete import DiscreteSpace\n", "import torch\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from pearl.action_representation_modules.one_hot_action_representation_module import (\n", " OneHotActionTensorRepresentationModule,\n", ")\n", "\n", "set_seed(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vanilla DQN " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "id": "kulkpFAvnOQx", "output": { "id": 359198433580269, "loadingStatus": "loaded" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[W 240212 22:55:14 passive_env_checker:233] `np.bool8` is a deprecated alias for `np.bool_`. (Deprecated NumPy 1.24)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1, step 100, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 4, step 289, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 5, step 389, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 6, step 489, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 8, step 591, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 9, step 691, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 10, step 791, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 11, step 891, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 12, step 991, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 13, step 1077, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 14, step 1149, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 15, step 1234, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 16, step 1334, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 17, step 1434, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 18, step 1515, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 20, step 1689, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 21, step 1732, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 24, step 1804, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 26, step 1901, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 27, step 2001, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 28, step 2101, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 32, step 2268, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 33, step 2332, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 35, step 2405, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 40, step 2590, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n", "episode 41, step 2605, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 43, step 2723, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 44, step 2822, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 45, step 2922, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 47, step 3033, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 48, step 3133, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 49, step 3207, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 52, step 3377, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 53, step 3477, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 55, step 3554, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 57, step 3660, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 58, step 3707, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 61, step 3898, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 62, step 3998, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 63, step 4098, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 64, step 4131, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 66, step 4249, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 68, step 4378, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 69, step 4434, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 71, step 4579, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 72, step 4655, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 73, step 4754, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 74, step 4833, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 75, step 4908, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 76, step 5008, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 79, step 5156, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 80, step 5209, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 84, step 5343, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 86, step 5448, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 88, step 5527, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 90, step 5695, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 91, step 5795, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 92, step 5895, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 93, step 5995, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 94, step 6095, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 95, step 6126, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 96, step 6226, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 98, step 6333, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 105, step 6418, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 108, step 6525, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 110, step 6665, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 111, step 6765, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 112, step 6865, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 114, step 6978, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 115, step 7037, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 116, step 7128, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 118, step 7221, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 119, step 7321, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 121, step 7451, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 123, step 7561, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 125, step 7630, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 126, step 7706, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 129, step 7811, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 130, step 7911, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 131, step 8011, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 133, step 8144, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 134, step 8244, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 136, step 8352, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 138, step 8451, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 139, step 8526, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 142, step 8616, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 146, step 8723, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 148, step 8844, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 149, step 8925, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 150, step 9025, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 152, step 9128, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 159, step 9200, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 165, step 9327, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 166, step 9427, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 169, step 9594, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n", "episode 170, step 9600, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 172, step 9729, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 174, step 9814, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 178, step 9904, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 179, step 10004, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 189, step 10118, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 193, step 10205, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 202, step 10330, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 212, step 10405, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 220, step 10507, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 229, step 10622, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 241, step 10701, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 255, step 10801, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 269, step 10901, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 286, step 11010, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 301, step 11101, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 314, step 11202, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 329, step 11302, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 345, step 11400, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 362, step 11504, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 379, step 11603, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 395, step 11703, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 411, step 11804, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 427, step 11904, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 444, step 12005, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 460, step 12101, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 479, step 12203, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 495, step 12304, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 511, step 12405, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 528, step 12502, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 544, step 12600, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 562, step 12705, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 579, step 12805, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 595, step 12903, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 611, step 13000, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 629, step 13104, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 645, step 13204, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 661, step 13305, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 677, step 13405, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 691, step 13503, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 708, step 13606, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 723, step 13704, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 739, step 13805, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 755, step 13904, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 772, step 14004, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 788, step 14104, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 804, step 14203, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 821, step 14305, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 837, step 14405, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 854, step 14505, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 871, step 14605, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 887, step 14705, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 904, step 14803, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 920, step 14901, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 937, step 15004, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 952, step 15105, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 968, step 15203, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 983, step 15301, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 999, step 15405, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1016, step 15504, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1032, step 15605, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1048, step 15700, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1064, step 15803, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1080, step 15902, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1096, step 16004, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1111, step 16100, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1128, step 16200, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1144, step 16300, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1161, step 16402, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1178, step 16501, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1195, step 16602, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1211, step 16700, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1228, step 16804, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1244, step 16900, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1261, step 17005, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1276, step 17105, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1293, step 17202, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1309, step 17301, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1325, step 17400, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1342, step 17503, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1358, step 17600, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1374, step 17703, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1391, step 17805, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1407, step 17904, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1421, step 18002, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1436, step 18103, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1451, step 18202, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1466, step 18300, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1483, step 18404, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1499, step 18505, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1513, step 18600, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1529, step 18701, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1545, step 18800, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1561, step 18905, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1577, step 19003, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1595, step 19100, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 0.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1612, step 19201, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1629, step 19305, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1646, step 19407, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1662, step 19502, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1678, step 19600, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1695, step 19709, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1710, step 19801, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1727, step 19905, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "episode 1742, step 20001, agent=PearlAgent with DeepQLearning, FIFOOffPolicyReplayBuffer, env=One-hot observations on FrozenLake-v1 from FrozenLake-v1\n", "return: 1.0\n" ] }, { "data": { "image/png": "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u5cAANDRutavXz/W7kUAANAcIyMjuf7GtVl7823Z9PTTGRoaykEHHZRTTjoxr3v1ZXlqw8Z87vNf3Ot75s2dm4//5z9OkoyOjmb1jWuzZu0teeLJDRkbG838+fOyfNnpefXll2bGjOl7vu+P//TjOfigg/IfP/T+fOs73819P/lptg9uz/z58/KKlSty2SUX7vU5d99zX3606oY8/vgT2bZtILNmz8qxxxyVV112cY479pgW/YYAAFpD0g0AoIP8wze/nVWr1+SsM8/IqaeclGnTevLoY49n1eo1mT17Vv7gdz6Uhx5+JF/68tcye/asvO3f/2pmTJ+e0049OUny5b/7em659cc5c9lpOfXkk9LVlfz0/gdy2+135qjFi/KHv/fb6Z02LUnyJ3/2iWRsLLNnz8qRCxfmxKVLsnXr1lx/w03ZuOnpvPH1r87rXn15kuT2O9blS1/+Wo4+anFWvPxlmTWzP08/vSXX33hTnntua/7wd387xxy9uK2/OwCAZprW7gUAANA8N996e4444rD85nv/w55jLz8nOe7Yo3PjTbdk27aBnL18Wb6Ur2V67/ScvXzZntfdfe9PcsutP87ll16UK978hj3HLzh/RQ6dPz///IN/y41rbs7FF65MknSlK09v2ZKzli/LW371jXtef+45Z+fP/uJT+dd/uzaXX3JRpk/vzc23/jhJ8uHfem/mzJm957UvO/vMfO3r38wTTz4l6QYAdBR7ugEAdJBpPdOyZcszeWrDxr2On3XmGfnIB9+Xo49aVPq9t952R5Jk+bLTMjAwuNf/lp95evJ8i+iLXfJ8Em63gw+ak5NPXJodO4by0MOPPL+uniTJT+//+V6vXTB/Xn7vI7+VFeeePeGfGQCgilS6AQB0kNe++vJ886qr8xef/G85cemSnHziCTn5pKVZdOTCl/zeXz7+RJLkM5/7Qulrnt68Za9/9/XNyPz588a9bsGC+UmSTU9vztIkl196Ye657yf5n1/5+1xz7fU5+aSlOfnEpTn+uGPS83xCDgCgk0i6AQB0kEsvviCLFy/M9avX5N6f/Cz33rc+SXLYoQvypje+NmedeUbp9+4YGkqS/Nb73p3+/r7C1/T29u71776+4tdNf/51O3fuTJIcd+wx+U9/9Af50XWrs+7ue/MvP7gm//KDazJr1sxcetEFec2rLkt3tyYMAKBzSLoBAHSYpUuOz9Ilx2d0dDQPPfxI1t19X1atvjFf+vLX8ge/86EsOf7Ywu/r75uRJFmwYN5+VcblBUm1F9udwJs+/f9OOz10wfz82lvenF97y5vz5JMbcs99P8l1q9fku//8r+nu7slrXnXpBH5aAIBq8udEAIAO1d3dneOOPSZvfuNr8753vzNjY2O54867Sl9/5MIjkiQP/OKhcV8bGRnJwMDAuOPbtg3k2eeeG3d8w/N7yh26YHzraZIcfvihueySC/NHf/Af09vbmx/fua6hnw0AoOok3QAAOsRDDz+SP/uL/5rrb7hp3Nd2t4Xu3j+tu7t7XJXay846M0ly7aobxn1t1eo1+diffDx33Hn3uPdedf2avf69ecuWrP/Z/Zk5sz/HHH1UhoaG8qn/96/y5b/7+rjvnTZt2vPrsa8bANBZtJcCAHSIxYuOTG9vb/7xW9/Jw488muOOPSbTpk3Lpk2bcv0NN2XGjOk5f8W5yfNTQ5/asDHfuPLqHDRnTi675BU57dSTc+45Z+WWW3+cz3zuC7ng/Jdn2rRpuf/nD2TtLbdn8aKFOe3Uk/b6zIMOmpPb71iXDRs35cSlx2dgcHtWXb8mQ0M786Y3vDY9PT3p6enJUYsXZ/WNN2Xrc1uz7IzTMrO/P89t3Zq1t9yenTt35pKLLmjTbw0AYGp0rV+/fqzdiwAAoDkGBgbyg3+7LnfdfW+2PPNMRkZGc/DBB+WkpUty+aUX5fDDDk2S3HPf+nz9H6/K1m1bM/eQQ/JHH/2d9M2YkdHR0ay+cW1uuvnWPP7EU0nGMm/u3Jx15hl55eUXp2/GjD2f9ad/9l+SJP/P7384V139/dy3/qfZPrg9CxbMz8UXrsxFrzh/z2tHR0ez6oabcsutt2fjxqezffv2zJkzO4sXHZlLL35FTjrxhDb8tgAApo6kGwAAE7I76fbx//zH7V4KAEDl2NMNAAAAAJpM0g0AAAAAmkzSDQAAAACazJ5uAAAAANBkKt0AAAAAoMkk3QAAAACgySTdAAAAAKDJJN0AAAAAoMkk3QAAAACgySTdAAAAAKDJJN0AAAAAoMkk3QAAAACgyf5/Cyt5onAn7F4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "number_of_steps = 20000\n", "record_period = 400\n", "\n", "\"\"\"\n", "This test is checking if DQN will eventually solve FrozenLake-v1\n", "whose observations need to be wrapped in a one-hot representation.\n", "\"\"\"\n", "env = OneHotObservationsFromDiscrete(\n", " GymEnvironment(\n", " \"FrozenLake-v1\", is_slippery=False, map_name=\"4x4\",\n", " )\n", ")\n", "\n", "action_representation_module = OneHotActionTensorRepresentationModule(\n", " max_number_actions= env.action_space.n,\n", ")\n", "\n", "assert isinstance(env.action_space, DiscreteSpace)\n", "state_dim = env.observation_space.n\n", "agent = PearlAgent(\n", " policy_learner=DeepQLearning(\n", " state_dim=state_dim,\n", " action_space=env.action_space,\n", " hidden_dims=[64, 64],\n", " training_rounds=1,\n", " action_representation_module=action_representation_module\n", " ),\n", " replay_buffer=FIFOOffPolicyReplayBuffer(1000),\n", ")\n", "\n", "info = online_learning(\n", " agent=agent,\n", " env=env,\n", " number_of_steps=number_of_steps,\n", " print_every_x_steps=100,\n", " record_period=record_period,\n", " learn_after_episode=False,\n", ")\n", "torch.save(info[\"return\"], \"DQN-return.pt\")\n", "plt.plot(record_period * np.arange(len(info[\"return\"])), info[\"return\"], label=\"DQN\")\n", "plt.xlabel(\"steps\")\n", "plt.ylabel(\"return\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "custom": { "cells": [], "metadata": { "custom": { "cells": [], "metadata": { "custom": { "cells": [], "metadata": { "custom": { "cells": [], "metadata": { "custom": { "cells": [], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "include_colab_link": true, "provenance": [] }, "fileHeader": "", "fileUid": "4316417e-7688-45f2-a94f-24148bfc425e", "isAdHoc": false, "kernelspec": { "display_name": "pearl (local)", "language": "python", "name": "pearl_local" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 2 }, "fileHeader": "", "fileUid": "1158a851-91bb-437e-a391-aba92448f600", "indentAmount": 2, "isAdHoc": false, "language_info": { "name": "plaintext" } }, "nbformat": 4, "nbformat_minor": 2 }, "fileHeader": "", "fileUid": "ddf9fa29-09d7-404d-bc1b-62a580952524", "indentAmount": 2, "isAdHoc": false, "language_info": { "name": "plaintext" } }, "nbformat": 4, "nbformat_minor": 2 }, "fileHeader": "", "fileUid": "e751f6fa-be9e-4f88-9fef-36812551b013", "indentAmount": 2, "isAdHoc": false, "kernelspec": { "display_name": "pearl2", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.18" } }, "nbformat": 4, "nbformat_minor": 2 }, "fileHeader": "", "fileUid": "a6d73a55-c990-483c-9ad3-c926ad0c935a", "indentAmount": 2, "isAdHoc": false, "language_info": { "name": "plaintext" } }, "nbformat": 4, "nbformat_minor": 2 }, "indentAmount": 2 }, "nbformat": 4, "nbformat_minor": 2 }