From 235ac7f99496ff0a01079bb335a95e6a9f66da84 Mon Sep 17 00:00:00 2001 From: vmoens Date: Fri, 25 Nov 2022 10:01:17 +0000 Subject: [PATCH 1/2] init --- tutorials/README.md | 12 +- tutorials/coding_ddpg.ipynb | 1552 ---------------------- tutorials/coding_dqn.ipynb | 1580 ----------------------- tutorials/demo.ipynb | 2050 ------------------------------ tutorials/envs.ipynb | 1935 ---------------------------- tutorials/multi_task.ipynb | 560 -------- tutorials/tensordict.ipynb | 1345 -------------------- tutorials/tensordictmodule.ipynb | 1244 ------------------ tutorials/train_demo.ipynb | 41 - 9 files changed, 6 insertions(+), 10313 deletions(-) delete mode 100644 tutorials/coding_ddpg.ipynb delete mode 100644 tutorials/coding_dqn.ipynb delete mode 100644 tutorials/demo.ipynb delete mode 100644 tutorials/envs.ipynb delete mode 100644 tutorials/multi_task.ipynb delete mode 100644 tutorials/tensordict.ipynb delete mode 100644 tutorials/tensordictmodule.ipynb delete mode 100644 tutorials/train_demo.ipynb diff --git a/tutorials/README.md b/tutorials/README.md index 9c1786cb59b..d774f6b7566 100644 --- a/tutorials/README.md +++ b/tutorials/README.md @@ -2,20 +2,20 @@ Get a sense of TorchRL functionalities through our tutorials. -For an overview of TorchRL, try the [TorchRL demo](demo.ipynb). +For an overview of TorchRL, try the [TorchRL demo](https://pytorch.org/rl/tutorials/torchrl_demo.html). -Make sure you test the [TensorDict tutorial](tensordict.ipynb) to see what TensorDict +Make sure you test the [TensorDict tutorial](https://pytorch.org/rl/tutorials/tensordict_tutorial.html) to see what TensorDict is about and what it can do. -To understand how to use `TensorDict` with pytorch modules, make sure to check out the [TensorDictModule tutorial](tensordictmodule.ipynb). +To understand how to use `TensorDict` with pytorch modules, make sure to check out the [TensorDictModule tutorial](https://pytorch.org/rl/tutorials/tensordict_module.html). -Check out the [environment tutorial](envs.ipynb) for a deep dive in the envs +Check out the [environment tutorial](https://pytorch.org/rl/tutorials/torch_envs.html) for a deep dive in the envs functionalities. -Read through our short tutorial on [multi-tasking](multi_task.ipynb) to see how you can execute diverse +Read through our short tutorial on [multi-tasking](https://pytorch.org/rl/tutorials/multi_task.html) to see how you can execute diverse tasks in batch mode and build task-specific policies. This tutorial is also a good example of the advanced features of TensorDict stacking and indexing. -Finally, the [DDPG tutorial](coding_ddpg.ipynb) and [DQN tutorial](coding_dqn.ipynb) will guide you through the steps to code +Finally, the [DDPG tutorial](https://pytorch.org/rl/tutorials/coding_ddpg.html) and [DQN tutorial](https://pytorch.org/rl/tutorials/coding_dqn.html) will guide you through the steps to code your first RL algorithms with TorchRL. diff --git a/tutorials/coding_ddpg.ipynb b/tutorials/coding_ddpg.ipynb deleted file mode 100644 index 2d564ffddfa..00000000000 --- a/tutorials/coding_ddpg.ipynb +++ /dev/null @@ -1,1552 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "4ba483b7", - "metadata": { - "pycharm": { - "name": "#%% md\n" - }, - "tags": [] - }, - "source": [ - "[](https://colab.research.google.com/github/pytorch/rl/blob/main/tutorials/coding_ddpg.ipynb)\n", - "\n", - "# Coding DDPG using TorchRL\n", - "\n", - "This tutorial will guide you through the steps to code DDPG from scratch.\n", - "DDPG ([Deep Deterministic Policy Gradient](https://arxiv.org/abs/1509.02971)) is a simple continuous control algorithm. It essentially consists in learning a parametric value function for an action-observation pair, and then learning a policy that outputs actions that maximise this value function given a certain observation.\n", - "\n", - "In this tutorial, you will learn:\n", - "- how to build an environment in TorchRL, including transforms (e.g. data normalization) and parallel execution;\n", - "- how to design a policy and value network;\n", - "- how to collect data from your environment efficiently and store them in a replay buffer;\n", - "- how to store trajectories (and not transitions) in your replay buffer);\n", - "- and finally how to evaluate your model.\n", - "\n", - "This tutorial assumes the reader is familiar with some of TorchRL primitives, such as `TensorDict` and `TensorDictModules`, although it should be sufficiently transparent to be understood without a deep understanding of these classes.\n", - "\n", - "We do not aim at giving a SOTA implementation of the algorithm, but rather to provide a high-level illustration of TorchRL features in the context of this algorithm." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d9661521", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "!pip install functorch\n", - "!pip install \"gym[classic_control]\"\n", - "!pip install dm_control matplotlib tqdm\n", - "!pip install torchrl" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "cc36646e", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "# Make all the necessary imports for training\n", - "\n", - "from copy import deepcopy\n", - "from typing import Optional\n", - "\n", - "import numpy as np\n", - "import torch\n", - "import torch.cuda\n", - "import tqdm\n", - "from matplotlib import pyplot as plt\n", - "from torch import nn\n", - "from torch import optim\n", - "\n", - "from torchrl.collectors import MultiaSyncDataCollector\n", - "from torchrl.data import CompositeSpec\n", - "from torchrl.data import (\n", - " TensorDictPrioritizedReplayBuffer,\n", - " TensorDictReplayBuffer,\n", - ")\n", - "from torchrl.data.postprocs import MultiStep\n", - "from torchrl.data.replay_buffers.storages import LazyMemmapStorage\n", - "from torchrl.envs import (\n", - " ParallelEnv,\n", - " EnvCreator,\n", - " CatTensors,\n", - " ObservationNorm,\n", - " DoubleToFloat,\n", - ")\n", - "from torchrl.envs.libs.dm_control import DMControlEnv\n", - "from torchrl.envs.libs.gym import GymEnv\n", - "from torchrl.envs.transforms import RewardScaling, TransformedEnv\n", - "from torchrl.envs.utils import set_exploration_mode, step_mdp\n", - "from torchrl.modules import (\n", - " OrnsteinUhlenbeckProcessWrapper,\n", - " MLP,\n", - " TensorDictModule,\n", - " ProbabilisticActor,\n", - " ValueOperator,\n", - ")\n", - "from torchrl.modules.distributions.continuous import TanhDelta\n", - "from torchrl.objectives.utils import hold_out_net\n", - "from torchrl.trainers import Recorder\n", - "from torchrl.trainers.helpers.envs import (\n", - " get_stats_random_rollout,\n", - ")\n" - ] - }, - { - "cell_type": "markdown", - "id": "023b8113", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Environment\n", - "\n", - "Let us start by building the environment.\n", - "\n", - "For this example, we will be using the cheetah task. The goal is to make a half-cheetah run as fast as possible.\n", - "\n", - "In TorchRL, one can create such a task by relying on dm_control or gym:\n", - "\n", - "```python\n", - "env = GymEnv(\"HalfCheetah-v4\")\n", - "```\n", - "\n", - "or\n", - "\n", - "```python\n", - "env = DMControlEnv(\"cheetah\", \"run\")\n", - "```\n", - "\n", - "We only consider the state-based environment, but if one wishes to use a pixel-based environment, this can be done via the keyword argument `from_pixels=True` which is passed when calling `GymEnv` or `DMControlEnv`." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "77f085a1", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def make_env():\n", - " \"\"\"\n", - " Create a base env\n", - " \"\"\"\n", - " global env_library\n", - " global env_name\n", - "\n", - " if backend == \"dm_control\":\n", - " env_name = \"cheetah\"\n", - " env_task = \"run\"\n", - " env_args = (env_name, env_task)\n", - " env_library = DMControlEnv\n", - " elif backend == \"gym\":\n", - " env_name = \"HalfCheetah-v4\"\n", - " env_args = (env_name, )\n", - " env_library = GymEnv\n", - " else:\n", - " raise NotImplementedError\n", - " \n", - "\n", - " env_kwargs = {\n", - " \"device\": device,\n", - " \"frame_skip\": frame_skip,\n", - " \"from_pixels\": from_pixels,\n", - " \"pixels_only\": from_pixels,\n", - " }\n", - " env = env_library(*env_args, **env_kwargs)\n", - " return env\n" - ] - }, - { - "cell_type": "markdown", - "id": "4f264720", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Transforms\n", - "\n", - "Now that we have a base environment, we may want to modify its representation to make it more policy-friendly.\n", - "\n", - "It is common in DDPG to rescale the reward using some heuristic value. We will multiply the reward by 5 in this example.\n", - "\n", - "If we are using dm_control, it is important also to transform the actions to double precision numbers as this is the dtype expected by the library.\n", - "\n", - "We also leave the possibility to normalize the states: we will take care of computing the normalizing constants later on." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "0a25944c", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "\n", - "def make_transformed_env(\n", - " env, stats=None,\n", - "):\n", - " \"\"\"\n", - " Apply transforms to the env (such as reward scaling and state normalization)\n", - " \"\"\"\n", - "\n", - " env = TransformedEnv(env)\n", - " \n", - " # we append transforms one by one, although we might as well create the transformed environment using the `env = TransformedEnv(base_env, transforms)` syntax.\n", - " env.append_transform(RewardScaling(loc=0.0, scale=reward_scaling))\n", - "\n", - " double_to_float_list = []\n", - " double_to_float_inv_list = []\n", - " if env_library is DMControlEnv:\n", - " # DMControl requires double-precision\n", - " double_to_float_list += [\n", - " \"reward\",\n", - " ]\n", - " double_to_float_inv_list += [\"action\"]\n", - " \n", - " \n", - " # We concatenate all states into a single \"next_observation_vector\"\n", - " # even if there is a single tensor, it'll be renamed in \"next_observation_vector\". \n", - " # This facilitates the downstream operations as we know the name of the output tensor.\n", - " # In some environments (not half-cheetah), there may be more than one observation vector: in this case this code snippet will concatenate them all.\n", - " selected_keys = list(env.observation_spec.keys())\n", - " out_key = \"next_observation_vector\"\n", - " env.append_transform(CatTensors(in_keys=selected_keys, out_key=out_key))\n", - "\n", - " # we normalize the states\n", - " if stats is None:\n", - " _stats = {\"loc\": 0.0, \"scale\": 1.0}\n", - " else:\n", - " _stats = stats\n", - " env.append_transform(\n", - " ObservationNorm(**_stats, in_keys=[out_key], standard_normal=True)\n", - " )\n", - "\n", - " double_to_float_list.append(out_key)\n", - " env.append_transform(\n", - " DoubleToFloat(\n", - " in_keys=double_to_float_list, in_keys_inv=double_to_float_inv_list\n", - " )\n", - " )\n", - "\n", - " \n", - " return env\n" - ] - }, - { - "cell_type": "markdown", - "id": "ef0d4d25", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Parallel execution\n", - "\n", - "The following helper function allows us to run environments in parallel. One can choose between running each base env in a separate process and execute the transform in the main process, or execute the transforms in parallel.\n", - "To leverage the vectorization capabilities of PyTorch, we adopt the first method:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "8a3ed56b", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def parallel_env_constructor(\n", - " stats,\n", - " **env_kwargs,\n", - "):\n", - " if env_per_collector == 1:\n", - " env_creator = EnvCreator(\n", - " lambda: make_transformed_env(make_env(), stats, **env_kwargs)\n", - " )\n", - " return env_creator\n", - "\n", - " parallel_env = ParallelEnv(\n", - " num_workers=env_per_collector,\n", - " create_env_fn=EnvCreator(lambda: make_env()),\n", - " create_env_kwargs=None,\n", - " pin_memory=False,\n", - " )\n", - " env = make_transformed_env(parallel_env, stats, **env_kwargs)\n", - " return env\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "22a6c12b", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Normalization of the observations\n", - "\n", - "To compute the normalizing statistics, we run an arbitrary number of random steps in the environment and compute the mean and standard deviation of the collected observations:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "da37e308", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def get_stats_random_rollout(\n", - " proof_environment, key: Optional[str] = None\n", - "):\n", - " print(\"computing state stats\")\n", - " n = 0\n", - " td_stats = []\n", - " while n < init_env_steps:\n", - " _td_stats = proof_environment.rollout(max_steps=init_env_steps)\n", - " n += _td_stats.numel()\n", - " _td_stats_select = _td_stats.to_tensordict().select(key).cpu()\n", - " if not len(list(_td_stats_select.keys())):\n", - " raise RuntimeError(\n", - " f\"key {key} not found in tensordict with keys {list(_td_stats.keys())}\"\n", - " )\n", - " td_stats.append(_td_stats_select)\n", - " del _td_stats, _td_stats_select\n", - " td_stats = torch.cat(td_stats, 0)\n", - "\n", - " if key is None:\n", - " keyset_seedlist(proof_environment.observation_spec.keys())\n", - " key = keys.pop()\n", - " if len(keys):\n", - " raise RuntimeError(\n", - " f\"More than one key exists in the observation_specs: {[key] + keys} were found, \"\n", - " \"thus get_stats_random_rollout cannot infer which to compute the stats of.\"\n", - " )\n", - "\n", - " m = td_stats.get(key).mean(dim=0)\n", - " s = td_stats.get(key).std(dim=0)\n", - " m[s == 0] = 0.0\n", - " s[s == 0] = 1.0\n", - "\n", - " print(\n", - " f\"stats computed for {td_stats.numel()} steps. Got: \\n\"\n", - " f\"loc = {m}, \\n\"\n", - " f\"scale: {s}\"\n", - " )\n", - " if not torch.isfinite(m).all():\n", - " raise RuntimeError(\"non-finite values found in mean\")\n", - " if not torch.isfinite(s).all():\n", - " raise RuntimeError(\"non-finite values found in sd\")\n", - " stats = {\"loc\": m, \"scale\": s}\n", - " return stats\n", - "\n", - "\n", - "def get_env_stats():\n", - " \"\"\"\n", - " Gets the stats of an environment\n", - " \"\"\"\n", - " proof_env = make_transformed_env(make_env(), None)\n", - " proof_env.set_seed(seed)\n", - " stats = get_stats_random_rollout(\n", - " proof_env, key=\"next_observation_vector\",\n", - " )\n", - " # make sure proof_env is closed\n", - " proof_env.close()\n", - " return stats\n" - ] - }, - { - "cell_type": "markdown", - "id": "910b3570", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Building the model\n", - "\n", - "Let us now build the DDPG actor and QValue network." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "d96166cc", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def make_ddpg_actor(\n", - " stats,\n", - " device=\"cpu\",\n", - "):\n", - " proof_environment = make_transformed_env(make_env(), stats)\n", - "\n", - "\n", - " env_specs = proof_environment.specs\n", - " out_features = env_specs[\"action_spec\"].shape[0]\n", - "\n", - " actor_net = MLP(\n", - " num_cells=[num_cells] * num_layers,\n", - " activation_class=nn.Tanh,\n", - " out_features=out_features,\n", - " )\n", - " in_keys = [\"observation_vector\"]\n", - " out_keys = [\"param\"]\n", - "\n", - " actor_module = TensorDictModule(actor_net, in_keys=in_keys, out_keys=out_keys)\n", - "\n", - " # We use a ProbabilisticActor to make sure that we map the network output\n", - " # to the right space using a TanhDelta distribution.\n", - " actor = ProbabilisticActor(\n", - " module=actor_module,\n", - " dist_in_keys=[\"param\"],\n", - " spec=CompositeSpec(action=env_specs[\"action_spec\"]),\n", - " safe=True,\n", - " distribution_class=TanhDelta,\n", - " distribution_kwargs={\n", - " \"min\": env_specs[\"action_spec\"].space.minimum,\n", - " \"max\": env_specs[\"action_spec\"].space.maximum,\n", - " },\n", - " ).to(device)\n", - "\n", - " q_net = MLP(\n", - " num_cells=[num_cells] * num_layers,\n", - " activation_class=nn.Tanh,\n", - " out_features=1,\n", - " )\n", - "\n", - " in_keys = in_keys + [\"action\"]\n", - " qnet = ValueOperator(\n", - " in_keys=in_keys,\n", - " module=q_net,\n", - " ).to(device)\n", - "\n", - " # init: since we have lazy layers, we should run the network once to initialize them\n", - " with torch.no_grad(), set_exploration_mode(\"random\"):\n", - " td = proof_environment.rollout(max_steps=1000)\n", - " td = td.to(device)\n", - " actor(td)\n", - " qnet(td)\n", - "\n", - " return actor, qnet\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "65cd8254", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Evaluator: building your recorder object\n", - "\n", - "As the training data is obtained using some exploration strategy, the true performance of our algorithm needs to be assessed in deterministic mode. We do this using a dedicated class, `Recorder`, which executes the policy in the environment at a given frequency and returns some statistics obtained from these simulations.\n", - "The following helper function builds this object:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "0bbccfbc", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def make_recorder(actor_model_explore, stats):\n", - " base_env = make_env()\n", - " recorder = make_transformed_env(base_env, stats)\n", - " \n", - " recorder_obj = Recorder(\n", - " record_frames=1000,\n", - " frame_skip=frame_skip,\n", - " policy_exploration=actor_model_explore,\n", - " recorder=recorder,\n", - " exploration_mode=\"mean\",\n", - " record_interval=record_interval,\n", - " )\n", - " return recorder_obj\n" - ] - }, - { - "cell_type": "markdown", - "id": "39d57866", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Replay buffer\n", - "\n", - "Replay buffers come in two flavours: prioritized (where some error signal is used to give a higher likelihood of sampling to some items than others) and regular, circular experience replay.\n", - "\n", - "We also provide a special storage, names LazyMemmapStorage, that will store tensors on physical memory using a memory-mapped array. The following function takes care of creating the replay buffer with the desired hyperparameters:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "4259f6c9", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def make_replay_buffer(make_replay_buffer=3):\n", - " if prb:\n", - " replay_buffer = TensorDictPrioritizedReplayBuffer(\n", - " buffer_size,\n", - " alpha=0.7,\n", - " beta=0.5,\n", - " collate_fn=lambda x: x,\n", - " pin_memory=False,\n", - " prefetch=make_replay_buffer,\n", - " storage=LazyMemmapStorage(\n", - " buffer_size,\n", - " scratch_dir=buffer_scratch_dir,\n", - " device=device,\n", - " ),\n", - " )\n", - " else:\n", - " replay_buffer = TensorDictReplayBuffer(\n", - " buffer_size,\n", - " collate_fn=lambda x: x,\n", - " pin_memory=False,\n", - " prefetch=make_replay_buffer,\n", - " storage=LazyMemmapStorage(\n", - " buffer_size,\n", - " scratch_dir=buffer_scratch_dir,\n", - " device=device,\n", - " ),\n", - " )\n", - " return replay_buffer" - ] - }, - { - "cell_type": "markdown", - "id": "3f35f932", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Hyperparameters\n", - "After having written all our helper functions, it is now time to set the experiment hyperparameters:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "a247ea43", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "backend = \"dm_control\" # or \"gym\" \n", - "frame_skip = 2 # if this value is changed, the number of frames collected etc. need to be adjusted\n", - "from_pixels = False\n", - "reward_scaling = 5.0\n", - "\n", - "# execute on cuda if available\n", - "device = (\n", - " torch.device(\"cpu\")\n", - " if torch.cuda.device_count() == 0\n", - " else torch.device(\"cuda:0\")\n", - ")\n", - "\n", - "init_env_steps = 1000 # number of random steps used as for stats computation\n", - "env_per_collector = 2 # number of environments in each data collector\n", - "\n", - "env_library = None # overwritten because global in env maker\n", - "env_name = None # overwritten because global in env maker\n", - "\n", - "exp_name = \"cheetah\"\n", - "annealing_frames = 1000000 // frame_skip # Number of frames before OU noise becomes null\n", - "lr=5e-4\n", - "weight_decay = 0.0\n", - "total_frames = 1000000 // frame_skip\n", - "init_random_frames = 5000 // frame_skip # Number of random frames used as warm-up\n", - "optim_steps_per_batch = 32 # Number of iterations of the inner loop\n", - "batch_size = 128\n", - "frames_per_batch = 1000 // frame_skip # Number of frames returned by the collector at each iteration of the outer loop\n", - "gamma = 0.99\n", - "tau = 0.005 # Decay factor for the target network\n", - "prb = True # If True, a Prioritized replay buffer will be used\n", - "buffer_size = 1000000 // frame_skip # Number of frames stored in the buffer\n", - "buffer_scratch_dir = \"/tmp/\"\n", - "n_steps_forward = 3\n", - "\n", - "record_interval = 10 # record every 10 batch collected\n", - "\n", - "# Network specs\n", - "num_cells = 64\n", - "num_layers = 2\n", - "\n", - "seed = 0" - ] - }, - { - "cell_type": "markdown", - "id": "a8d42b36", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Initialization\n", - "To initialize the experiment, we first acquire the observation statistics, then build the networks, wrap them in an exploration wrapper (following the seminal DDPG paper, we used an Ornstein-Uhlenbeck process to add noise to the sampled actions)." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "41023a05", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "computing state stats\n", - "stats computed for 1000 steps. Got: \n", - "loc = tensor([-0.1162, 0.0583, 0.0144, 0.0348, -0.0349, -0.0851, -0.1215, -0.1039,\n", - " -0.1680, 0.0027, -0.0008, 0.0243, 0.0047, -0.0121, -0.0219, -0.0045,\n", - " -0.0048]), \n", - "scale: tensor([0.0321, 0.0595, 0.1625, 0.1695, 0.1758, 0.1003, 0.1615, 0.1825, 0.4745,\n", - " 0.4449, 1.1256, 3.8970, 4.9873, 5.0538, 2.6160, 3.8959, 4.0352])\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/vmoens/venv/rl/lib/python3.8/site-packages/torch/nn/modules/lazy.py:180: UserWarning: Lazy modules are a new feature under heavy development so changes to the API or functionality can happen at any moment.\n", - " warnings.warn('Lazy modules are a new feature under heavy development '\n" - ] - } - ], - "source": [ - "torch.manual_seed(0)\n", - "np.random.seed(0)\n", - "\n", - "# get stats for normalization\n", - "stats = get_env_stats()\n", - "\n", - "# Actor and qnet instantiation\n", - "actor, qnet = make_ddpg_actor(\n", - " stats=stats,\n", - " device=device,\n", - ")\n", - "if device == torch.device(\"cpu\"):\n", - " actor.share_memory()\n", - "# Target network\n", - "qnet_target = deepcopy(qnet).requires_grad_(False)\n", - "\n", - "# Exploration wrappers:\n", - "actor_model_explore = OrnsteinUhlenbeckProcessWrapper(\n", - " actor,\n", - " annealing_num_steps=annealing_frames,\n", - ").to(device)\n", - "if device == torch.device(\"cpu\"):\n", - " actor_model_explore.share_memory()\n", - "\n", - "# Environment setting:\n", - "create_env_fn = parallel_env_constructor(\n", - " stats=stats,\n", - ")\n" - ] - }, - { - "cell_type": "markdown", - "id": "a855d1bd", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Data collector\n", - "\n", - "Creating the data collector is a crucial step in an RL experiment.\n", - "TorchRL provides a couple of classes to collect data in parallel. Here we will use `MultiaSyncDataCollector`, a data collector that will be executed in an async manner (i.e. data will be collected while the policy is being optimized).\n", - "\n", - "The parameters to specify are: the list of environment creation functions, the policy, the total number of frames before the collector is considered empty, the maximum number of frames per trajectory (useful for non-terminating environments, like dm_control ones).\n", - "One should also pass the number of frames in each batch collected, the number of random steps executed independently from the policy, the devices used for policy execution and data transmission.\n", - "\n", - "The `MultiStep` object passed as postproc makes it so that the rewards of the n upcoming steps are added (with some discount factor) and the next observation is changed to be the n-step forward observation." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "7036d612", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3018685293" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Batch collector:\n", - "collector = MultiaSyncDataCollector(\n", - " create_env_fn=[create_env_fn, create_env_fn],\n", - " policy = actor_model_explore,\n", - " total_frames = total_frames,\n", - " max_frames_per_traj = 1000,\n", - " frames_per_batch = frames_per_batch,\n", - " init_random_frames = init_random_frames,\n", - " reset_at_each_iter = False,\n", - " postproc = MultiStep(n_steps_max=n_steps_forward, gamma=gamma) if n_steps_forward > 0 else None,\n", - " split_trajs = True,\n", - " devices = [device, device], # device for execution\n", - " passing_devices = [device, device], # device where data will be stored and passed\n", - " seed = None,\n", - " pin_memory = False,\n", - " update_at_each_batch = False,\n", - " exploration_mode = \"random\",\n", - ")\n", - "collector.set_seed(seed)" - ] - }, - { - "cell_type": "markdown", - "id": "fe149c1a", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "source": [ - "We can now create the replay buffer as part of the initialization" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "a497e2d7", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "# Replay buffer:\n", - "replay_buffer = make_replay_buffer()\n", - "\n", - "# trajectory recorder\n", - "recorder = make_recorder(actor_model_explore, stats)" - ] - }, - { - "cell_type": "markdown", - "id": "8862288c", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Finally, we will use the Adam optimizer for the policy and value network, with the same learning rate for both." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "3bbaa57b", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "# Optimizers\n", - "optimizer_actor = optim.Adam(\n", - " actor.parameters(), lr=lr, weight_decay=weight_decay\n", - ")\n", - "optimizer_qnet = optim.Adam(\n", - " qnet.parameters(), lr=lr, weight_decay=weight_decay\n", - ")\n", - "total_collection_steps = total_frames // frames_per_batch\n", - "\n", - "scheduler1 = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer_actor, T_max=total_collection_steps)\n", - "scheduler2 = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer_qnet, T_max=total_collection_steps)\n" - ] - }, - { - "cell_type": "markdown", - "id": "bfadc9d1", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Time to train the policy!\n", - "\n", - "Some notes about the following cell:\n", - "- `hold_out_net` is a TorchRL context manager that temporarily sets requires_grad to False for a set of network parameters. This is used to prevent `backward` to write gradients on parameters that need not to be differentiated given the loss at hand.\n", - "- The value network is designed using the `ValueOperator` TensorDictModule subclass. This class will write a `\"state_action_value\"` if one of its `in_keys` is named \"action\", otherwise it will assume that only the state-value is returned and the output key will simply be `\"state_value\"`. In the case of DDPG, the value if of the state-action pair, hence the first name is used.\n", - "- The `step_mdp` helper function returns a new TensorDict that essentially does the `obs = next_obs`. In other words, it will return a new tensordict where the values that are related to the next state (next observations of various type) are selected and written as if they were current. This makes it possible to pass this new tensordict to the policy or value network (which expects an `\"observation_vector\"` key, not `\"next_observation_vector\"`.\n", - "- When using prioritized replay buffer, a priority key is added to the sampled tensordict (named `\"td_error\"` by default). Then, this TensorDict will be fed back to the replay buffer using the `update_priority` method. Under the hood, this method will read the index present in the TensorDict as well as the priority value, and update its list of priorities at these indices.\n", - "- TorchRL provides optimized versions of the loss functions (such as this one) where one only needs to pass a sampled tensordict and obtains a dictionary of losses and metadata in return (see `torchrl.objectives` for more context). Here we write the full loss function in the optimization loop for transparency. Similarly, the target network updates are written explicitely but TorchRL provides a couple of dedicated classes for this (see `torchrl.objectives.SoftUpdate` and `torchrl.objectives.HardUpdate`).\n", - "- After each collection of data, we call `collector.update_policy_weights_()`, which will update the policy network weights on the data collector. If the code is executed on cpu or with a single cuda device, this part can be ommited. If the collector is executed on another device, then its weights must be synced with those on the main, training process and this method should be incorporated in the training loop (ideally early in the loop in async settings, and at the end of it in sync settings)." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "d166dd96", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 0%|▏ | 500/500000 [00:00<10:41, 778.65it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Creating a MemmapStorage...\n", - "The storage is being created: \n", - "\tdone: /tmp/4phaxkx2, 0.476837158203125 Mb of storage (size: [500000, 1]).\n", - "\tobservation_vector: /tmp/abd9kbth, 32.4249267578125 Mb of storage (size: [500000, 17]).\n", - "\ttraj_ids: /tmp/ut1pard2, 3.814697265625 Mb of storage (size: [500000, 1]).\n", - "\tstep_count: /tmp/hb9gzrc2, 1.9073486328125 Mb of storage (size: [500000, 1]).\n", - "\taction: /tmp/o8uv2l_9, 11.444091796875 Mb of storage (size: [500000, 6]).\n", - "\tnext_observation_vector: /tmp/ml8yh3kl, 32.4249267578125 Mb of storage (size: [500000, 17]).\n", - "\tmask: /tmp/dfn8t1vs, 0.476837158203125 Mb of storage (size: [500000, 1]).\n", - "\tgamma: /tmp/xezrkyok, 1.9073486328125 Mb of storage (size: [500000, 1]).\n", - "\tsteps_to_next_obs: /tmp/p8h4c098, 3.814697265625 Mb of storage (size: [500000, 1]).\n", - "\tnonterminal: /tmp/rm4y1d1g, 0.476837158203125 Mb of storage (size: [500000, 1]).\n", - "\toriginal_reward: /tmp/uwhmiv0w, 1.9073486328125 Mb of storage (size: [500000, 1]).\n", - "\treward: /tmp/ua2mtbrr, 1.9073486328125 Mb of storage (size: [500000, 1]).\n", - "\tindex: /tmp/44jkoz74, 1.9073486328125 Mb of storage (size: [500000, 1]).\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "reward: 0.8416 (r0 = 0.2384), reward eval: reward: 0.6735: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 500000/500000 [10:46<00:00, 916.85it/s]" - ] - } - ], - "source": [ - "rewards = []\n", - "rewards_eval = []\n", - "\n", - "# Main loop\n", - "norm_factor_training = sum(gamma**i for i in range(n_steps_forward)) if n_steps_forward else 1\n", - "\n", - "collected_frames = 0\n", - "pbar = tqdm.tqdm(total=total_frames)\n", - "r0 = None\n", - "for i, tensordict in enumerate(collector):\n", - "\n", - " # update weights of the inference policy\n", - " collector.update_policy_weights_()\n", - " \n", - " if r0 is None:\n", - " r0 = tensordict[\"reward\"].mean().item()\n", - " pbar.update(tensordict.numel())\n", - " \n", - " # extend the replay buffer with the new data\n", - " if \"mask\" in tensordict.keys():\n", - " # if multi-step, a mask is present to help filter padded values\n", - " current_frames = tensordict[\"mask\"].sum()\n", - " tensordict = tensordict[tensordict.get(\"mask\").squeeze(-1)]\n", - " else:\n", - " tensordict = tensordict.view(-1)\n", - " current_frames = tensordict.numel()\n", - " collected_frames += current_frames\n", - " replay_buffer.extend(tensordict.cpu())\n", - "\n", - " # optimization steps\n", - " if collected_frames >= init_random_frames:\n", - " for j in range(optim_steps_per_batch):\n", - " # sample from replay buffer\n", - " sampled_tensordict = replay_buffer.sample(batch_size)\n", - "\n", - " # compute loss for qnet and backprop\n", - " with hold_out_net(actor):\n", - " # get next state value\n", - " next_tensordict = step_mdp(sampled_tensordict)\n", - " qnet_target(actor(next_tensordict))\n", - " next_value = next_tensordict[\"state_action_value\"]\n", - " assert not next_value.requires_grad\n", - " value_est = (\n", - " sampled_tensordict[\"reward\"]\n", - " + gamma * (1 - sampled_tensordict[\"done\"].float()) * next_value\n", - " )\n", - " value = qnet(sampled_tensordict)[\"state_action_value\"]\n", - " value_loss = (value - value_est).pow(2).mean()\n", - " # we write the td_error in the sampled_tensordict for priority update\n", - " # because the indices of the samples is tracked in sampled_tensordict\n", - " # and the replay buffer will know which priorities to update.\n", - " sampled_tensordict[\"td_error\"] = (value - value_est).pow(2).detach()\n", - " value_loss.backward()\n", - " \n", - " optimizer_qnet.step()\n", - " optimizer_qnet.zero_grad()\n", - "\n", - " # compute loss for actor and backprop: the actor must maximise the state-action value, hence the loss is the neg value of this.\n", - " sampled_tensordict_actor = sampled_tensordict.select(*actor.in_keys)\n", - " with hold_out_net(qnet):\n", - " qnet(actor(sampled_tensordict_actor))\n", - " actor_loss = -sampled_tensordict_actor[\"state_action_value\"]\n", - " actor_loss.mean().backward()\n", - "\n", - " optimizer_actor.step()\n", - " optimizer_actor.zero_grad()\n", - "\n", - " # update qnet_target params\n", - " for (p_in, p_dest) in zip(qnet.parameters(), qnet_target.parameters()):\n", - " p_dest.data.copy_(tau * p_in.data + (1 - tau) * p_dest.data)\n", - " for (b_in, b_dest) in zip(qnet.buffers(), qnet_target.buffers()):\n", - " b_dest.data.copy_(tau * b_in.data + (1 - tau) * b_dest.data)\n", - "\n", - " # update priority\n", - " if prb:\n", - " replay_buffer.update_priority(sampled_tensordict)\n", - "\n", - " rewards.append((i, tensordict['reward'].mean().item() / norm_factor_training / frame_skip))\n", - " td_record = recorder(None)\n", - " if td_record is not None:\n", - " rewards_eval.append((i, td_record[\"r_evaluation\"]))\n", - " if len(rewards_eval):\n", - " pbar.set_description(f\"reward: {rewards[-1][1]: 4.4f} (r0 = {r0: 4.4f}), reward eval: reward: {rewards_eval[-1][1]: 4.4f}\")\n", - "\n", - " # update the exploration strategy\n", - " actor_model_explore.step(current_frames)\n", - " if collected_frames >= init_random_frames:\n", - " scheduler1.step()\n", - " scheduler2.step()\n", - "\n", - "collector.shutdown()" - ] - }, - { - "cell_type": "markdown", - "id": "dca08016", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Experiment results\n", - "We make a simple plot of the average rewards during training. We can observe that our policy learned quite well to solve the task." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "d5d9ed26", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "reward: 0.8416 (r0 = 0.2384), reward eval: reward: 0.6735: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 500000/500000 [11:00<00:00, 916.85it/s]" - ] - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "plt.plot(*zip(*rewards), label=\"training\")\n", - "plt.plot(*zip(*rewards_eval), label=\"eval\")\n", - "plt.legend()\n", - "plt.xlabel(\"iter\")\n", - "plt.ylabel(\"reward\")\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "id": "7bb073ea", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "# Sampling trajectories and using TD(lambda)\n", - "TD(lambda) is known to be less biased than the regular TD-error we used in the previous example.\n", - "To use it, however, we need to sample trajectories and not single transitions.\n", - "\n", - "We modify the previous example to make this possible.\n", - "\n", - "The first modification consists in building a replay buffer that stores trajectories (and not transitions).\n", - "We'll collect trajectories of (at most) 250 steps (note that the total trajectory length is actually 1000, but we collect batches of 500 transitions obtained over 2 environments running in parallel, hence only 250 steps per trajectory are collected at any given time). Hence, we'll devide our replay buffer size by 250:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "67691ca2", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the new buffer size is 200\n", - "the new batch size for trajectories is 4\n" - ] - } - ], - "source": [ - "buffer_size = 100000 // frame_skip // 250\n", - "print(\"the new buffer size is\", buffer_size)\n", - "batch_size_traj = max(4, batch_size // 250)\n", - "print(\"the new batch size for trajectories is\", batch_size_traj)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "fe47b65e", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "n_steps_forward = 0 # disable multi-step for simplicity" - ] - }, - { - "cell_type": "markdown", - "id": "529582b3", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "The following code is identical to the initialization we made earlier:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "2763e12e", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "computing state stats\n", - "stats computed for 1000 steps. Got: \n", - "loc = tensor([-0.1162, 0.0583, 0.0144, 0.0348, -0.0349, -0.0851, -0.1215, -0.1039,\n", - " -0.1680, 0.0027, -0.0008, 0.0243, 0.0047, -0.0121, -0.0219, -0.0045,\n", - " -0.0048]), \n", - "scale: tensor([0.0321, 0.0595, 0.1625, 0.1695, 0.1758, 0.1003, 0.1615, 0.1825, 0.4745,\n", - " 0.4449, 1.1256, 3.8970, 4.9873, 5.0538, 2.6160, 3.8959, 4.0352])\n" - ] - } - ], - "source": [ - "torch.manual_seed(0)\n", - "np.random.seed(0)\n", - "\n", - "# get stats for normalization\n", - "stats = get_env_stats()\n", - "\n", - "# Actor and qnet instantiation\n", - "actor, qnet = make_ddpg_actor(\n", - " stats=stats,\n", - " device=device,\n", - ")\n", - "if device == torch.device(\"cpu\"):\n", - " actor.share_memory()\n", - "# Target network\n", - "qnet_target = deepcopy(qnet).requires_grad_(False)\n", - "\n", - "# Exploration wrappers:\n", - "actor_model_explore = OrnsteinUhlenbeckProcessWrapper(\n", - " actor,\n", - " annealing_num_steps=annealing_frames,\n", - ").to(device)\n", - "if device == torch.device(\"cpu\"):\n", - " actor_model_explore.share_memory()\n", - "\n", - "# Environment setting:\n", - "create_env_fn = parallel_env_constructor(\n", - " stats=stats,\n", - ")\n", - "# Batch collector:\n", - "collector = MultiaSyncDataCollector(\n", - " create_env_fn=[create_env_fn, create_env_fn],\n", - " policy = actor_model_explore,\n", - " total_frames = total_frames,\n", - " max_frames_per_traj = 1000,\n", - " frames_per_batch = frames_per_batch,\n", - " init_random_frames = init_random_frames,\n", - " reset_at_each_iter = False,\n", - " postproc = MultiStep(n_steps_max=n_steps_forward, gamma=gamma) if n_steps_forward > 0 else None,\n", - " split_trajs = True,\n", - " devices = [device, device], # device for execution\n", - " passing_devices = [device, device], # device where data will be stored and passed\n", - " seed = None,\n", - " pin_memory = False,\n", - " update_at_each_batch = False,\n", - " exploration_mode = \"random\",\n", - ")\n", - "collector.set_seed(seed)\n", - "\n", - "# Replay buffer:\n", - "replay_buffer = make_replay_buffer(0)\n", - "\n", - "# trajectory recorder\n", - "recorder = make_recorder(actor_model_explore, stats)\n", - "\n", - "\n", - "# Optimizers\n", - "optimizer_actor = optim.Adam(\n", - " actor.parameters(), lr=lr, weight_decay=weight_decay\n", - ")\n", - "optimizer_qnet = optim.Adam(\n", - " qnet.parameters(), lr=lr, weight_decay=weight_decay\n", - ")\n", - "total_collection_steps = total_frames // frames_per_batch\n", - "\n", - "scheduler1 = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer_actor, T_max=total_collection_steps)\n", - "scheduler2 = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer_qnet, T_max=total_collection_steps)\n" - ] - }, - { - "cell_type": "markdown", - "id": "da31dbeb", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "The training loop needs to be modified.\n", - "First, whereas before extending the replay buffer we used to flatten the collected data, this won't be the case anymore.\n", - "To understand why, let's check the output shape of the data collector:\n", - "\n", - "```python\n", - "for data in collector:\n", - " print(data.shape)\n", - " break\n", - "```\n", - "```\n", - "torch.Size([2, 250])\n", - "```\n", - "\n", - "We see that our data has shape `[2, 250]` as expected: 2 envs, each returning 250 frames.\n", - "\n", - "Let's import the td_lambda function" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "1e1dc1e3", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "from torchrl.objectives.value.functional import vec_td_lambda_advantage_estimate\n", - "lmbda = 0.95" - ] - }, - { - "cell_type": "markdown", - "id": "7b0fdf8e", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "The training loop is roughly the same as before, with the exception that we don't flatten the collected data.\n", - "Also, the sampling from the replay buffer is slightly different:\n", - "We will collect at minimum four trajectories, compute the returns (TD(lambda)), then sample from these the values we'll be using to compute gradients. This ensures that do not have batches that are 'too big' but still compute an accurate return.\n", - "\n", - "Note that when storing tensordicts the replay buffer, we must change their batch size: indeed, we will be storing an \"index\" (and possibly an priority) key in the stored tensordicts that will not have a time dimension. Because of this, when sampling from the replay buffer, we remove the keys that do not have a time dimension, change the batch size to `torch.Size([batch, time])`, compute our loss and then revert the batch size to `torch.Size([batch])`." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "bb3b6700", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Creating a MemmapStorage...\n", - "The storage is being created: \n", - "\tstep_count: /tmp/4dzr5r3g, 0.19073486328125 Mb of storage (size: [200, 250, 1]).\n", - "\tobservation_vector: /tmp/wlhqv8be, 3.24249267578125 Mb of storage (size: [200, 250, 17]).\n", - "\taction: /tmp/gqj9h7oq, 1.1444091796875 Mb of storage (size: [200, 250, 6]).\n", - "\treward: /tmp/3cy1mewy, 0.19073486328125 Mb of storage (size: [200, 250, 1]).\n", - "\tnext_observation_vector: /tmp/tp00a5xt, 3.24249267578125 Mb of storage (size: [200, 250, 17]).\n", - "\tdone: /tmp/ahqwnpu7, 0.0476837158203125 Mb of storage (size: [200, 250, 1]).\n", - "\ttraj_ids: /tmp/w14czpq5, 0.3814697265625 Mb of storage (size: [200, 250, 1]).\n", - "\tmask: /tmp/7k59vi8p, 0.0476837158203125 Mb of storage (size: [200, 250, 1]).\n", - "\tindex: /tmp/crwyp6_p, 0.000762939453125 Mb of storage (size: [200, 1]).\n" - ] - } - ], - "source": [ - "rewards = []\n", - "rewards_eval = []\n", - "\n", - "# Main loop\n", - "norm_factor_training = sum(gamma**i for i in range(n_steps_forward)) if n_steps_forward else 1\n", - "\n", - "collected_frames = 0\n", - "# # if tqdm is to be used\n", - "# pbar = tqdm.tqdm(total=total_frames)\n", - "r0 = None\n", - "for i, tensordict in enumerate(collector):\n", - "\n", - " # update weights of the inference policy\n", - " collector.update_policy_weights_()\n", - " \n", - " if r0 is None:\n", - " r0 = tensordict[\"reward\"].mean().item()\n", - "# pbar.update(tensordict.numel())\n", - " \n", - " # extend the replay buffer with the new data\n", - " tensordict.batch_size = tensordict.batch_size[:1] # this is necessary for prioritized replay buffers: we will assign one priority value to each element, hence the batch_size must comply with the number of priority values\n", - " current_frames = tensordict.numel()\n", - " collected_frames += tensordict[\"mask\"].sum()\n", - " replay_buffer.extend(tensordict.cpu())\n", - "\n", - " # optimization steps\n", - " if collected_frames >= init_random_frames:\n", - " for j in range(optim_steps_per_batch):\n", - " # sample from replay buffer\n", - " sampled_tensordict = replay_buffer.sample(batch_size_traj)\n", - " # reset the batch size temporarily, and exclude index whose shape is incompatible with the new size\n", - " index = sampled_tensordict.get(\"index\")\n", - " sampled_tensordict.exclude(\"index\", inplace=True)\n", - " sampled_tensordict.batch_size = [batch_size_traj, 250]\n", - "\n", - " # compute loss for qnet and backprop\n", - " with hold_out_net(actor):\n", - " # get next state value\n", - " next_tensordict = step_mdp(sampled_tensordict)\n", - " qnet_target(actor(next_tensordict.view(-1))).view(sampled_tensordict.shape)\n", - " next_value = next_tensordict[\"state_action_value\"]\n", - " assert not next_value.requires_grad\n", - " \n", - " # This is the crucial bit: we'll compute the TD(lambda) instead of a simple single step estimate\n", - " done = sampled_tensordict[\"done\"]\n", - " reward = sampled_tensordict[\"reward\"]\n", - " value = qnet(sampled_tensordict.view(-1)).view(sampled_tensordict.shape)[\"state_action_value\"]\n", - " advantage = vec_td_lambda_advantage_estimate(gamma, lmbda, value, next_value, reward, done)\n", - " # we sample from the values we have computed\n", - " rand_idx = torch.randint(0, advantage.numel(), (batch_size,))\n", - " value_loss = advantage.view(-1)[rand_idx].pow(2).mean()\n", - " \n", - " # we write the td_error in the sampled_tensordict for priority update\n", - " # because the indices of the samples is tracked in sampled_tensordict\n", - " # and the replay buffer will know which priorities to update.\n", - " value_loss.backward()\n", - " \n", - " optimizer_qnet.step()\n", - " optimizer_qnet.zero_grad()\n", - "\n", - " # compute loss for actor and backprop: the actor must maximise the state-action value, hence the loss is the neg value of this.\n", - " sampled_tensordict_actor = sampled_tensordict.select(*actor.in_keys)\n", - " with hold_out_net(qnet):\n", - " qnet(actor(sampled_tensordict_actor.view(-1))).view(sampled_tensordict.shape)\n", - " actor_loss = -sampled_tensordict_actor[\"state_action_value\"]\n", - " actor_loss.view(-1)[rand_idx].mean().backward()\n", - "\n", - " optimizer_actor.step()\n", - " optimizer_actor.zero_grad()\n", - "\n", - " # update qnet_target params\n", - " for (p_in, p_dest) in zip(qnet.parameters(), qnet_target.parameters()):\n", - " p_dest.data.copy_(tau * p_in.data + (1 - tau) * p_dest.data)\n", - " for (b_in, b_dest) in zip(qnet.buffers(), qnet_target.buffers()):\n", - " b_dest.data.copy_(tau * b_in.data + (1 - tau) * b_dest.data)\n", - "\n", - " # update priority\n", - " sampled_tensordict.batch_size = [batch_size_traj]\n", - " sampled_tensordict[\"td_error\"] = advantage.detach().pow(2).mean(1)\n", - " sampled_tensordict[\"index\"] = index\n", - " if prb:\n", - " replay_buffer.update_priority(sampled_tensordict)\n", - "\n", - " rewards.append((i, tensordict['reward'].mean().item() / norm_factor_training / frame_skip))\n", - " td_record = recorder(None)\n", - " if td_record is not None:\n", - " rewards_eval.append((i, td_record[\"r_evaluation\"]))\n", - "# if len(rewards_eval):\n", - "# pbar.set_description(f\"reward: {rewards[-1][1]: 4.4f} (r0 = {r0: 4.4f}), reward eval: reward: {rewards_eval[-1][1]: 4.4f}\")\n", - "\n", - " # update the exploration strategy\n", - " actor_model_explore.step(current_frames)\n", - " if collected_frames >= init_random_frames:\n", - " scheduler1.step()\n", - " scheduler2.step()\n", - "\n", - "collector.shutdown()" - ] - }, - { - "cell_type": "markdown", - "id": "88aa52aa", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "We can observe that using TD(lambda) made our results considerably more stable for a similar training speed:" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "f06e70ed", - "metadata": { - "jupyter": { - "outputs_hidden": false - }, - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'TD-labmda DDPG results')" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "plt.plot(*zip(*rewards), label=\"training\")\n", - "plt.plot(*zip(*rewards_eval), label=\"eval\")\n", - "plt.legend()\n", - "plt.xlabel(\"iter\")\n", - "plt.ylabel(\"reward\")\n", - "plt.tight_layout()\n", - "plt.title(\"TD-labmda DDPG results\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.3" - }, - "vscode": { - "interpreter": { - "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" - } - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/coding_dqn.ipynb b/tutorials/coding_dqn.ipynb deleted file mode 100644 index f153e9eca86..00000000000 --- a/tutorials/coding_dqn.ipynb +++ /dev/null @@ -1,1580 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "[](https://colab.research.google.com/github/pytorch/rl/blob/main/tutorials/coding_dqn.ipynb)\n", - "\n", - "# Coding a pixel-based DQN using TorchRL\n", - "\n", - "This tutorial will guide you through the steps to code DQN to solve the CartPole task from scratch.\n", - "DQN ([Deep Q-Learning](https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf)) was the founding work in deep reinforcement learning. On a high level, the algorithm is quite simple: Q-learning consists in learning a table of state-action values in such a way that, when facing any particular state, we know which action to pick just by searching for the action with the highest value. This simple setting requires the actions and states to be discretizable. DQN uses a neural network that maps state-actions pairs to a certain value, which amortizes the cost of storing and exploring all the possible states: if a state has not been seen in the past, we can still pass it through our neural network and get an interpolated value for each of the actions available.\n", - "\n", - "In this tutorial, you will learn:\n", - "- how to build an environment in TorchRL, including transforms (e.g. data normalization, frame concatenation, resizing and turning to grayscale) and parallel execution;\n", - "- how to design a QValue actor, i.e. an actor that esitmates the action values and picks up the action with the highest estimated return;\n", - "- how to collect data from your environment efficiently and store them in a replay buffer;\n", - "- how to store trajectories (and not transitions) in your replay buffer), and how to estimate returns using TD(lambda);\n", - "- how to make a module *functional* and use ;\n", - "- and finally how to evaluate your model.\n", - "\n", - "This tutorial assumes the reader is familiar with some of TorchRL primitives, such as `TensorDict` and `TensorDictModules`, although it should be sufficiently transparent to be understood without a deep understanding of these classes.\n", - "\n", - "We do not aim at giving a SOTA implementation of the algorithm, but rather to provide a high-level illustration of TorchRL features in the context of this algorithm." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0mRequirement already satisfied: torchrl in /fsx/users/vmoens/work/torch_rl (0.0.1rc0+0005a04)\n", - "Requirement already satisfied: torch in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from torchrl) (1.13.0.dev20220919+cu117)\n", - "Requirement already satisfied: numpy in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from torchrl) (1.23.1)\n", - "Requirement already satisfied: packaging in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from torchrl) (21.3)\n", - "Requirement already satisfied: cloudpickle in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from torchrl) (1.2.2)\n", - "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from packaging->torchrl) (2.4.7)\n", - "Requirement already satisfied: typing-extensions in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from torch->torchrl) (4.3.0)\n", - "\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0mRequirement already satisfied: imageio in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (2.19.3)\n", - "Requirement already satisfied: pillow>=8.3.2 in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from imageio) (9.1.1)\n", - "Requirement already satisfied: numpy in /fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages (from imageio) (1.23.1)\n", - "\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m\u001b[33mWARNING: Ignoring invalid distribution -orch (/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages)\u001b[0m\u001b[33m\n", - "\u001b[0m" - ] - } - ], - "source": [ - "!pip install torchrl\n", - "!pip install imageio\n", - "!pip install tqdm\n", - "!pip install matplotlib" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "import torch\n", - "import tqdm\n", - "from IPython import display\n", - "from matplotlib import pyplot as plt\n", - "from torch import nn\n", - "\n", - "from torchrl.collectors import MultiaSyncDataCollector\n", - "from torchrl.data import TensorDict, TensorDictReplayBuffer, LazyMemmapStorage\n", - "from torchrl.envs import ParallelEnv, EnvCreator\n", - "from torchrl.envs.libs.gym import GymEnv\n", - "from torchrl.envs.transforms import TransformedEnv, ToTensorImage, Compose, \\\n", - " GrayScale, CatFrames, ObservationNorm, Resize, CatTensors\n", - "from torchrl.envs.utils import set_exploration_mode\n", - "from torchrl.envs.utils import step_mdp\n", - "from torchrl.modules import QValueActor, EGreedyWrapper, DuelingCnnDQNet\n", - "\n", - "\n", - "def is_notebook() -> bool:\n", - " try:\n", - " shell = get_ipython().__class__.__name__\n", - " if shell == 'ZMQInteractiveShell':\n", - " return True # Jupyter notebook or qtconsole\n", - " elif shell == 'TerminalInteractiveShell':\n", - " return False # Terminal running IPython\n", - " else:\n", - " return False # Other type (?)\n", - " except NameError:\n", - " return False # Probably standard Python interpreter\n", - "\n", - "import imageio\n", - "from IPython.display import Video\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Hyperparameters\n", - "\n", - "Let's start with our hyperparameters. This is a totally arbitrary list of hyperparams that we found to work well in practice. Hopefully the performance of the algorithm should not be too sentitive to slight variations of these." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "# hyperparams\n", - "\n", - "# the learning rate of the optimizer\n", - "lr = 2e-3\n", - "# the beta parameters of Adam\n", - "betas = (0.9, 0.999)\n", - "# gamma decay factor\n", - "gamma = 0.99\n", - "# lambda decay factor (see second the part with TD(lambda) \n", - "lmbda = 0.95\n", - "# total frames collected in the environment. In other implementations, the user defines a maximum number of episodes. \n", - "# This is harder to do with our data collectors since they return batches of N collected frames, where N is a constant.\n", - "# However, one can easily get the same restriction on number of episodes by breaking the training loop when a certain number \n", - "# episodes has been collected.\n", - "total_frames = 500000\n", - "# Random frames used to initialize the replay buffer.\n", - "init_random_frames = 500\n", - "# Frames in each batch collected.\n", - "frames_per_batch = 256\n", - "# Optimization steps per batch collected\n", - "n_optim = 4\n", - "# Frames sampled from the replay buffer at each optimization step\n", - "batch_size = 256\n", - "# Size of the replay buffer in terms of frames\n", - "buffer_size = 100000\n", - "# Number of environments run in parallel in each data collector\n", - "n_workers = 2\n", - "\n", - "device = \"cuda:0\" if torch.cuda.device_count() > 0 else \"cpu\"\n", - "\n", - "# Smooth target network update decay parameter. This loosely corresponds to a 1/(1-tau) interval with hard target network update\n", - "tau = 0.005\n", - "\n", - "# Initial and final value of the epsilon factor in Epsilon-greedy exploration (notice that since our policy is deterministic exploration is crucial)\n", - "eps_greedy_val = 0.1\n", - "eps_greedy_val_env = 0.05\n", - "\n", - "# To speed up learning, we set the bias of the last layer of our value network to a predefined value\n", - "init_bias = 20.0\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Building the environment\n", - "\n", - "Our environment builder has three arguments:\n", - "- parallel: determines whether multiple environments have to be run in parallel. We stack the transforms after the ParallelEnv to take advantage of vectorization of the operations on device, although this would techinally work with every single environment attached to its own set of transforms.\n", - "- mean and standard deviation: we normalize the observations (images) with two parameters computed from a random rollout in the environment." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def make_env(parallel=False, m=0, s=1):\n", - " \n", - " if parallel:\n", - " base_env = ParallelEnv(\n", - " n_workers, \n", - " EnvCreator(lambda: GymEnv(\"CartPole-v1\", from_pixels=True, pixels_only=True, device=device))\n", - " )\n", - " else:\n", - " base_env = GymEnv(\"CartPole-v1\", from_pixels=True, pixels_only=True, device=device)\n", - " \n", - " env = TransformedEnv(\n", - " base_env, \n", - " Compose(\n", - " ToTensorImage(), \n", - " GrayScale(),\n", - " Resize(64, 64),\n", - " ObservationNorm(in_keys=[\"next_pixels\"], loc=m, scale=s, standard_normal=True),\n", - " CatFrames(4, in_keys=[\"next_pixels\"]),\n", - " ))\n", - " return env\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Compute normalizing constants:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - }, - { - "data": { - "text/plain": [ - "(0.9927082061767578, 0.0761088877916336)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dummy_env = make_env()\n", - "v = dummy_env.transform[3].parent.reset()[\"pixels\"]\n", - "m, s = v.mean().item(), v.std().item()\n", - "m, s" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - }, - "tags": [] - }, - "source": [ - "## The problem\n", - "\n", - "We can have a look at the problem by generating a video with a random policy. From gym:\n", - "> A pole is attached by an un-actuated joint to a cart, which moves along a frictionless track. The pendulum is placed upright on the cart and the goal is to balance the pole by applying forces in the left and right direction on the cart." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "IMAGEIO FFMPEG_WRITER WARNING: input image is not divisible by macro_block_size=16, resizing from (600, 400) to (608, 400) to ensure video compatibility with most codecs and players. To prevent resizing, make your input image divisible by the macro_block_size or set the macro_block_size to 1 (risking incompatibility).\n", - "[swscaler @ 0x5a69480] Warning: data is not aligned! This can lead to a speed loss\n" - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# we add a CatTensors transform to copy the \"next_pixels\" before it's being replaced by its grayscale, resized version\n", - "dummy_env.transform.insert(0, CatTensors([\"next_pixels\"], \"next_pixels_save\", del_keys=False))\n", - "# we omit the policy from the rollout call: this will generate random actions from the env.action_spec attribute\n", - "eval_rollout = dummy_env.rollout(max_steps=10000).cpu()\n", - "\n", - "imageio.mimwrite('cartpole_random.mp4', eval_rollout[\"next_pixels_save\"].numpy(), fps=30); \n", - "Video('cartpole_random.mp4', width=480, height=360)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Building the model (Deep Q-network)\n", - "\n", - "The following function builds a [`DuelingCnnDQNet`](https://arxiv.org/abs/1511.06581) object which is a simple CNN followed by a two-layer MLP. The only trick used here is that the action values (i.e. left and right action value) are computed using\n", - "\n", - "```\n", - "values = baseline(observation) + values(observation) - values(observation).mean()\n", - "```\n", - "\n", - "where `baseline` is a `num_obs -> 1` function and `values` is a `num_obs -> num_actions` function.\n", - "\n", - "Our network is wrapped in a `QValueActor`, which will read the state-action values, pick up the one with the maximum value and write all those results in the input `TensorDict`." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "def make_model():\n", - " cnn_kwargs = {\n", - " \"num_cells\": [32, 64, 64], \n", - " \"kernel_sizes\": [6, 4, 3], \n", - " \"strides\": [2, 2, 1], \n", - " \"activation_class\": nn.ELU, \n", - " \"squeeze_output\": True, \n", - " \"aggregator_class\": nn.AdaptiveAvgPool2d, \n", - " \"aggregator_kwargs\": {\"output_size\": (1, 1)}\n", - " }\n", - " mlp_kwargs = {\n", - " \"depth\": 2,\n", - " \"num_cells\": [64, 64, ], \n", - " # \"out_features\": dummy_env.action_spec.shape[-1], \n", - " \"activation_class\": nn.ELU\n", - " }\n", - " net = DuelingCnnDQNet(dummy_env.action_spec.shape[-1], 1, cnn_kwargs, mlp_kwargs).to(device)\n", - " net.value[-1].bias.data.fill_(init_bias)\n", - "\n", - "\n", - " actor = QValueActor(net, in_keys=[\"pixels\"], spec=dummy_env.action_spec).to(device)\n", - " # init actor\n", - " tensordict = dummy_env.reset()\n", - " print(\"reset results:\", tensordict)\n", - " actor(tensordict)\n", - " print(\"Q-value network results:\", tensordict)\n", - " \n", - " # make functional\n", - " factor, (_, buffers) = actor.make_functional_with_buffers(clone=True, native=True)\n", - " # making functional creates a copy of the params, which we don't want (i.e. we want the parameters from `actor` to match those in the params object),\n", - " # hence we create the params object in a second step\n", - " params = TensorDict({k: v for k, v in net.named_parameters()}, []).unflatten_keys(\".\")\n", - " \n", - " # creating the target parameters is fairly easy with tensordict:\n", - " params_target, buffers_target = params.to_tensordict().detach(), buffers.to_tensordict().detach()\n", - "\n", - " # we wrap our actor in an EGreedyWrapper for data collection\n", - " actor_explore = EGreedyWrapper(actor, annealing_num_steps=total_frames, eps_init=eps_greedy_val, eps_end=eps_greedy_val_env)\n", - "\n", - " return factor, actor, actor_explore, params, buffers, params_target, buffers_target\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "When creating the model, we initialize the network with an environment reset. We print the resulting tensordict instance to get an idea of what `QValueActor` (pay attention to the keys `action`, `action_value` and `chosen_action_value` after calling the policy)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages/torch/nn/modules/lazy.py:180: UserWarning: Lazy modules are a new feature under heavy development so changes to the API or functionality can happen at any moment.\n", - " warnings.warn('Lazy modules are a new feature under heavy development '\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "reset results: TensorDict(\n", - " fields={\n", - " done: SharedTensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: SharedTensor(torch.Size([4, 64, 64]), dtype=torch.float32),\n", - " pixels_save: SharedTensor(torch.Size([400, 600, 3]), dtype=torch.uint8)},\n", - " batch_size=torch.Size([]),\n", - " device=cuda:0,\n", - " is_shared=True)\n", - "Q-value network results: TensorDict(\n", - " fields={\n", - " action: SharedTensor(torch.Size([2]), dtype=torch.int64),\n", - " action_value: SharedTensor(torch.Size([2]), dtype=torch.float32),\n", - " chosen_action_value: SharedTensor(torch.Size([1]), dtype=torch.float32),\n", - " done: SharedTensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: SharedTensor(torch.Size([4, 64, 64]), dtype=torch.float32),\n", - " pixels_save: SharedTensor(torch.Size([400, 600, 3]), dtype=torch.uint8)},\n", - " batch_size=torch.Size([]),\n", - " device=cuda:0,\n", - " is_shared=True)\n" - ] - } - ], - "source": [ - "factor, actor, actor_explore, params, buffers, params_target, buffers_target = make_model()\n", - "params_flat = params.flatten_keys(\".\")\n", - "buffers_flat = buffers.flatten_keys(\".\")\n", - "params_target_flat = params_target.flatten_keys(\".\")\n", - "buffers_target_flat = buffers_target.flatten_keys(\".\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Regular DQN\n", - "\n", - "We'll start with a simple implementation of DQN where the returns are computed without bootstrapping, i.e. \n", - "```\n", - "return = reward + gamma * value_next_step * not_terminated\n", - "```\n", - "\n", - "We start with the *replay buffer*.\n", - "We'll use a regular replay buffer, although a prioritized RB could improve the performance significantly. We place the storage on disk using `LazyMemmapStorage`. The only requirement of this storage is that the data given to it must always have the same shape.\n", - "This storage will be instantiated later." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "replay_buffer = TensorDictReplayBuffer(\n", - " buffer_size, \n", - " storage=LazyMemmapStorage(buffer_size), \n", - " collate_fn=lambda x: x,\n", - " prefetch=n_optim,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Our *data collector* will run two parallel environments in parallel, and deliver the collected tensordicts once at a time to the main process. We'll use the `MultiaSyncDataCollector` collector, which will collect data while the optimization is taking place." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "pycharm": { - "name": "#%%\n" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "\n", - "data_collector = MultiaSyncDataCollector(\n", - " [make_env(True, m=m, s=s), make_env(True, m=m, s=s)], # 2 collectors, each with an set of `num_workers` environments being run in parallel\n", - " policy=actor_explore,\n", - " frames_per_batch=frames_per_batch,\n", - " total_frames=total_frames,\n", - " exploration_mode=\"random\", # this is the default behaviour: the collector runs in `\"random\"` (or explorative) mode\n", - " devices=[device, device], # each collector can sit on a different device\n", - " passing_devices=[device, device],\n", - ")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Our *optimizer* and the env used for evaluation" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "TensorDict(\n", - " fields={\n", - " action: SharedTensor(torch.Size([2]), dtype=torch.int64),\n", - " action_value: SharedTensor(torch.Size([2]), dtype=torch.float32),\n", - " chosen_action_value: SharedTensor(torch.Size([1]), dtype=torch.float32),\n", - " done: SharedTensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: SharedTensor(torch.Size([4, 64, 64]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cuda:0,\n", - " is_shared=True)\n" - ] - } - ], - "source": [ - "optim = torch.optim.Adam(list(params_flat.values()), lr)\n", - "dummy_env = make_env(parallel=False, m=m, s=s)\n", - "print(actor_explore(dummy_env.reset()))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Various lists that will contain the values recorded for evaluation" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "evals = []\n", - "traj_lengths_eval = []\n", - "losses = []\n", - "frames = []\n", - "values = []\n", - "grad_vals = []\n", - "traj_lengths = []\n", - "mavgs = []\n", - "traj_count = []\n", - "prev_traj_count = 0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### Training loop" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "pycharm": { - "name": "#%%\n" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pbar = tqdm.tqdm(total=total_frames)\n", - "for j, data in enumerate(data_collector):\n", - " # trajectories are padded to be stored in the same tensordict: since we do not care about consecutive step, we'll just mask the tensordict and get the flattened representation instead.\n", - " mask = data[\"mask\"].squeeze(-1)\n", - " current_frames = mask.sum().cpu().item()\n", - " pbar.update(current_frames)\n", - "\n", - " # We store the values on the replay buffer, after placing them on CPU. When called for the first time, this will instantiate our storage object which will print its content.\n", - " replay_buffer.extend(data[mask].cpu())\n", - " \n", - " # some logging\n", - " if len(frames):\n", - " frames.append(current_frames + frames[-1])\n", - " else:\n", - " frames.append(current_frames)\n", - " \n", - " if data[\"done\"].any():\n", - " traj_lengths.append(data[\"step_count\"][data[\"done\"]].float().mean().item())\n", - " \n", - " # check that we have enough data to start training\n", - " if sum(frames) > init_random_frames:\n", - " for i in range(n_optim):\n", - " # sample from the RB and send to device\n", - " sampled_data = replay_buffer.sample(batch_size).to(device, non_blocking=True)\n", - "\n", - " # collect data from RB\n", - " reward = sampled_data[\"reward\"].squeeze(-1)\n", - " done = sampled_data[\"done\"].squeeze(-1).to(reward.dtype)\n", - " action = sampled_data[\"action\"].clone()\n", - "\n", - " # Compute action value (of the action actually taken) at time t\n", - " sampled_data_out = sampled_data.select(*actor.in_keys)\n", - " sampled_data_out = factor(sampled_data_out, params=params, buffers=buffers)\n", - " action_value = sampled_data_out[\"action_value\"]\n", - " action_value = (action_value * action.to(action_value.dtype)).sum(-1)\n", - " with torch.no_grad():\n", - " # compute best action value for the next step, using target parameters\n", - " tdstep = step_mdp(sampled_data)\n", - " next_value = factor(\n", - " tdstep.select(*actor.in_keys), \n", - " params=params_target, \n", - " buffers=buffers_target\n", - " )[\"chosen_action_value\"].squeeze(-1)\n", - " exp_value = reward + gamma * next_value * (1 - done)\n", - " assert exp_value.shape == action_value.shape\n", - " # we use MSE loss but L1 or smooth L1 should also work\n", - " error = nn.functional.mse_loss(exp_value, action_value).mean()\n", - " error.backward()\n", - " \n", - " gv = sum([p.grad.pow(2).sum() for p in params_flat.values()]).sqrt()\n", - " nn.utils.clip_grad_value_(list(params_flat.values()), 1)\n", - "\n", - " optim.step()\n", - " optim.zero_grad()\n", - "\n", - " # update of the target parameters\n", - " for (key, p1) in params_flat.items():\n", - " p2 = params_target_flat[key]\n", - " params_target_flat.set_(key, tau * p1.data + (1-tau) * p2.data)\n", - " for (key, p1) in buffers_flat.items():\n", - " p2 = buffers_target_flat[key]\n", - " buffers_target_flat.set_(key, tau * p1.data + (1-tau) * p2.data)\n", - "\n", - " pbar.set_description(f\"error: {error: 4.4f}, value: {action_value.mean(): 4.4f}\")\n", - " actor_explore.step(current_frames)\n", - " \n", - " # logs\n", - " with set_exploration_mode(\"mode\"), torch.no_grad():\n", - " # execute a rollout. The `set_exploration_mode(\"mode\")` has no effect here since the policy is deterministic, but we add it for completeness\n", - " eval_rollout = dummy_env.rollout(max_steps=10000, policy=actor).cpu()\n", - " grad_vals.append(float(gv))\n", - " traj_lengths_eval.append(eval_rollout.shape[-1])\n", - " evals.append(eval_rollout[\"reward\"].squeeze(-1).sum(-1).item())\n", - " if len(mavgs):\n", - " mavgs.append(evals[-1]*0.05 + mavgs[-1]*0.95)\n", - " else:\n", - " mavgs.append(evals[-1])\n", - " losses.append(error.item())\n", - " values.append(action_value.mean().item())\n", - " traj_count.append(prev_traj_count + data[\"done\"].sum().item())\n", - " prev_traj_count = traj_count[-1]\n", - " # plots\n", - " if j % 100 == 0:\n", - " if is_notebook():\n", - " display.clear_output(wait=True)\n", - " display.display(plt.gcf())\n", - " else:\n", - " plt.clf()\n", - " plt.figure(figsize=(15, 15))\n", - " plt.subplot(3,2,1)\n", - " plt.plot(frames[-len(evals):], evals, label=\"return\")\n", - " plt.plot(frames[-len(mavgs):], mavgs, label=\"mavg\")\n", - " plt.xlabel(\"frames collected\")\n", - " plt.ylabel(\"trajectory length (= return)\")\n", - " plt.subplot(3,2,2)\n", - " plt.plot(traj_count[-len(evals):], evals, label=\"return\")\n", - " plt.plot(traj_count[-len(mavgs):], mavgs, label=\"mavg\")\n", - " plt.xlabel(\"trajectories collected\")\n", - " plt.legend()\n", - " plt.subplot(3,2,3)\n", - " plt.plot(frames[-len(losses):], losses)\n", - " plt.xlabel(\"frames collected\")\n", - " plt.title(\"loss\")\n", - " plt.subplot(3,2,4)\n", - " plt.plot(frames[-len(values):], values)\n", - " plt.xlabel(\"frames collected\")\n", - " plt.title(\"value\")\n", - " plt.subplot(3,2,5)\n", - " plt.plot(frames[-len(grad_vals):], grad_vals)\n", - " plt.xlabel(\"frames collected\")\n", - " plt.title(\"grad norm\")\n", - " plt.savefig(\"dqn_td0.png\")\n", - " if len(traj_lengths):\n", - " plt.subplot(3,2,6)\n", - " plt.plot(traj_lengths)\n", - " plt.xlabel(\"batches\")\n", - " plt.title(\"traj length (training)\")\n", - " if is_notebook():\n", - " plt.show()\n", - " \n", - " # update policy weights\n", - " data_collector.update_policy_weights_()\n", - "\n", - "if is_notebook():\n", - " display.clear_output(wait=True)\n", - " display.display(plt.gcf())" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(-0.5, 1079.5, 1079.5, -0.5)" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABBsAAAQbCAYAAADJQqPEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3wcxd0G8GevqMty7zZgTLHBGDC914SQArwB8oaSkBASXkgIJQmkURJCQg8hEHo3xWBCx2AMxsY27k1usi1ZvZe70/XdnfePK9q72+sr3Ul6vnwA6W53dnbvNDP72ymSEAJEREREREREREYx5ToDRERERERERDS0MNhARERERERERIZisIGIiIiIiIiIDMVgAxEREREREREZisEGIiIiIiIiIjIUgw1EREREREREZCgGG4iIiIiIiIjIUAw2EBEREREREZGhGGwgIiIiIiIiIkMx2EBEREREREREhmKwgYiIiIiIiIgMxWADERERERERERmKwQYiIiIiIiIiMhSDDURERERERERkKAYbiIiIiIiIiMhQDDYQERERERERkaEYbCAiIiIiIiIiQzHYQERERERERESGYrCBiIiIiIiIiAzFYAMRERERERERGYrBBiIiIiIiIiIyFIMNRERERERERGQoBhuIiIiIiIiIyFAMNhARERERERGRoRhsICIiIiIiIiJDMdhARERERERERIZisIGIiIiIiIiIDMVgAxEREREREREZisEGIiIiIiIiIjIUgw1EREREREREZCgGG4iIiIiIiIjIUAw2EBEREREREZGhGGwgIiIiIiIiIkMx2EBEREREREREhmKwgYiIiIiIiIgMxWADERERERERERmKwQYiIiIiIiIiMhSDDURERERERERkKAYbiIiIiIiIiMhQDDYQERERERERkaEYbCAiIiIiIiIiQzHYQERERERERESGYrCBiIiIiIiIiAzFYAMRERERERERGYrBBiIiIiIiIiIyFIMNRERERERERGQoBhuIiIiIiIiIyFAMNhARERERERGRoRhsICIiIiIiIiJDMdhARERERERERIZisIGIiIiIiIiIDMVgAxEREREREREZisEGIiIiIiIiIjIUgw1EREREREREZCgGG4iIiIiIiIjIUAw2EBEREREREZGhGGwgIiIiIiIiIkMx2EBEREREREREhmKwgYiIiIiIiIgMxWADERERERERERmKwQYiIiIiIiIiMhSDDURERERERERkKAYbiIiIiIiIiMhQDDYQERERERERkaEYbCAiIiIiIiIiQzHYQERERERERESGYrCBiIiIiIiIiAzFYAMRERERERERGYrBBiIiIiIiIiIyFIMNRERERERERGQoBhuIiIiIiIiIyFAMNhARERERERGRoRhsICIiIiIiIiJDMdhARERERERERIZisIGIiIiIiIiIDMVgAxEREREREREZisEGIiIiIiIiIjIUgw1EREREREREZCgGG4iIiIiIiIjIUAw2EBEREREREZGhGGwgIiIiIiIiIkMx2EBEREREREREhmKwgYiIiIiIiIgMxWADERERERERERmKwQYiIiIiIiIiMhSDDURERERERERkKAYbiIiIiIiIiMhQDDYQERERERERkaEYbCAiIiIiIiIiQzHYQERERERERESGYrCBiIiIiIiIiAzFYAMRERERERERGYrBBiIiIiIiIiIyFIMNRERERERERGQoBhuIiIiIiIiIyFAMNhARERERERGRoRhsICIiIiIiIiJDMdhARERERERERIZisIGIiIiIiIiIDMVgAxEREREREREZisEGIiIiIiIiIjIUgw1EREREREREZCgGG4iIiIiIiIjIUAw2EBEREREREZGhGGwgIiIiIiIiIkMx2EBEREREREREhmKwgYiIiIiIiIgMxWADERERERERERmKwQYiIiIiIiIiMhSDDURERERERERkKAYbiIiIiIiIiMhQDDYQERERERERkaEYbCAiIiIiIiIiQzHYQERERERERESGYrCBiIiIiIiIiAzFYAMRERERERERGYrBBiIiIiIiIiIyFIMNRERERERERGQoBhuIiIiIiIiIyFAMNhARERERERGRoRhsICIiIiIiIiJDMdhARERERERERIZisIGIiIiIiIiIDMVgAxEREREREREZisEGIiIiIiIiIjIUgw1EREREREREZCgGG4iIiIiIiIjIUAw2EBEREREREZGhGGwgIiIiIiIiIkNZcp0Byn+yLPN7QkQ0SAghhNVqVXKdj3zHuo2IaPBg3TY4SUKIXOeB8tjOnTtnn3vuudumT5+e66wQEVESQgixdu3aZr/fPyXXeclnqqpKEyZMUA8++OBcZ4WIiFKwdu3azubm5pljxozpyXVeKHWM6lNCBQUFOOus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EELKnDt3rsuGDRtCId29jwXgPnfu3IShQ4cm/PTTT/zly5eno7yOVgA4pNFoLr/66quJoigGM8ZKXnrppUEAxsE2U5GPj88/c+fOLVi5cuUQAMMBCKNGjTrj5uZ2bvfu3TcA6AcgAlKPghsgDacwAdi+fPnyzI8//nimyWRKePfdd6MA4KWXXhqqUCj83njjjR0vvfSSB4DpkH63zD169Dg3cuTIK2vXrp0E6XexFMDx2bNnXxgxYkRZY/+rr77qk5GRMR7SbBuZr7/++ua33nrLRRCEOZDyRJQolcrNL7zwgv7tt98e7+XlVXTXXXfFf/3112N69eoVPXTo0Kz169cPAjAE0m9g4pw5c45duHDBFB0dPRHS7x0A/A0gA8BdkHoqnIX0GzgFQB/bMvkANtq2MxVSr45SADkhISERs2bNyrjWf1dCiGNRsIEQQgghhJBGUqvVzxqNxinvv//+jBdffLFqXgVCCGn3KNhACCGEEEJII/3www/zrFZryqOPPhru6LIQQkhrRMEGQkibkpqa6vfCCy882L9//99feumlREeXhxBCCGluUVFRmvfee2/ihAkT3BcvXvy7o8tDCCGANGaYEELajKKiItd169bduG/fPg9Hl4UQQghpCRkZGcp169b1Cw8PH+roshBCiB0FGwghhBBCCCGEENKkaOpLQkibdOLECX7YsGF9ADwMafaHKwB+femll05GREQ47dq16wFImbw1AJIBPBsREZE/bty4u/V6/T0AXAHkyOXy9/77779TDtoNQggh7cz06dPnZmVlDT106NAbGo3GBADDhg1bYnv7MoB7Ic2olNqjR49fNmzY8G/VbXz//fcPf/fdd8rly5f/evvtt+ueeuqpe44ePeq9bt26Nb169cqbOnXqyJycnEcBdAWQCODdiIiIuBbZQUJIu0HBBkJIm1RSUhJw+vTp0ZDmGH8FQCiAe3Nzc/VXrlwJPH36dC8AnwNIBRAEwNCzZ88uly9ffoYx9lx0dHRWcHCwr1wurzrfOiGEENJsoqKiolJTU98bMmTI55cuXcru168fHxsb+xCAJwE4QfrtygMw4fz58y/Pnz8//sEHHyyquI2MjIyOp0+fdsrNzZUBQHx8vO/p06f9DAaD4uabbw7au3fvh4IgfAMgEsBkAD/37dv3xtjYWHOL7iwhpE2jYRSEkLbKH0CPuXPn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Pi54eFx3cBxoBgpCHICGUbRxW7Zskf3f//3ftLi4OMvChQsv/P3334o33nhD5+rqyoqLi0vkcrlL1XWMRqPso48+GgZgQFFRUSej8erHzpUYyrMJ19soJ4QQB2KMITlP36BlI5IKcCoxHxN6+6BfR7faF6zQWr6cXYod5zOwYHQgtGplDQVoZIHbmPfee09mtVoXAFAA4ORyecyyZcsOv/XWW74AboXUZonr2rXrgfvuu0+suO7evXsDjx07NgqAF4DTCxYsOBsYGHjtA78JIVdFEBlEVj4nWXKBAV/ui8PTN/aqtuw134rigP+N6Yqu3hoYLULZNjt7OkPGcejs4QwOgEJGN70IaWkUbGjD/vrrL+7ll1+edPHixRsWL1789+uvv558/Pjx0nfeecf5008/5d5//30NgNKq63Ecx9RqtRWAyWQyURpfQkjbxYAivQVOChmclTJ8tOtig1Y7lViAz/6Ng7uzsu5gg/1DAISdTcPX++MR0s0TI7t5XWPB254333yTMxqN7MMPPzS+8MILSplMtjgjIyP9q6++usXd3d3voYceyvj444+nTZo0Kfu+++47b19v7969zsuWLbvp5MmTnQHkAZgXHR2dv379+kuO2xtC2gfGpOEPGqUMGpUcOrMAhYzDpog0XM4phckiAgzI15nx5d543DWiS+X1UU+wod4FJLMG+4MDIOelhXmew/heHaS/KcZAiMNQf6I27JVXXhkVExNz02OPPXbklVdeCffz8zMBOPvDDz+M0Ov1ii+//HKSIAgnUeV+mkqlEpcsWXJ6yZIlaxYuXLjVycnpqstAIycIIfU5HJeDbZHpKDY028Q4teOAN7ZG49Ww82AAdkdn1buKndkqotRkhdkqNGioxOUcHQAgp/TaEqC1VQaDwfrtt9+uWbp06SoAawVBCPrqq686A5jr5ub2wwMPPLAKQCKAKRXX+++//7qePHnS76677jrw7bfffj9w4EB+w4YNPSMiImroPkIIaUoJuTr8eDgBu2OyUGK04vtDCfj1aCK+O3QZPx+5ArMgVgoWvLEtplKrs95mYgPbkWqFDAAg5/my1Tpq1QAHcDTnECEOQz0b2qhly5Z1iI6OvgvAyMjISLfnnntuNIDdaWlpfwJYsGjRopEGg8EDwDdyuVyse2tXr2IynnbeQ5gQUouws+mISCpAXz83uKkVLf75WyMzAAAfzRtU1rA1WUX8dSYVs4cE1LnupohUFOktSCsw1Ps59rtrtQUmqI4EDh48KOzbt+99AAEAogHkuLm5uXz99deJkIZXXAYws8pqfgDMY8eOzVy8eLFh+/btaZGRkT4AnCDlKiKENJPEXB0Ox+VCZ7JieFcPHLqUg4wiA3JLzTXWaTvPZ9YYQGhgB4ZalfVeoLgCIa0KBRvaqPvvv7907NixvwLYAsACqR5PWrBgQQ4AAwC3hx9+2AjgjMMKSQghAHJLTUjI1cFkbba4Z51qauQaLAJ+O5ZUY7AhOV+PS1klAIALmSUo1JtRYrJWW64qe/C1UpI0UsnatWvZtm3btm3cuNEPwHwAWpVKZZkxYwaLjo62JzpWVVlNDumf0f6PYLK9Vq335m233XaTxWKZBoArLi5utv0gpL2w52YwWkWYLCJExpBXaq5Wz5XVs7VEFRoaIxjX0xvn04pQoK/cE46vMlbCzanlA9eEkOoo2NBG9enTx9CnT5/TtbzdYgGGisMoKD8kIaQ2jrwZVfmzpZYwY0B2cc35BSOSCrDvQnbZc4vAIDYggGDr3Qux1sqQKkkAuPXWW4/s27dPERoaOgrA8MLCQs28efP4119/XQ7AFUBRlVX0kAILattzLYB8lAcfyixZsuScKIrZjDH+2WeffboZd4OQdoHnOXAcB0FkMAtirW09rtIfV9eP4aZ+vlg0vjte3nK+WrBBZmtwcgBeu7Ufunpryt/jAbmMh5dL1TglIaS5UbCBtBhGDWlCSKtTtdFbfwO41GhBUYX8EjzHNWhqX3vPBurYULOQkBB3s9ksnDlzpuTZZ5+VA+gFIMJisVw8ceLEOACxAIYDOFll1SsAprz33ntBP/zwQ2pCQkI3AIcgBSEqGTt2bBaALFEUOYWC7nwScq1kHAeeAwSBwSowMDBYq1Vyja9nazJ9QEcM6uyOl2/tiyUbI6FVyxGfo4Mgsko9G+4Y0blsmksOQCcPZ7w1MxhDAz2u6nMJIVePgg2kWTWkAU4IIY7TcnWUvT6sbRrg9h6DiIyM9DMaje/36tWLj4uLkymVyjPHjh3bNnz48Mz09PSXbrnlFgbgHIB/9u7d6/3oo4+Ov/fee/Mff/zxw1euXDnx448/3puamvo4gH2rV6++OGzYMMeMyyGkjdKbrTgcl4tCvRlzhgZALuMh4znwHAeBMWQUGaXZJ6q5unqW5wAvjQomq4BioxUuKjkUMh4h3byw9uEQyGU8CnRmJOXpoZDxZXWsRlV+ecNxHFyd5Jg52B8qOeXFJ6SlUbCBtJhigwVilegzIYS0FzykgEJqgQEv/BmJLp5q3BTs5+hitRpxcXHxABah/MpEHxAQUJKSknIEwH22140BAQFFBoOB37dv306NRiN6eHgIH3/88b+vvfZaOKR2ja5Dhw46x+wFIW3X5WwdVuyLR77ejOj0YtwxvDOOXc7DxcwSXM4uxfHLeQ3KX9NQ94QE4onQHvh410X8EZFa9rpCxqObbZhEgLsafTu61Tm9Jc9xUCtlTVYuQkjDUbCBNKuKlf+SPyLxRKgej0wIclyBCCGkGd3703949da+MFqEau/xvJQL4tsDlyEwBo1SjgJ9+WQJ7T2vTUBAgBVAdg2vW6q+rlarxYCAgLJhElqt1qTVamlOUUKakZQIUkBagQHrTiRDFBny9RZYRWnohNEqNiobg7tagV3PjseRuFw8/8e5au9rVDL4uKrgpJRV6/ll78XAcYCSbmIR0mpRfyLSrCrObVxqsmK7bYo5QghpCRZBxNr/khCZWgir0Dy96hlYWaCgxGjFjqhM6M3Vgw32UWVGqwiLIDXaC3WWassRQoijiYwhPqsUY97fhw0nk3EpsxgiY7AIUgYui8Cw+Uwa9l/IqrReYy77VQoePq4qDAzQVn/TVqdyFRI/EkKuP9SzgbQoq0hDaAkhLefklXz8/l8yOns44+Vb+5a9XmqyNFmOBEFklRLgVn1ux1fJYcMYYGqmAAghhFwtqyji35gsGCwC0goNeGnzeQzv6oHHJgbhSm75CKWagqoNwQEY1NkdPz0wHFxtCXarvOQkl/JDEEKuLxRsIM2q6u8HZWEnhLQkgTEIIoPAWKVhCu9uvwDDVTaUqxKZbQhEhf7DXA334WpqJ5utUrDBvjohhLQkxhhMVhEquZRgUWQMZ5IK8fjaM+ikdQIg1aMFejPOp1eddbamDaLWbgh9/FxxIbMEAOCslMHTWVltVR8XFRaMDsRtQ/yhVUszxtwxLAC3D/FHb1/Xq91NQoiD0DAK0qyq/t7UPr88IaQ9Yow55Cp7T2xWDdOz1YwxVvaoiSDaAhlc3btSU88GnbnpkqkRQkhjnUkpRPBru7D/YnZZHVdstEAQGbKKjWXLXcoqxUe7LtW/wTo6H2x9YiwAKX/N3GEB1Xo0cLb/uKjkCPBQw9VJuifa31+LwZ3dKckjIdchCjaQFkWxBtISGGMQ67g4JK0DYwwXM0tsSRJb779VsdGK7VEZCE/Ir/4mk4IN9kAqBymoWtMwiqqtcKsoIjlPX8NyhBDS9KyiaAuOltdP55ILwRjDkbjcstfsb5uFpquX5TxXNgxCxnG4fWhA2XscpJ5fPAeoFTK4qRWVhlfY/6bp1Am5/tAwCtKsqv4wVLw7KDLQ+DvSLIoMFpxMLEBnDzX6dHRzdHGuGxUboC3RqCs2WPHhros4l1qEpkr/xZiUFZ2DrX5pgrZycr4eT6w9g9A+Phgd5CV9DsrvwgmiWOnYHYnPq1Im6f+yGsL7JtswChpHQQhpbks2noOM57Fseh94aZTgOK5sOnLBNqNE1R5YjaWS8zDbZqWwc5LzOP/GzeA46X1FlcrQQ6PA0zf2hFatQHdvDUYFeV9TGQghrQf1bCAtwv6jI9p6TKfmG7D/QhYNqyDNIjFPj4dXncKnexrQ5bMdYIxBFBlKjRaIdQwdMFgE5OvMMLdQ0kKTVYDQxIlcsopN+GJvHH7/L6nBwySuRsXmuMCAuo6YvZ6r2ogXGZBdQrM1EkJaRkqBAZtOp+Jydqkt1wyDxSrlrjFZRXzx7yWcTytq3PCuCtUszwHrHg5Bbz8pt4JaIYOTgoeHs6JsmXWLRuGDOQMqbcJTo8LTk3vhgTHdML63D5RyujwhpK2gng2kWdnb1vYmNgOD2Sri6Q1nkJyvx55nPeChUTmsfIS0F1dydXj+j7P4bP5gdPN2qXGZP0+l4scjV/Di1D64ZWDHFi5h0zibUoA/T6Xgxr6+KNJf+7SSDRmKI4o1D5qws/dEruuGIQMra+C7qRXU64sQ0qQsQnkPrO8OXi4LCHy5Px4iA/6NzUJuqRlf778MWWOqH9uyGqUMwf5u0Dor4eGsAM8Br9zaFwJjGNXdCzJeGgYxtIsH0MWjifeOENJaUeiQNKtqCSJFqUtxSoEejAFWmvWNkGbHAOyIykB0ejH+Ppde57LJ+Xok57f3PAKN6xFR39KsQj6H2pQYrfjpyBU89vvpSknZCCGkKfyXkId8nRkAsO9iDkxWEe9sj4XOKPVsyC01ly1bLVVDA6rERyYG4Ys7h6CrlwauTgrwHIfevq64e2Qgevq4Ur4FQtop6tlAmpVMVj1nQ6XnNEiZENKMqsxI2UBc+bpNUEXZh4qUmmrvmlxssCAytRA6k4CEnFJ0cldf+wcTQto1xhhKTVbIeQ7bIjOQWVQeyEwp0GNndCaEOiq5irlp7C/IZRzkPAej7W6Rl0YJLxclBnd2h5+bEziOw72jAlGot8DbVVXjlL+EkPaDgg2kWXXv4AIvFxVybOOS7UOopTnoHRNoYEwKcVxrEiRCridtJbDHGIPRIkIh5yDn6+6c1xR73BTHrchgwYWMYuy7kF3rMjKeg5NChiKDtawRTwghtamYbDuv1IRSkxXdvDWVehAYLAL+PpcOHkBWsREV09gs/SMSurIAaM0h2WqvcEBnT2d0cnfCUVsi3AWjA7FofFClaSnH9+qAMT28wXMtk2yYENJ6UbCBNKuZgzoiKU+Hr/bGgwEOTwhpFUSkFOhRqLegl68rNCr6CpD2hLMF+lqTxtUJVpFhy9k0dPXSlM0M0ZzMVrHS3cBa2dvqVf8P4EJmCZ5efxaZxaYqC5cTRAaDWaRZKQgh9RJEhrjsEhTqzOjewQVf7YtDTokZn9wxqKxdk68z42h8LtafSEZUWnGl9RmkPD7lav9dqFpbdfZQY1BndxyNz4OPqwpdvTWVAg12lHeGEAJQzgbSzBQyGSb39S37pXJ0G7rIYMHGkyl4b8cFxGWVOLg0hJDGslhFvPRXFN7/J/aat1VTfVT1tTydGWvCE+vfGFfL/23ic0prWLic3iwNn+A4aqQTQqpjTEqwfT6tCDqTFa//HY0n1p3BzvOZWB2ejItZJTh2Obds+aPxufho18VqgQagccPKqi7Lc9IwCgC4KdgXY3rQNJWEkNpRsIE0u4o/VA3J7N6c9GYB2SUmFOrNNOUcIdcpJgKZDUyiyMAqRBAqdxuoqcFd9bUSoxUHL+XWsGTTsooMhQYLeI6jYAMhpEYnE/PxzvZYRKUVITwhHwV6C1YciAcg9VTYFJFW1oM0Iae0/mS/dTXJWM1/8zwHuUy6fPBxdYK3C80oRgipHQUbSLOr2G3b0cEGQtqrNvXNu4prcY7jUCnu0EDNUmfVsUnq2UAIqYoxhpQCA/bEZOFkYj5OJuaD56ThFFnF5TdOskqMiEkvRoHOXGl2iVrVVdVwNf/Nc0BnTzUm9PJGoJdzo/eFENK+0IB10vwq/EiJVRvZbeoKiJBWjF3VNXqbcTUpaRmkHgdNpVpm9xrwHCh7OyGkkmKDBR/vuojLtuFYPAeo5DwMlsrJZC9llmDz6VQM8NfiSLzUI6shs/FUXKaDixI5FQIVLio5bg72RWaxCUfjc8FzHIYHeqCnjys6uFKvBkJI3SjYQJpdxR85g1modKfQUbEGysFG2qvWlBi8Rb6H1/ABxQYLfjx8pey53mxFfHZJpTuJjVF26Ots/XOUvZ0QUiYpT4e8UhP+PpcOAJDzUqLfmgKhOrOAf2OzcTKxoCwBZENqk4rLeLuoKgUb3J0VeP6m3ohIKpCCDTwHLxcVOrlTrwZCSP0o2EBalNEq4lJWicPvsHJo33d5CWkqjDHsjslCSDdPuDsrr2IDTV+mhn5sfXWA3iyUNfAB4FJWKd7YGoP0QsM1bbe+BWi0GSHE7q1tsTBahGqvW4SaK4r68jTUV0cNCfRAbGZ5Am05z6GTuxppBVK9J+M4KOqZdpgQQuyotiDNTikvP80YY0jM09WxdMugng3tAP0Dt4jkPD0+2nkBK/bHt/hnNzafQsWluVreqKtuyNeZcTguF5dzaq/DrimIyaSEloxOXkKIzcFLOWVDIsCkKcQjUwurLdfQWqOmOqqPn2vZew/c0LXu9TkpSSQhhDQEBRtIs/P3UMNdrSh7XmqqHqEnpMlRWwgAkFqgxwM/n6g/K/lVKjJYEJ+jQ0RSQbNsvzZmq4jTSQUo0Jnx/aHL+OZAA4IdNbTGGVDpXGmJXk+1XhTYpwimWAMhpCaclPvqeEJ+TW9dFVcnOd67fUBZPpmuXpqy93gO8HVzAgAEejnjndn9cd+owKv8JEJIe0TDKEizc1bKEdTBBadsFyN6c3mwgdrUhJQTGUNWkRH5OjOC/bVNss0DF3NwKC63UsCvKdm/w9d8gdzI9S0CQ0xGMVzVCnx7MAEapQwezkq4OzdwP219iZszsFC5u3L5szo/sx1XipMmTepgMpleBuANQFQqlVu2bdu27aabbnoVgD+kGyROw4YNi/jqq68+qLjuypUr712zZs0tAMwAhBUrVrw/ZMiQSy2+E4Q0Ian3VvVKodRkvcoNoloFpJTx6O+vRScPNZwq9ETVKGX48q4h6OQuBRu8XFS4fYh/2bSXhBDSEBRsIC1CrZCV/S2KFbInt/AtPMrVQOyS8nT44J8LeHh8dwwMcG8V0w2WGq14aNUpaNUKrH14VJNss8hgAQAUGixQtuZGYgMOP2PlQwwYGAQRsAgi8nVmFOqBE1fyMSXYt/I61f7b8M+7Vlwdz2pTQ0nbjfDwcJnRaNx15syZ+CFDhrhyHPfp5MmTz3z//fffAVBdvnzZ+/bbb7/fycmpqOq6SUlJ/sePH49+7733/po+fbqpe/fuaQ7YBULqVGqyIjK1EE5yGYZ0ca+WDHbLmTScuJKPJTf1QpHRgtwSc9M2k+qohlYvHFmpPHIZj5HdPKFRSZcKMp6DWkmXDYSQxqFag7S4ij+cLd1dmHI1ELs9MVk4kZiPkd280NvPFc6toBEliAwx6cXo5q2pf+EGqprXoKmvsWv7PjHGkJBTihc3R+GRCUGY3Ne3liUb+Xm2D+TAQS4r3xuRASarWOtQCe46ijS212EU0dHROYyxf4OCgswXLlyQ9+nTpyg2NtZ/4MCBhwHg1ltvZQACAHxcyyZyu3TpEj9w4MCrmy6EkGYWnpCH1/+Oxuwh/hgQoIWiQh2mN1vx+39JiEorwsFLORAZg1Vk1zz9bm0JIe8O6YJNEallz7t3cAEgDVGzU8h48DQ7DiHkGrTi21ykrRIZK/vha6+NauJ4erMAq8hgFsRWdR62oqLUy2C2wmCuvTuv2cpwOqkAG06mNNlnVjw+8sb+gjXm4Dpwlozr6RxoSt27dxeCgoLMADBx4kR/AD0ARANAUlKSMiUlpf+gQYMK//jjj4RaNrHw8ccf/7tTp07/d/z4cZ8WKjYhDaYzWZFVbMSWM2mY8dURbDiZDNH2A7Q6PAnx2aUwWkSkFRqQUWRETsm1x81qChW8fVswFo7pKiXwriOW0Bp6/BFCrm+Ov5VH2h1W6e8WHkbBSXdECbGjs+Hqjf1wP4zmuhO+igww1LNMYxTqpWEhHIc6xg43wb+qo04MRkFYT09PTUFBwW8qlerNoqIieyY8DYBxCoVij5eXl1jDaj9/9NFHv4WHh/ObNm165aabbrr58OHDmwcPHlxp6hA/P797TSbT/wBwXl5ezb0rhFTDGJBqm0Yys8gIg1mARiVHeoFB6p3VpB+GGuuyUd294eGsAAfAQ62stIhcxuH3B0fi+JU8yKhXAyHkGlGwgbQ4e0OagRrVpBWgthSAyvkQGqrYYIVFkBrHNR3Ghm6tvnnf7awiw8OrTgEASoxWfL0vHq/NCK5/45CCEy02qWRDd4hUo9Vq5cXFxWtlMtnW/Pz8P+yv9+nTxw1ACICPalrvgw8+yLH/fcsttxzZsWOHvyAIGgCVgg0JCQnrGGN/Msa40NDQ5pmihZBaCFWGRazYfxk9fFwwfUBHlJqsEK5xyAQAKHgOPM/BZBVx66COmNTbB6vDk3AmpbCsWpLxHDw1SvzftD4I6e5ZqQcDB2B0kDdGdvcCxRoIIdeKhlGQFidWiDBQrIG0tJQCPRJySmGwCNf9CZhaoEdagb7sgr8m1QJ6dTQeGxv8q68das8XUV+DVXq7/g9nDLiQWVL23GARkFxQ8XqRVctRYX/WbG3mmop9DR/GatiH9qS4uPhbAFf0ev1nzs7OAgBkZ2crjEbjyL59+14+efJkZtV13n//fYVSqdR8++23igULFij/+eefIQCKABirLuvs7CxoNBqjs7OzsWpyPkKakyAyWKrklTELIsxWEYtXR2DzmbRr7tng7+6EN28LxtKbe4MBkPMcunlr4OGsgLOCh4wDbhvcCW5OcnAchztHdEF3b5dK2+A4KVihkPHVElgSQkhjUbCBOIwgMiTn0Y0l0rK+OXAZN35yEMcv5wG4vm9Av7UtBhM/OoDY9OKGr9SC17H1fVTla+ra/yWmfn4Qd/9wvNrrPMdB61TeQa++fAcHL+ag2DY7x1VjVf7fRCcQq+Xv9kStVo8GsADAJLVafUomk53w8PCYAsAJwI0cx+2wLxsWFqaSyWSzn3zyyUdEUdRYLJbnH3vssRNr1qw5yRhT79+//59hw4Y14otByLVjTAoW6kxWvL0tBq+GnS97T2QMAmPldYbti/7sxnPYHZN1TT097av27eiGWYP9IeNtA0Y5rizY66yUY9XCEHwwdyA8NUoAAM9z4DiOggqEkGZDwyjaqGXLlt3+/vvvvwDAKyws7OGZM2ceGDFixMOnTp16iud5AYAA4C2dTve3k5NTEw8SrJv9rl2RwYKXtkTh4NJJLfnxpL1jjplekDEGkQH23qpN0bhjDLCIDHV9gRszlKHRn1+tPFV6FVxL47nCyhezSmtchoPUWK6xMDVYeeAysq814Zr947imDVRRUx8wGAzHAShreo8x9kjF57NmzTIJgvCX/flLL730JoA3m7eEhNROEBnmfHMU7molPpo3CD8euYKePuW9BhhDpWESTVmHcAD83dWYNqBjpanGq27fVS1v3VMgE0LaHKpx2iiZTBbB8/xTAPZWeWtVQkLCeEEQhgmCsKWlAw1A0+VpkC7e2neXY3LtWuoiLyFHhxFv/4ttkem41mG5gshgEcSr205tO8yuPfzCIA1zsCc/s2+x6kcyxiCIdX93TVYBBfrKvRBqXL6eHgaNyQ3TmLqkuc4bRgkiCbkuMcZwNqUIxy7n4duD8dJrAKyCCEFkMFmFStNK1lWHVKwCaltOXnWmCFvwomogm+Oq/p96MhBCWg4FG9qot99+O+mRRx6JB2Cu8pZCp9OpS0pKnEpKShzyayOyyj+GosigN1nrHHdek4uZJfg3NuuaL9xIO9XC501UWhEsgoj9F3OuOQnYuhNJuOv7cJy4klfvss154Vq1AjFZREz74jBuX3msziENOSUmbDiZjNPJBbUu80pYNEa88295MjUG7IyuNly/SZ1PL2rQcs196lCwgZDWz2QRYLGK1YKUZkHET0cSAQBpBQb83+ZIbD6digGv7cZb22MrLVvbV91et/br5IbQvtVncdUoZfjx/uHV1qlaJ3MANEo5XJ0UmNTbB94uqgbtGyGENBUaRtG+mAHcHBwcPA1APIC3GGM1zleem5vrBEBVUFDgKopN2/mhaj74i1kluO+n//BkaE/cf0PXBm9nwc8nkF1iQuybU6FWyupfoQJBZDBaBFgEEYom7FLI7GMyWV3T8lVmMAsQGINGKaO7Dc1EmmmhymtVnouMocRohbNSBjnffHd+mmKzcVmlOJVUcHWfX8t9smueHaaO/ap6LLdGZuDT3Rcxd1gAjJaap8XcE51VucsxgKfXn620TMUy22eauJZduG3FsQYtV62nRg2vXYuWnhKYENJ4y/+KQhcvDR6fFFTrnTuDRcDm02nYEZUJcNXrirrqDReVHH8sHg2LIGLoW3sq3VjhOA7eLuUjjso6eFXZIM9zcFLI8Mm8QeB5Kc8NIYS0JOrZ0I74+vqGBQQETA4ICBjP8/xZAK8ZjUZF1eWKi4sVQ4YMuXvIkCG/z549+8OSkpLqG2usCr9vNV3Q5Jaase9C9rV/TgMl5Orww6GEsiSBTcVgFnDiSj4Ox+VWmnWjLh/tuoin1p2uNB0WaVpGi4iEbB2yioy1Xsjll5pw65eHsf9idhu71Ks8lKEpL2RZrU9sL7Ga3yo1WqAz1xxkuFqcvSVvY7KIMFmFsruOBovQ4O9k4z+76bStc4+QtmtXTBY+3XMJmUXSpCcZRdUmPwEg9ebU2+q7xtQVqx4cCbVCVmlayooUMh4+rip0cFFJNytQHtjVqOToqHVCDx8XeGqUUMh5yHiaXYIQ0vKoZ0M7smLFipLAwEABAHx8fHbl5OTMQw2/fW5ubpaUlJSfAfyckJDQ74033oi+1s+u+CFVL1AclXPhfHoxzqUWYnyvDg1eJ7PICMYYOrqra3w/PqcUyzZHoa+fG4YGekCrrhbLqWbL2TTk68zNdiFEgJOJ+Xh3Ryym9vcrm1qs6l3w2IwSFOgtWBOehNDePuBlTdsou9a77tfyuRXVvles0YEIrtYnlYm2/AwVG7qsnnUaqlqZbU//u5KHf2Pc4Gb7Du67kHPtH9ZCqCYg5Ppx6FIuRvfwxMSPDta5XGN6QLmrFejmpSmbgrIqDoC3iwo7nhqHEqMF3x1KwNH43LL37xjeGXcM79zwnSCEkGZCPRvaqLS0NI/c3NweALwSEhK6nT59uuP06dP7btq0qd/p06f7WK3WmQCOA3Umsm8eTZix/qqLcJXrPbvhDB5fe7rW9y0CQ4nBCgZGwYNWJLvYiLRCAyxWEVah5kyILXXDp6Xvglc8DRkY8krNsDYyP0rDVN8zeyBASo4m1rP01anta5ZSYMCa8GREpTV9Hob6huRcE0p6S0irV6A3l9U9l7KKsWTjuXrX4VC9rlDJ+eqJHgEsntC9bHiovWdD1XUVMh7eriq4qhVl7Q1q1BNCWhvq2dBGbd++fUhmZub88ePHe/7111+3/fXXX7y3t7frl19+2ReAYsCAAdkAPnVycrK2dNlEAFZWPvmgIy7Kr/ZCJzwhv3yqvZqwxt8dvtYykatgz9rt6HJcg6vJE2ARGDafTsP9N3RFoJem5o02sgx1vm9bQGRSsMFJUSW3ShN89eu68LeKYv3JOFnjp6CrKQlbU2Fl/yGEtFbrTySXzSzx67GkhgV+Ub2u6OzpjGKDpWxK3i6ezijUm3FjHx8o5VLoQM5z6NfRDefTi6Vt2DZU1uHBNoMNx3EtFzUnhJAGomBDG7Vo0aJ9ixYt2ufocthVjCdIifgsFZ5f27bzSk1QK2Xw1Chb1XhExgCD2Qqe56CS15/Akq4vmh+r8jdDDW2zZvuHaNoNN/RMr5g4jDHAKjJcyipBoJcGVkFEepERxQYLevm6NrqEnP0D6ph2sqHlbY7DbhUZxPoqmKpjvFpBFUJ1ASGOlZSnQ6nJiq5eGqiVMlzJ1cFkEaAzC/BwVmLruQxYRBFS/62GVRo1LcUYq9Q+eurGnkjILoW3q6pseY7j8Okdg3HT54cqbUjG87b/c3B1kkMh4+CiomY9IaR1oVqJtDhRlBL2lT23/dJebZzgpyNX4KSQ4YWpvRu2QiM/xyKIkPG15fCvXUq+HufTitCnoxuGBXo0cm1yNYwWAacS85FaYGjUerXmFGlKtg2n5BtwNqUQw7t6wGIVka8z15oDpLnYG6n5ejO+P3QZmUVGfDBn4NVtrLZgTSPzsXAA0gsN6OnrUmmMcnZxzUnXqn5cTQp0ZpSa6ui8ZQsulO1CKwk0ULCBEMcKO5uOQ5dy8PikHuiodcLKA/HIKDQiq8SInj6uiM8utQUJrq3SYAB6+rrAKooo0FvQ288Vc4cFVFuup68Lqn6arRqHs0qGib194KSQoW9Ht2sqDyGENDUKNpAWV/nucvn45KsNNvxyLBEAsHRq7ya/VmCMYd2JZHT3dsGYHl6NWvdkYj4+/zcOj0/qUW+wgS4umka+zoyX/oqCQlbek6TYYEF6kRGWKjkDys472/OW6hTz35V8vLM9BpsevQHbItNxOrkQr80ILusy2+SqXPBzKO9+W6S34Fh8HrxclMgtNZV1CwakYFmpyQpfNydo1YpqGdF1JmvNQ4YqzjxTT9Gk6WfLl1odngg/rVOlBvPf59Lr3FDlnBTSNvVmKcCgMwswWuvIT1FHjwyHxR0cmDSXECJ9/0xWEaeSCvDrsUQoZTz+u5KHYqNUryTnNy6YXd9nzR0WgMNxuTh0KQeyBv4QcQDknFSRq+QyjOvpjTE9vGuduYIQQhyFgg2kxbEqVwcik344+dZwW7EKQWT4aNdFdPfWYHTQmEatqzcLdd9VraD17fn1SRBZtYZgdHoxdp7PqP2iswmTNxQbLMjTmeGlUZbNglCTc6lFYABW7I9HYp4eS27qDaVcWevyjVGoN6PYaEVnD3WlYUUV797bG7QcB8hlHBgD4rJLcTIxv2z53TFZOBafi0AvZ9w5sguCOrhUasiuPZEMsaZDWnWsSh3OpRYhX2cue37wUi6clfF4aFw3CLZ64o+I1Ho2U/6uwSwgvdBQdlFQr1qiCjV2d67ldUJI2yKy8h6XBy817yw2jAE+rircE9IFgwK06OCqqnVZGc9VykFTMS7BcRyaeAIlQghpEhRsIC2irmC9KELqytwKfyhFW5/m82lF5UESBpgsAvZeyMb4nh2gUclgsop1ZPivPu1ffHYJXJ0U8HYpb1i0wt1vE9IK9YjJKGlw95Fruad87HIu/j6XjrtHBmJsT+96t1tkkC6KhRruZFc9Zxpq5YF4ZBQZ8ekdg6GQcTV+rj1owIGDnOchMoYLGSU4UmHqtCu5Ouy9kA0A6NvJDV08nSHjy3uM/HgooVK5axyKUM/BvJBZUu21f85noshggcEsAAxIyNFVXqDCVT9D5Z4NOrMVuaVmNJi9rA2IJLTk95M6NhDSssxWEedSC3E2pRAD/LUobWjAsoFkPAeVnIfeLFR63T5sanhXTwzv6lnnNp6+sQfMVoav98cDQKvKUUUIIbWhYANpUVUvDhgAEZW7s1/Txpv8t7eGi0AwnEkuxGd7LkFnsmJqfz/8fOQKGAPGVbnABGq+cPjlaCJKTVa8MTO4qQtMalPruVF+4X2tLmSWYEdUJib08oEoMkSlFcHfQw1PjbLG86DsWrcJLy43nU5DXqkZH80dhKqTP9jZczaU9WwAYLJWHtJQkdEsVJs1ptRcuTHOwJBZZKjw/OoDN8cu50l/1PRPUvdkMNUDNw05uHVts+6369fIDVDOBkJaXoHOjG3n0rHpdBp6+7miUF970PJq6gR/dzVCunsi7EwazBXq2cYMmXp0Yg8IIkNWsRFJ+fpGloAQQhyDpuQlLa7qRYvIpFzOVaP0hXozzqcVIcc2JVS9miHIX1s7IDFPhyu5OkSmFqHUaMXPRxOx72J2g7bDGMO5lEL8fS692l0O0vKa697Q5ZxS/Hg4ARtPpqDEYEFNl5Bc2R36mno2XP1nVxrJwCp8lm3Ikr27rdT1loPIWP1TRNb2WbbVRAa8vjWmjpI0j8r7yqo13htTgqqBUKAJzo8GzNRR9R3K2UBI02OMIa/UhNf/jkZqQeWLdYNFQG6plFA2IqkAl6v2qKqgYoeoGr+pNbzYwUWFhTd0w+OTeqCrl3OFMjUwHspxUMh4qOQ8np7cEy/c3MCE2IQQ4mAUbCAtiwEFBkvll2y/tFXzGu2OycLyLVE4k1zQUqWrhrGap0esOJ2gwBgKbftUtecGIF2EVXxJEFmNy5Gm0dDDWnE5UQRKjFbpXGyif5fsEhMuZJbgTHIB9JbagkoVxgNUUGKyYu+FrBrXiM0oxpXc2hvCFbZa6xt82TCK8pwNtY4CQs3ntf31soAJY9XGNzf7KV6ltZ9WaMDZ5MJ6V6lNpTHQ9S3cQLVtorbRJlQvENI8GIBzqYXYeCoFYWfTKr3HcdXbIPXxc1NVq2tlHIcFNwTCz01V9pmANHNEZy9njO/VodLwSTe1Ampl/VNjl5eTQ4CHc71DLgghpLWgYANpUQzAkbjcSq+V31Ct/LOdXmjAuZQiFOgrBydq2mZzqTHbPqp3faza4JB6apRvo+J2rCKr9cKNXLsGtxcr3LreFpWOFQfiYag1KFCdRRBRZLDUehfafg5Yavj3rhisqvjcrkBnxu//Jde43SNxuThdzwV1RSZr9X0qy9nASX8zxiCyOqINtajvWLfEhXPF459bYkJ8Tmmdyzf8eoJdc7eGhna3rm32UEJIE2JAscEKiyAiKU/q2aA3W3E2uQAp+YayIGxD9fJ1lQIUFb6wLk4yzB3qLwURFDJM7CUNreQg9SLr4KpC9w6asuUn9OqAXj4u17xrhBDSWlGwgbQwVin7vL0LIQeuzgSROSUmlBgt1YZgAM2buM0eCBFEaSpA+6c36mKgyt1XQWC1BjGIY/wTlYHYjGI0dCSBySrgwMUcvLgpEmdTCmtchuelLBCibaMVN20/Z/kKvQIqsoqs1uFDRQZL+SwnDSjvlrPplV/gUGlWCQ5cs+UJqGmfm2p7Nb1mZaied+KqO6uUl7ilv63Uu4GQ5iHn7T25pC9ZWoEBz248hw92XkBCbYHKWr6PPTq4SMM/7T3GOOD3h0ahh48rbh8SADe1HAtGd4Wcl5bhOcDXzQmPTeqBO4YHQM5z8PdQ1zlzESGEXO8oQSRpYdUvOUQp2lBrF0aDWcCney7BbBXw7JReCPBwrnlBwHaHluFsSiGGdPZo9J0KAPji30sQRIaHxnUvK5MI4P5fTlbfm7rGY7Pyvyu2VSyiCMYAGV/5aFBe6ZaVUqAvy5lRarRWCjTUd61nMAs4nZSPqNQixGeXYkgXj2rL8JzU5VWo42LXnpTyKtMllJ00JUYLYtKL0MPHtdoiubagRfnMn43MVniV4wnySk14/58LlTZ1rWqbkrKh7zfl5zZovavIJFc9NEUIaRIVAq0WQUS+zowdURm4kqsDXyUIW3U9ABjS2R0Xs0rKfje8XZSVf8M5Dv39tWCM4e6QLri5vy+sAoOTgi/r6aaQ8eikVcNPqwYgTflNs0oQQtoy6tlAHK62BJF2RquAjCIDDsfl4s+IVOSUmOpMoPZvTBaeWHsG2yLTa13GrsRohc5UOav+4fhc/HjkijSG3/YaByC5YvZnVv56bezrilWS1tmHUch5niIMLaSms0XqTiude6yeZattjwFWQQpsWWpJdiDjpQamyMRab1XbT3mxkdGGqku/uyMWD606hdzSBiZTbairPD8ZGIqNFkSlFlV4rZnUs+H0IgOKK+SJudZyNGr9qzl+DUwYRwhpPDnPwyoyHL+cjzXhSfjh8BUAUsC3aq+oql/DkO6ecFGV36Pz0Cgxc3DH6sMoOQ5uagW6ebvA30ONT+4YjFmD/aGQlc8CVJ5kkr7shJC2jYINxKEK9Gb8ejQRVpFhd0wWlvxxFnmlJuRVuGiyJ+3LKTHh24OX8ctRKRBQEwYgKU+P3NL6x24DwKrjiVi5P77S51msIvRmQcq0UEs7wD6co64bEvZGRNWcg/ZhFDKu8mSL1ORoPvXd8WaNHUfAlSdZrG21sp4NQu3NSXu5Gtuzoer+XMwsQXqhscZhRtXVfl7XukYDlq/4XTBaROw8n1l9GsomV2VIUg0fF5tRgpwK3+9rje+1RHyQ6gJCrk1agR77YrMgMoYrOTqMeX8f0vINyNdLdUFuqQkrD8SXD0mrQdXvulopA1+horuxry9uCPKusx2gVsgQ2scHc4b6l91Q4WrYNiGEtFUUbCAOpTcLOBovJYw0W0VsOZOO8R/txwc7L0hj1qtcRxgtIvJ1pjovqgQmXUyJDch3Z7SIuJKnQ2EtSSjr6kFhFRm2nstAgn2KrIplrXTxWjnaYLWVr2oDhRofTawZr9g4SF1ua5wy0vbUHkwSWO3Tm9kbnw0LElRRYZWrGYZhtAiISi1CbEZxvcsKIrDhZDLSCw0NKisDg9EiVnhepcCVXm9CXPVtCrUkZL0WtW6uCbpNMLTfng2+vr6dtFptmFar/U+r1R739fV9uLi4WKnVal/XarXRWq32iFar3TBjxoxhVdd97bXXemi12q+0Wu1prVb7yZEjR/wdsQ+kdZj77XE8tvY0BJFh85lUpBUasOTPc/h/9s47Tooi7eO/6u7pSTvbG3sjbGCXnHNQkCiKIhgOFc94ypk99UzoiaKiYjwU9fQ154RZFEUySAbJObM5707uev/omdnJO7MZqO/n07DT012pq2uqnnrCf77dDqB+PtEgXu8iT+p9S2kFDnoN7zHrzEo04N1rBwXc7glZqfGLOOEyqRB4Ng1nMBinN8xnA6NVGJyTgGV+USjceGsuOhQKh9WJ0hqbGg4q6Aq8acty/7udCg25gAo1FXFfXWdzYtX+Eo9fhmDrTn/NhnACDEbT8ZjJN9hN1CsjfRpmmxOv/LEXo7vIyJdjwBHiEmr5peAdXpIgUBjhwnuR3xgNAEoarmJxtSVk/Y6W1+GuzzbDoVBkQl+fbpBrn/ppJyiAXSdr8PAF3Rrn0CyYsCXIJdG83cEUUkJpsTSnMK+h0KLR4t9nz9QRoqqqSrFYLE/W1NRsiYmJkaqqqhbJsrzGarXSDh06vLp79+63AFCO43y2o5999lny5JNPTnE6nfsBzAbwyNixYwevWbPm5379+lnapDKMNqXO5vQIE9y/72sPloV5t4KPEt7jrLdWw+J7z4FJJ2BwdgIW3jkSWUkGaLjIBAc8R3B2fjK6pcZicA4LYclgME5vmEiV0SrcPKpTVNc3ZXfPE04wxP3+p5UwO58NCQbcXq1JiOsJgPWHy7H9RGXAorS1FxRP/7wT+TN/ito/QEtQXG3BL9sLcLLC3OxpR77eC76yC/XMrQ4n5i/Zj39/uRUgBAKvCir8gx+4Uc0o1PSCXVJWa6svQgSdvazWhi/WH8Ufu4u8Sx+2I4145o/Ak16aFo4gfSFY+zkUVYOj1uaIUAsjyKS9gc+h8g5HYZUVj3yzrcG82ntoSe/yHSmr82h7nWmYzeYCSulao9FoNZvNJQD2W63WdACUEGLX6/U2vV5v12q1Po/Q4XCkOZ1O/bx58/ZTSosuuOCCZTabrYuiKFLb1ITRnuBJeJM3leCjj/c46z30aXkOhBBwHEF+SgxEnovYITUhBP07xmF8jxTEGVgkCgaDcXrDhA2MVoHjCHKSjA1f6ELVBmidJcG+4hoUVFnURSFtWCAQIAgJYTLu3idZtb8Uby0/iAMlqrnFnJ924VBpbeAit/FViIj3Vx8ODAvYRuwrqsWMDzbgmYW7Gr7YC/czak7tEOqx+4/APID6mjyo0U+C678QQkBAVK2FIAIHh1PxCMacipqWtyNDf5btKcbjP+zA9hN+Zg9h5rehtCqC1jWCJg13iW8xgl9JKYXNocDqVEIIS6J/rmqXDhTyeR5TBBoVEdNKrw9TfgL0en0OgJ4ANgDQHzly5AFCyGpCyKyxY8fG+F0eC8DJcVw1ABBCil3nxFDpU0qZ5dppiP/vg6JQT/SIJkHU34ohOQl4ampPxOjqFYMJiT6iBCEEXCPuYzAYjFMNJmxgtBpf/nNYFFc3ws46YPEePAH/n/aDJXXYcqwCNVYHtp+o8nEYFdK8wnsy4/qzpMaK7zafQKXZXp+zKzOrXYHD5USipMbqWfR7p97SU47TYf1CKdDlkYV4c9mBZhM4hPKnEPoGv+cfwtbGZ0csyPeqRgxxmd9QKBQ4WRla47u5np+TUmw7UYVvN9dHa6mxOHCisl7LJLRAJ7wScvDP1LMraHUo+N+y/Zj/x/76C306fvRvAfH61+c88bkgRCkjweseti5oFTiOkwB8bDQa762oqCjlef55nufzeZ6fAkBPKb3F75ZIrGkAAEaj8TpBEFZrtdrVJSVnpgbJ6c6dn27yRJkqrbXi/1YcbHKaHFHNQV+Y1hdXDO4Inb8PBgaDwWAEhflsYLQKhBDEG4NsMoUwpnbS0HbsITcCSMAfQQmW6vO/7kHnFBPeW3UI+90OH0Nd7Id74Xmy0oKP1x4JKFLovWXfVejpIAxoCpRSOBQKQtyOuAKfo7tPPLNwF24cmdtM+UbX9icqzbjlww0YnJMIhYbWHnCX3uZUsO14JSx23901d13VMqhphNvkisSDOfWqjCOEFkut1YkHv/7L59yh0jocKq0P7fry73uDCmBUoUhwQUSNV4QYq13BEpe5R/1bQLGnsBqr95c2UIvmxXeIaYy0IFBng8kcWg6NRqOnlH5iNBo/qKmp+Q4AHA5HCQBs3769rGfPnr8D+JvfbdUAeLvdbgIAp9OZDKASgM0//dra2ncAvKMoChk2bFgEHgIZpxIKBVYfKPOYiN328aZm+W196uJe6JUZ5+O3gcFgMBgNwzQbGG1LiN/tZbuL8ev2wkatwP19NlBKYXU4UWcLHeIqVD6R+H3wWXh5VLcbLriiAPuKajyTIndTmG1Oz65MyHtddbI5lNPG4eSh0jrc/OEGvLH0AGqtwdVe3VX1X6QHvziyfItrrGHMDQKxOykOldaFvsfv9J7CGtz68SasPVjm0W4BVPVe98Q1ksgpDeUD+Ha7B77eGpl/jiCXWF2mDv4s3V2CrzYeh9UR+N0+LyGdQ6E+5h5uI5VdBdVY6SVsaImeG/EWdyMJJ0BsjmgUZzJ6vV5wOBxvAth//PjxdyorK41Hjx7VJCcnZ1VWVsbU1NSkAhgCYA8AVFZWCmazWdRqtSdFUay766678gghGT/99NPZRqNxN8/zlW1aIUar4/AbTDceqQh5LYEaVQJQBdxGkYdB5H3GjHiDBvEGDeQYHUQWOYLBYDCihmk2MFoV1WFe4PmA3UIvFegaq8Oz8Ak3F6cUqDTbYXf42tRXmu14fel+7DxZjf9c0B02R5CFrFfm3mWJxJZf8b7Jz+cgcS9NgkQOsDoV/P3ttX51oLjlow04Vm7GortHhcyzoNKCj/88jDiDiBvOyglbvlOF3QVVOFxahziDiAqzzccm1o23aUxBlQUmrYAYncb/ItWDeJBVZrBd+deXHkBKrDaqsrpNH4JCVEGCwxX/1N01qi12n77voPWORRsV+jKgr/n21B+2ngx/v1+fDUg+yBa+2e7Ekz/uxMX9oo8qGDT0Z9SpNExr7DsGa5smZR6mz55JJCcn97NYLGMA7MnPz/8egAPAC4SQKfn5+V0B2JOTk9fGxcW9snDhQu3VV1897vrrr09++umn362rq/t23rx5twH4GsCyb775Zl3fvn1ZJIozAIVS2J0KNDynClgjHE5TJB1uOacTHv9+BwZmx+P2MXnYV1SLl37bg3JXOOx7JnTBZQMzIbocQjIYDAYjOpiwgdGqJBlFFNf4araq8/bQysnvrDwEu0vYEC5Qod3hxJRXVyDBqC4cFUpxpLQOBVUWvLnsADqnmvD7zkJ8t8V3Eeafs/tvh5OitMYWEM4SAKo9jvxci9dwph1hvg7GH7uLITTg1fqv45V4bekBXDm4IxwKhYY/fSZB4WpSr60CDJuzGNMGZeKZS/oEJBAqpOKR0jqU1AZoVsPp9PXwQSlQUWdDrF4TXG3W5beBoH6B6DYxAIAdBVWwOp2otjhAQEFBVCeQXkl4ax04KUWN1eHjLyQc3n3Wu3RRabk01GWaoUu5y2l1KDhebkZxtbXpiTaRpppBULSAUCBInz0TOXLkyDoA6UG+Whjs+qKioh/dfz/yyCP7HnnkkbtaqGiMdojqZJdgf3ENVu8vweiuKdBrOCgRxJ2IN4roGG9Ap+QYKJRC0mswIi8ZpV7zEwpAr+GhFZh/BgaDwWgsTNjAaFWCLdxCOXhz4+tJOvR1lWYHjpSZcaTMDIEjqDTbMfaFpchKNIACKKm2YUWQkHKhUtxxshIPfr0NdTanr7YDBd5ZdUj9G2Ec43l9YXUoqLU6A1Q8o8XhVFBtcaDOtSj1ttE/HYi0Km53BAs2nQgUNgTB/ex+2lYQ9HtvAUSt1YHCKgteXLQH/xrfGR0SDEGilNAAbYTKOjvKa1Uh1AerD/vkTgAcKq2F08uPgsNZ77PB7lTwyuK92FNY3WBdvOvjD/X7O+h1Qb6I5tpocN+682QVpr/1J6qsjlZfVIcSJjaWqO5voP04AiQYRZTUBArAGAxGaGwO1RcOCPDkjzux4XA5dpyoQlaSMcA/jj8GkcczF/fCqC4ytp+oBAEBH0TAzwSADAaD0XSYsIHRqoQNZ+mamPvPz5uyWHAoFPuLa8G5VJSFCG0uKYA/dhXD6jK58M+zoq4+RKG/7X69n8p6NfldBVX4bstxJJtCq+tHstA+UWnB2ysOoqDSAqdCUVprQ1G1BRnxhgjubt941u5hdnn9hSsNhTV3KBQWe3QCni3HKvHd5uNYsOk4MuL1uGdCl/q8vaiXG6mFOF5hxpEy1clisDXmsXKzz2cnpR61XIdC8ebygz7fUwBWuxN1NifiDBqQBtTsKXxNFUJeGuSLaK51E42jNLuTwu4MIWgIsSAPt04P+l2IG9p0wdBA5kZRwB1j8vGf77a3TnkYjNOAslobNh4px/w/9uFoWR2qXcL3z9YfC3p9wByCEMixWmh4ApNOwJDcBIztmuL5jsFgMBjNBxM2MNoPxOc//9MhiXTzlRDSoHmCd54Bi6kgGSlK8HCFFFCNsF2U1Njw7qrDOCsvOaL8Q1FSbcW7Lq0KAPh1RyG6p8Xi9rH5TUq33dCAyYm/SUtDE8Nj5XVYcyCa6AfqQ3YrIHgLknz8gNLgfhY8USUiyMX7umDOJm0OBWsPlWHzkQpcMbhjgyVvshZDlDTblDyUz4hob2n2NULTW4pC9cIcSpDIcQRJMUGi9DAYjKBQSvHj1hN4YVG9X4WQ1yK0Wxo1GhBBTlIM3rp6ILQazpM+oGocpcbqgkfRYjAYDEbEMGED45Qn7C64FxwB+Ch8G5TUWH0Xt0FutTkVLNldHLgscZ2IZJOkAT99YXEqFPYoIim0BygN53QzfF38NWOCyY68n8WewhrsKayJonShvYJ4CxfsTgUFVb5CJkrD6u0E9bPg7e/B+wIKoLLOhgWbjmP1/lIYRN6llRO+lwTkH2anP5qldLBrI9FsaC7BRnMSeZmCqFlFCQGg1XDhtWuang2DcdpTZ3PgSFkdBI6goMoSUtAQyp+NzwWAx6SN5wgM2sCp8Nn5SbhueDbyZFOTy85gMBhnMkzYwDij4KOY0q85UAq7Q4loIRDqe080ikbc2xpQSmGxO2G2K0hoxR2cUBFJKIDDpXXYeqwSkkFEjN8k0P++YKEdo23PYGY6wRwtep+psjiwen8pnAr1hCml/hc1UC5KAc51VlHgs+gkULU4HE4FJysteG/1IeQkxTRcN1r/X2P7bCTXlgZxsuldhFNl4dxgWZuhInoNH1TY0IAck8FguFAUih0nq/Dyb3vRKTkmrO+jBsc9AnSI1zeosZBoFJGTHBM0KhKDwWAwIoeNooxWpTER/gIJvp0dbl/ZE8UgCm+Ktbbg/hoiwaMmH8XNlAY3yQibSSNW1hQUNRYHjleYkZscg4/WHkGNxYG7xnWOMrHGE+4p/HmwDJVmOzomGtAjXfK9z+9Gm4PCandCq2m8t/BgTWgO4mDMO2+nQlFeZwfPEWw/UYlDJbXqNY3MXAlhfuFO70iZGWW1dggNaOZ8s/k4LHZniy9e3191KOSEP6x/lUb22SZVyO/+xvp/aQyZcfqgfcmdNwGg07CfYQYjFIpCcaCkFh+sPozle0twssLS4Djog9/7r+E5XDsiG52SY4JeTghRf7eZ7wYGg8FoFiLzlsdgtHcIgoY09MahUNRaw3upDkWjZCRBbqqzOeAIYfbw+bqjePG3PZ5b7U4FxdUW/N+KgygPVrfGzIWIumh+b/VhPP/rHlRbHHjx1z34ZO2RRiQWSFmNDQWV5oZDMAbRUPDWUthVUI1Kc6CarDtd79ujdQDpRqfhQjqYXHOgLDDKSJAqORWKzUcr8ONfJ+FUaFTCLMD1CCmwYm9glJTGMG/xPo+QrCWNaz7fcDRkPw5LhH3WJ+WmzvlbaM2QFCMiuQF/C51TY+D2SRustQgB4vSa5i8cg3GacLLKgpd/24NvN58AAOwrrsGugsii9gAIeP95nuCcLjK4EIN/VqIBo7vIyEk0QCuwKTKDwWA0Fbalwmh1WkrNevme4voM4Du5pwCqLfboJileRL0Z67Lf97/vq43HcdQVscCfF36rd3ilUIpnF+5CnEGD15ceQJqkxfm9goWfjx5KgQ/WHEZJtRV1Vgdqbc5mUxV9ftFu1NmceOFvfULnD/jEQa+os2HpnmIs3lXkF+ZUDUO55VgF+nWIg07DBzhWjIRQ/c0oClCoAzZHoLBi85GKII4Vgy+uy+vsOFBcg6G5CVFr7hCi+oj4elNwL+o++VMKSiOveUvuy1GK4JP1Znq5W3VPsZFlTo/TgwAobjBsJfH61+8bQhBn0CDeoGnQ2R2DcSZSUGnB91tPNjkdCtXHz4W902AK83vXNdWE28bkQeQ5JmxgMBiMZoCNpIxWpzkWEt9sOh6wMHWrsofKwGIPdOrnzbqDZSipsTZD6dSJjZPSgIgFS/cUo6g6MA8K+Cw2KAXeWn4QCzadgMNJcbAkuICiMSigngV2tDvx/jicCqwOp0fj4KuNx7Bg03FPqpRSlFRb8fvOQtRY7fWaCV7ZHimtwxfrj+GX7YUo89Pg+GHrCby4aA92nKyCEiICREPariH9aUQR7kChwJajFWHzaYyJkDubSrOjwWspgvuSaAsUSoNrhZyKmscEGJQd73MqklbmCAm5O+qTfJhLCFSv9xN7pkaQI4NxekIpxYkKMyx2B9YfKsOBYtWpr82hoCjMb3Y0EABdUky4fUw+DGJoYYMo8MhJikFGvIGFwWQwGIxmgGk2MFqV5loqfbDmMOpsvgs0UfC12492XfbdlhOosjRyd9Fvd3TXyWoUVFoijhQRakpT53I+2JxTHp8QjmjaM5m3eC/2F9fiqam9EOulDl5WY0NijAinQjFv8V6sOVCG7ukmTBvYAYNzE31yrbU5UGW2w+Jn215ZZ8eS3cXYcrQSBZVWKJk06DMNmA82o+pMhUsAZHcqePn3fSGvo1AX4OH6XLBikQbEvf7pNauooQntpNBwUWCax9w5XPGa6xG7y9ol1YR1h8o9591p8xyBbNJG50slGgigFTh0SY1tmfQZjHaO6qRYwYNf/wWjlseJCgvSJB1evrwf1h4sxevLDkSXHgC9wMHiEqhnJRog8hxsTgWPXNANHRIMLVALBoPBYISCCRtOU957773hX3zxxSUATI888si8IUOG/HX33Xcb9uzZcxOALgDKADz/ww8/lLVtSaOHACipscF/Ha+JxmlUEIJpHAB+C5tQqxy/cwVVFhRWWZptcRjN4s3uULC/uAYdEw1Bd3AqzXZUewlVmtJqv+0swvYTVXj0wh4+5+/4dBM++scQKFSN6rG7sAZHyuqQFKPF4NzEiNpl3uJ9KKyywO6sN3PwWXy7nkVAWpH6BYhA0vLH7iIcLq1FskmLHSerwqal0PDJBZOJRBI+sj6P8MIM/7Sj7bPRQClCdkrSTKEco1A8aXweroQ0fHCpj4YnODs/CUNzE7Fg03Es9/KtEW/QNLzz6S+U8WqY+kdJTkmFEAajuTDbnVjqNoMEcKJCC5tDwcYjFQ1qlPlDoL7PVlckqWcu6Q2R5+CkFAOy4hu6ncFgMBjNDDOjOE3ZtWtX9Y8//rjxxx9/lAoLCxMBYPny5ZN+/PHHxKuvvvrTlStXOn788cfpFoul8W78m4Nm3KqNRKW5McUgIT+ET6spVXOvg+ud8EVet5+3ncSj323HxsPlPgt1NzM+2AC7UzXx+OTPpjmGdDgDa0kBrNpf6vnsroJCqaopQINpVwSms+NkFUprbb6+N7xvdC/aWtCyoKDS4lHprS9E4HVuzYZon3q4p2q2O3GguLY+jyDtFlG6UfTZaPDXRKFeCZ1Si2caWlBJQJAUo8WkXmmY2i/Dc94g8uiVISErMfwuaYBMJkRUjCYMXQzGKct/f9+Ly/+3JmgIY4VSmG0Nm5cFw/udG5AVj/5Z8RiUnRCVcJfBYDAYzQMTNpym3Hbbbbsvu+yyxQCKvE6fD2DZkCFDVmk0mk8AXAKgVYUNg7MTfE8042+/M2DCEvkSyrsYTV27RlylMAtHdxoOpwJC/BYjDRRw24kqbD9RhZIaa9BJ3GbXTpFCgY+bKQqFNw3VX/U94HeioTQDdoPD3x/JM6QRCgcC5DXBKujyzxG14CNMY5ltTuwr8hV0eCff1n3W7idoIuESirSATaxI2NtDfUkADceFvVQUOAzMiseFfdKQEqvDLed0wt+HZUPXQMhVUeAQSeu6HYUyGGcS768+hD8PlgUImyvNdvzrs834YkPDjnP9yZD0ITWVGAwGg9H6sBH5NCUjI8OWnJxshe+8OfOHH344lpWVZQewD0AWWnETkgB48PxuTQ/1FqLEwRbWzZh8xERcihC7nN64F3ShdkeDYbU7oVAakXJ2JI4JWwLvNjpSVofdhTUhr/W5L6hgIYjTyAjSqrLYPe0b7plpIvBITqna/6KXNYQuKQVg85J0KAjuIFNNp2k0ps9GRYjAFc2Wvt/tAWk3YNch+C1OAnxrEAKdhkeiUQutwCE9To9kk7bB8vzjrNyIPNqT8MVjME5LPOGN/V5Yq0PB0j3FKGkw0guQnWiASVtvLpgrGzG+ewo0PIfPZgyFwNSGGAwGo01hPhvOLPicnBwnABQVFTlMJlPQbbmqqipNjx49/g7gYkKIqX///s1WgFRJh1RJhwpz84d5O1pm9vncVo77Gzu1CbYesisKOELCLkp3F1Rh+/FKpEk6GLUCnIq6w87zpFGF2VVQhWd+3oUxXVPw92FZ0ScQAqtDwQ9bT+JoeZ1HJd2hUNTagoefDEao5TylFDUWBxxKZOmoedf/Ha6ZIvEFYrY7seNEdaDJRQNEo9VLFQqlhdSAm7PPtnSejUq7gcyECJ6xqpFDI0nOQ3aSAXwDix1R4NA1zRRhigzG6UewUdsRZvPgnC7JyEowYNHOQlx/Vg5+2HISaw+p7qe0AodbR+dhxqhcdGTOIBkMBqPNYcKGM4vys846K27Lli3chAkTEmtra8sQZBMwNjbWvnHjxk8AfH348OGuL7/88urmyJwQAgLa4OS7IUIJEZbvKw7+RSsT8QLM78Jg91jsCgwiH7Ao9b518a4irDlQCo4QPHNJbzhcKv0aThVSlNZYcaLCHLHmR7XFgWV7SxCr1zSrsAFQTQP2FNZg8S7VukehQcwUwhCsCpQC1RY7xr+4DENzEpuppPVEsjO9bG8x1hwoRbUlck0RSoG/jldGfL2T0hZTRWvOPhtxHkEybQ7Hkt4JRZLe5D5pETuXpS6Hj5HKfNQxLzwcAUy6Jmp7MRinMNGE9J0+pCMeOK8rKIAbzs6BSavBr9sLPd9zhCBWr0GsTp3esvCVDAaD0bYwYcOZxYry8vLRiqLsLC0tvZRS+huCbyogOTnZDMBcXV1dxXHNu8SJ9Kc/9EIhuK29vw15xNOXZlvhqJBIF1FR5Bmg1u2Vpt1JPeYQb688iGqzHZRSz0LnhvfWY09hNawRag+Aqv4vAn1gNAMEKKu14bcdRZ56RDIXdDgV7DhRhQSj76LMSSnOfWkpemXGobDKih//Ohk8gQaecbiv+Qj6v8WuwGJXoupKv+44GdTBZigoBZzuXn0K9Nlgt/qkGSStZqsSCZFnEGZP6YWvI7ANpxRQPOElmq/x2WKIcaZzuLQu4mt1Gh4mnQaUUpi0gid8bUacDsXVNvTrEAeR59h7xWAwGO0EJmw4TXn44Ycve/311+8G0P2SSy65lOO4/9nt9o8AzOzcufMKm81WDOB6nU7X6kb7kU4Cwvmaa2iJ5lAoFmw6HmGBIrssUmgQ64VwdYko+yBtFuy+Pw+UedJ1/3+y0ow6mzPI1X5loRR1NicKqyyRlKhJOF07WX8eLMX2Ew3v7n+67ig2Ha3AY5O7B/gtKKq2YfFOVXgRUkDSyGdMAfy6vQBJMR0juj6abIqqgodaDVcWz4M9FfpsENpi+t9QniLPReSXwzu9cMpZ5/dKxcp9pR57dLboYTDCM/2tP6O+p/69ovjv5f0g8ARmmxNxBrHJYbAZDAaD0XwwYcNpyuOPP/7lrFmzvvI6RQVBoA6H4zq45t+CIEShwN5+iDTCYNB1Z4iVknt3pMELIyCauyK5VlEoCistKK5uWAjgG+TB5fwwgrZyOCn+PFCGFxbtxrrD5T7fLd5VhEU7CjGxRyqG5iZAFJpv16ikxhaRE7ATFWbY7Ap2nqwO4SSyEXg94nC1eW3Jfry+dH9jcgiLLVL7kVOwz7Zn4vQaVFnsPuODJiLTLle0kQa8OUo6ETwTMDAYYfE2nQjnn6EhCCGIM6gabzFaZjrBYDAY7Q0WjeI0heM4KgiC4nVQABAEwXO+rcrW1HlAKI/8YWlgR9i7TNG5gAuTV6jPUWJxKPjf8gO46q210WUbRb6ltTZc/uYarD1UHnDf/uIafLL2CK55Zy0eWvAXjpWbA+5/4OutqAsSE52CYm9RGKeJ1O//EBwqrfNoQ4QjwuRUQoYuCEyzJSxK7A0JG07hPhtpUi3hw5UG++BlfaIEyTVSPzKqz4bwDlsBNOpRtJE/23aHoijEfQQ735h7Ge2P5ooeBbh8o3gdDAaDwWg/MGEDo9Vp6lSgUVMUEuLeIIk1earSgD56s0yxwpabNl8+fuw8WY3i6kD1/993FgX4zACABoNDEK//m7HAQZ8hDfGxjeamDUbgOE36rCepCPpsc0BCfnB1syDNruEjCG8KVXgWkZ8Rr+pE7EwysstOa/R6fQbP8wu1Wu0Wnuc36nS620tLS3WEkJd4nt8qiuJqQsjzY8aMCQjfcf/999/P8/x2jUazXqvVrlm2bFm/tqgDIzgKpa5ISerx5E87W8YvEIPBYDDaFUzYwGh1Grvz4J6WnKgww97ISUpzOryLGOr7J2mO+VXYcqtf0kjtTXwIf71C64NPNuRBnAJ4/tddkWcbsFMf5FNTV73U92NLE664kfqGPJP6bOOIQOPFK/n7z+uCRKPW5/tIQl+CujRcvPxb8IQEaEVwnBrOUitwTIAQJXq93qHX6++z2+299Xr9OVar9aakpKQ8vV7/VZcuXfpu2bJlMgAbgCtCJPHfDz74YLjdbh8ycuTITa1YdEYDfLD6MB78eisqzXZY7Ao+XXc0Ko0xjgBdU00YmBXfcoVkMBgMRrPDfDYwWp2mOpdbua+00Xk3sxP/yDIhfn82sgAKaGg7/2DRBChgiyLagUr4wimuXSkAsDuUsCYtlAJvrTjUqGxJiE9N3gnzE2hE9Cia0GnC3VYaga+KJmYfOS3UZ6PKs9EEc2gROu2B2QnQib5ydiECMwrVQadLs8GV+NT+GVAoxdcbj4NSCodCMSArHn8b2AEJRg3iDGKTzcbOJMrKygoBFALA4cOHa2VZ3h8bGxtfWVm5HAC2b99uAXAQQKgVp7a2ttZUXl5OYmJirBqNhm2dtxM+X38U209U4V/jO+P7rScDzcgaGA+G5CRiziW9kJ1obNFyMhgMBqN5YZoNjFbntJ98h6lfU2a+pdU2fLb2SMR5KpRif1FNVOEVG0Kh9XX4Y3cxqiz2RqfVGFt+m1MBbVIrNoLTvb8CLdZnG5tnc6fdUFaRRqNwy9bcY1in5Bic2yMFmfF6ZCcZ8clNQ3Fx/0z06RCHDglG8FwE/h0YAZw8eZLIstwbQMeUlJSNAOB0OklJSUkagKEAVgW5rS42NvbiO+6445OEhIRHv//++yy73R7Q+AUFBfqTJ08mFhQUJCoN2nkxGoNToag021FtsQcIiO0OBe+tOhhodtfAa8KRyISCDAaDwWhfMM0GRqvT0OTbf4OjOXd2W0sDPVg+Ta1HWZ0NCzafiDjfxvjRbAhFqddsqDDbmyTICNcWob4rr4tMG6Cp+UcL67PNm29rpylwkflsUEBdTujqz2t4DjoNB62GD7oYila4yhMSmVnHaUx6enougOe6det2344dO2qdTidZuXJl+jnnnHOdVqvdu3jx4uX+9yQmJr7z6quvvrVhwwb+f//73+xLLrlk/Pr16z8dMGBAtfd1o0ePvsBms10JgHARPHdG9OwtrMYTP+5EglHEPRM6o0O8wfN7tPNkFQqjDPvrgempMBgMxikHEzYwWp8oHbm31bS7KQuhYPdGJ2JpHk5WmiOK4hApVoeCOpsTToXCandGKNCIrm7hrv5le2FzZtVssD7b/uCIy6kjBTQ8gVOhIW3EA0NfBrdLct/v7XemY4IRY7ulID1Oj5RYXUDaost3Q7hXRStwyJdjQAiQFKNFrwypgdqdvgiCkAXg+T59+ry9efPm3wBgxYoVSeecc841Wq1WM3Xq1OeD3XfeeefV9erVSxk1ahTZtGnTX0uXLk0AoAPgI2zYuXPnFwC+UBSFDBs2jKk2tABfbTyOFftKIOkFTOmXgTi9xmNyZ3PSRgkNVGEfg8FgME41mLCBcdoS7VLIfT3PqQuT0PeGT7lxy6+mL9oClksUeOqnnag0N97UwZ/jFWb8trMQXVJN2H6yCnX2wHCXPmUiAKXR1S26q/2ehf/6MOr0muvm1skyjKuFqFJuL322OXCnaRQFKJTCYlcwJCcRe4uqQ+6oBppRBC+ZGvrS99sYnYDrRuSELM+ITonYdqzKS+gX+Cw6Jhjw/e1nwWJ3Is4ghkzrdEev15ucTucrAIpfe+21ratXr+5VW1tbMH78+L8DuCAtLe3fd9xxR/727dvL0tLSCnbv3h2fmpqq+eSTTypmzpzZ8d577zVt2bKFW7p0aa/u3buvNhqNdW1dpzMZq0PBir3F4AlgsTsBAH8eLPX11xDhoEdpw06JGQwGg9H+YMIGRqvTWuu3aPNxX2/SCqi2OsI4I2ydGjR1rUuBoOEom8qHa47g3B6p2FNYDYs9/F4TB8DZ7CXwhoRtpyY9qXagIdF8158afbY54TiCRIOIlFgd7h7fGS8s2hNS2CCbdOiaasKuguqg3wP+DiIj5/Yx+XhrxSE4He53MbDPEkKg0/DQafgoUj79GDduXKbNZuMBWGfNmvVPqMPHpxMmTOgFYB+A6bNmzbL06dNn+dSpU3+YNWtWtwsvvDA+Nzf3jwkTJgzZunXrCEIIN2HChL/mzp37R9euXWvbtEJnEBa7E5VmOwwi73VOwdsrD+HHrSdR5jKB+3CNn9+hCF4mUeCQZBLP+PeDwWAwTkWYsIHRupDWdRDZmMWPom6htERxglK/BPE9GaqdIq1TSzpSrLU6QwtjXAWkrjCZLb0ADZl2lBm3l4VyY8vRmuVvqT7bGAhUMwn/yCsiz2FizzRM7pOG3OSYsGl0TDTgsck9MO1/a0ChmmDkJhlRWGVFvLFe00BxZRhN+F69GPgz2x76WXvk+++/3wng/CBfrQx2/S+//OI5f/nll38I4MMWKhqjAfYUVuPrjccxvFNigAZCYXW9kK8xY0FOohGX9s9Ecoy24YsZDAaD0a5gwgZGq9Ma3tndE5rG5MQR4tb/D5lwRA4BG5pVub4PekmY+yKtU2WdnyfwYOVpoIzUK9SlN0fLamG2+eoslFRb1SZzpXewuBYKDVyQRtIm4fBcEuJaz+koH35bLwCb0mcR7r5TqM9GVEi/c3qRR06SEXsLa3xCwxICdEszoXt6ZP4PBuckeMqqFTj8+9wuWLGvBGfnJanZutS4CUjjBaausmclGnC4lGn4M05dbA4Fh0pqUWtzoF/HeOwprMa7qw6htMYaVqMu2leHI0B2ogGjushNKzCDwWAw2gQmbGC0OsTtLa05VnfB/Lg1MemRnZOxbG8xKuqC+DogPv/5n47gZOD3LdUUi3YUosbq5VMhWCYNZLy/uBabj1YEnK+yOODw02z437IDPueW7yuOOr9IGsLTfUJcG01bmrQCeI6gymJHQ3KZUA+qQ4Ie6ZIefx4siyzTBvqsVuBgdTSjK7RTqM9GVEi/czFaAcM7JcJqV7CvuKZZysZzBOf2SMXYbinQ8PX+HGg4YUsDuPtsaqwO/xrXGWsOlMKk0zSxpAxG21BWa8PcX3fDKPLo1zHec37l/pKIFQMbJfBkMBgMxikFi/vEaHVIU7ZvAxJT/6OBpxrNZQMzkWgM7qStOQ0TBmbFezzVt0QeK/eXos5P+4CG+DsUm49W4PedRQHnlSDOuj5bf9RHk6LW2nLeGtwCh6aSbBLRPT0WWsHXFth/cz3gpBfd02JxYZ/0yDMN02cJAH0z2yW3hDFNS/XZYDTUZ41aAUNzE5Em+UaCII0UCtTfT3wEDe78iTvxaNNz/X/3+M64qG86HrmgO+4e37kJJWQw2gZKKcrrbFi0oxDFNVacqDBj4+EKAEBZrR3lwQT1QYhmnGUwGAzGqQkTNjBaHS7SiXoUK5gAVf3GJQMAMOk04ANC4TX/hsvA7HjoBA6gTReWRFo2EuLvUNidCixBdtkj8Qru9r7fUgvRYOWPNi+B55Aaq4PAB1E1CJOPN5z3orQZ+ixtRm8bLbZJ2I76rF6jmlF4X9NQ+/XOkCBwBPlyDIK86kGhcJtRIOJ7/BmUHY/LBmaCEAKjVoBeZA7vGO0bSilsDiccLhMlRaE4VFqL/y3b7/oe2F1YjZ+3nWxE4vV/EgAZcYGhYxkMBoNxasOEDYy2IZLVVCQT+mCCBeL7mYS4Ntq0m7JoC5a1U6kvb1MXhA3eH67uDWwdB0tboQ0viAsqLSHvj7Ro0RJtOxIA5XU2OBW/+kQpyZBNWmQlGpqlzyreYVfbWZ/1Trjd9FkEChhI8Ms85MkxEHiCkZ2TwQWRHMRog1kY0ia/rw+c1y0q55IMRmticzhRXmsLECY/+PVfmPnNNqzcWwyHQrH1aCUWbDoBADhSVocv1h8Nr81Ag/7p8yKN65aCf43r3LJqUgwGg8FodZiwgdE2NLMZRahkfdQ0SZTzmGi3zsN8Fywpp9KMdvkNEaLu/gtd77+rzA6PwMAfhaLBxiyrtQXPL7BooQmnpdLESalqQ0+ws6AaFruz4S4Z5oIOCXp0T4uNLOMG+qyP74h21mdbdR0QaZ9F8OucCkXIgCmu87JJ65PU+T3TkBKrxcxJ3YLe43F42sjxq3/HuMbdyGC0Am8uP4h/f7nFE9J4f3ENTlRa8NXG4/h83VG88NteOBWKQ2X1zk1PVlqweFegqZ0bCnUcc+P+86K+6T4aQiPyEjE8L8lzgciz6SmDwWCcDjAHkYxWR6dp3klEOHVs7++aRb4RLpEoM3AqCONIq/kV4AN2yxvYod16rAIHSmqCfqf4awL4oJZ9w+Hy0GWIFP+FeTM+UPftVWbVOaR/i0fzBHQCD6M2cpX4UGlTuEKv+pWxSUTZZ8d2k0EpxeJdgQ4+w5en5frs5D7p+G7LCZ9zOoHDuT1SkOVlQuGNQqlPW/qX1CcxF/+e2AVFVRYfh3duVHMZAp4j0HBsIcQ4/fhu8wnsKayGQ1FQYXbivi+3egQCFMCOE1X4fVchvtpwzHOPU6GhwyAjuH8XAuDW0Xk4Ky8J9325FRSqOZT7WkmvwZyLe2F3QTXmLd7bfBVkMBgMRqvDZkyMVoUnBDee3Snwi0i3TEOq+QdPoLGO7B65oDsSQjiJbC5CLYRUWkrV2rU1G0HyFWY7jpWbg6cSQdlLg2g2NJkgzhUbC4Wv7X04rZiQCXhdHDKka5R91r9ftLZWcb4cg07JMY24s+X67H3ndgk4G6MTcN953XD10OygdzkVVSgWNEVXG/so9RCCnCQjhuQmQhQCfxqTTVpcNiATlw7IRPf0CLVYGIx2zpHSWpTV2KAoFDVWByiAt1ccxLVvr8OGw+VYd6heaGxxOPH0z7twpCzysK3eb+DLl/f1OF/OiNNjcp90XNgnTXWMK/LQ8BwEjmBEXiLGd0/BOZ2TkWAUMbxTYvNUlsFgMBitDtNsYLQ6PTPqJ+omrYBRXZLxw9Z651Jhd5hDrmdIRPuq4b7vLMfguhE56JRshE7DI96g8ZgC1Kdd/xdPCPpkStgYJDRkg1CA5+ptzRu1TGvUjU1cEFJVJVZBZE4iQ6XRPFoJTUtIlblEtlcfNCcfQQXxCVDQlD7rb13T2BoG67ORwBESXAztlUxr99m0OD16ZcTir+NVnrM8R5ARpwcAVFkC7cUVJbRmw8X9M3G4rA7juqUEdQYbDK3AYUhOIvp1jA/h04HBaJ/sLqjGW8sPoFtaLK4/K8dzXlEoXli0B1VmB24alQO7ywnk2ysPodLsfqe8RhKKkALoUHi/Xb0yJB/zCK2Gx70TuiBN0mNUfjKMOgFvXj0AuckxEDiCbumx+OTGoZBjmeNIBoPBOFVhmg2MVoUQ4jO55zmCeIOvBkHUO8xRXheKDgkGDMpJQIxW8OywBGrs16+2dBoOj1/UM6K0A3wNEKB7ugSNJ/RlIxbuLbGR3FAxXKYXoXaMI0o0Anv7yJJregMQLjIrg4ZyEnjiM4luSp9tLv+BwfpsNATrs74ptl6fJQDmT+8f9hr/0qhmFMGvzUo0YtaFPZCVGNwEI2gZCIFWw8Ok0zAnj4xTir1F1fhuywkUVfv64FFAUVBlwfJ9xbjjk80orVGF65Vme7OOs+HITDDg1tF5kAwaCBzBWfnJ6JBgACEEOg2P/BQTJL2mRcvAYDAYjJaDCRsYDBc8R1QBQwQLCUKAHhmxSA0SqqtrqglXD8tCnF4TfDnmSl6n4QIXhBHQomr1ERYjkmgUQRNtjsI349w3vO+JyNHwHLSaQJ8NBpGPeOdcTYdgVOdkz2eTTsBZeYno20Fqchl5nuCBiYHmCBHhrkKDITtceXEEQ3MT8JpLQBCqjfPlGCTHRGaulB5nCH+BXyYJRhFxIRYpPEeQGKMFH+H7zmCcalBKcbLSjF+2F6Cizg6LQ8HxcjOOldf5XEMpYHdSFFVbPeGKAbSYjCFF0vqYr3GEIFavCvCIK4xwxOGxGQwGg9HuYcIGRqsjcBymD+kIg8i7Yte3fJ56DY/Ocng7dBrVAlpF0mnw9jWDcPmgDp57tQIHSacBx/nujPunTTz/REfLTMOoz38NodBGPrcghQ9XH/8smrur7C6oRp3NGdU9AkeQJvkKmTQ8gTaInb9O4PDqlf2QE8KJoT9pkh7n90r3fOYIQZ4cg7HdUqIqYzAIgDg/LaKGPG9QAOd0ToZs0tafjBC9RkC2q96hbhN4EjT0ZKjyhMP/7Z3YKxUjvQQ3DMaZgsOp4HiFGb/tKMS/PtuMJ3/cCQJg4fYCfLf5hMdcgoYY9lvyJ/ntawdh1QNjoBcjd6jLYDAYjFMXJmxgtDoanuCB87ribwM7APBdJASb5BhEHhq+aUvs7CQj/nNhD59z14/IwYyRuSHzbYg6qxMCTzA4NwG5yUZfLYUgm/kB5iEtvHsTXZ2Iz38NseNkFWqsjihLFJpQZY3WpMao5XFB77SI83V6TbY7JhgwKDse4da+8QYNXps+IECwoOE5zzlvJQCthkOCUYQQwYKaQNVk6JUZ63Mu3iCiY0Lgrn6jZD1+fS4SHyfJJi1GdUlGrM7XT8HLl/cNq5VAoIaWnD6kY8hr/IVWY7smB0T12PKf8Y0yLTFpNTCwBQ3jDORIWR3GPb8Uj/+wA3U2J8x2VaBqc1LsLqjGHle432BReBDkc3OSYBCREqtrYeMMBoPBYLQXmLCB0eq4VSXdHt9piFB/7rMcadrkR+Q5dEo2QiP4WpoLvFoOd75BNQ9CQAGY7U4QQtTy+dmzE9Qvolp0UkVDLTppi+Zba3XA4e/JsAl4ytrELTWDKOCcLnKD1wV71iZdw07/CCGI0QUuYAWeQCuomjqE1PcB2aSDTsNHvFjmiXrPtEEdPAXjCAlwZNkhQY+kRkRLCRe7ngBB258jBDNGdsIL0/rWazgA6JMZh44hfB4YRR7Th3ZEglHE1H4ZPt9d0DsND0/qhqwEA5xeThwv7peBc7rI0PmZoxj8nDESAFmJesyOwF8KM5FgnIkoFLA4FNidvi80AfDdlhO48f31WLW/RH33WlC1kAJ47ar+GJAVX18Gl7kEezcZDAbjzIAJGxhtBk8IKCgcIby4+WoKNH5iIvAEcmz9IilUSv7n+TALMyBQbdv3u4bncO4FaUMQggAnmm4SY0SkeC0APZm38L4RpWgZXdsmFpsjQIy24d3sYNlwhISNF+++T8MF9gueEAh8vUjgtjF5GNNFxq2j8yI2oQCBalLg1d0JgCDZ4YJe6ejbMc7z+V/j8pHagMd2jhAM65QQKms1zyAN427T0V1kxHgJZASOBGiBiAKH724dgc3/mYAxXWWXMM73osQYEeO7p6B7eqzq+8PVl64Y0hHJ/n3ZXT6vNHiOYGq/TIzvXm9akh6nx0V96s1PUiUdMuL1wRuCwWgGqsx2fPznYRRWWhofmScEqi8FCqdC4XQqEaXvvkehFHW20FpnFMCJSgt+2V6A4+XmFjOZeHhSN+x5YiIm9kgFzwQLDAaDccbC4ncx2gyBJwCFR9gwqnMy/jaoA279aKNPyMFwJBhFT3jKsND6yU68QYNYvSZgoSTwnM+5eVf0w6WvrUZZXfD0nV4b+565oKvgJp2AJJMWFebAkHzRQgDoNRzKvdJ3kxgjQivwKKq21peliZogkdDUyXVEERCjDJNIoS6oE2O0SJW0KKi0NniPNwQIKmw4Oz8Jy/eWePqiRuA8i1/iyhMAYrQCYrQCzHYnOiYacPf4zgAAi93XJ0Swal02IBNfbTyGGJ2vQ0OeI9AJgcM0R4DHJ/fAxB6pyEkyolemhJ/+KkBBlSV0sxHV3CMv2Yh9xbUBBSIEIFRd2N96TickxWjxfysOgnDqzf4aRv5CBI4A86/sh16ZUthdSwI1Ig1HiOqgk9b3WSUCIRYhquaEdx5agUOKlx+NC3ql4WI/jYqsRAPKa2OhE5hpBaPpvLPyIN5eeQiEAFP6Zgb4IHD7AFIFeZEPZJRSrDlYBqPI44kfdsJsd2D+9AHoEMSUyn09AJysNOPcF5djYs9Uz7lwQ+hn647hs3XHIi6XJ78waXqjF3mIvDpWPjm1J3acqAopTGQwGAzG6QsTNjDaBAJ1Z5QCcHipevo7VFQXc/XneY64dm/Uz5E7+q/P46z8JMy7QvWS/9wvuz3n/T3T5ybH4Jd/nY3Rzy0N6p8g2IKbcOru7sj8ZIzpKuO1Jfvx1cbjDZYu3qBBUowWe4tqAtMkxGNyEsksrzX2kBwKRVOMKCIqY5QV8fQRQmAUBQDRCRs4QmD3Mw0ROILsRAOW763f/Xf7D8lNMmL2lJ7ommoCIQSX9M/EkbI6/G/ZAZ8FBscRn529QN8dwCUuYYNHicHVtbITjZg2OBN/7CoGIV5CLQKYdBpc5vJ7AgD3TOiM+7/aivI6VcClEzhYHL71CRoZw3VqSE4iZozKRb5sgkmngWzSQitwICCqIMJfuOClcaETONicio8gxjt9n7JDbWuOA5yUQvEy+YkkyonAcbh6eLZvFkEWc/7nnpzaq4GUGYzIsdgVNbxqiIFQoRRzF+7GhX3T0T3Nyw9LGMEDpRRVFjs+XHMYW45UoLzOhlqbE7V+mgreggwKoLLOjivf/BPVVge+2FAvQGiJ3wJ/U8dwebjrmp9iQn6KqQVKw2AwGIz2DjOjYLQNpF6zQWnAjMJtAw8Ar181AA+e39XjrC6asIINoeED1cKTTbqQFhz+xTbpBFw2IBP3jO+MLqkm5Mkm5Cb7RsAItZBaft8YLLp7FLRC8Mz8bfZDJdacKrFB03KdPFRaB3OUURyanHeEcCSEECqCHXOn03ex+9pVA3D/xK4+t7v9fIgCh8x4PRJjtAHpeD8vrcDjtjF5SI/TISNOD6PI1wuPXLgdSCpeK3LZpMX0oR0Ro9Wgd6aEqX3rd+oVL18Hbib0SIVBrJcf//eKfgHtEFKdmQAZcXqM6iwjPU5ffxIuIVyQW1RfEiruVgvmCDPFpMP5vdLcF3ru5UCgKL5CCLcAr2dGbOh3m6htGoxWCGzDYABw9TUa2sJv5b4SvL7sAKa8uhIAUG2xB2g5+bOroBofrD6CXS4HvP4+F6jLROKvY5VYua8EALDxcDn6zV6EQ6V1wZJsuA5NIGjV2UvIYDAYDC+YZgOjzeDdmg0NqOR7T2gSjCLy5VS8s/IQqiwOcK5lXagU3OuVSLT+o43v7b/Y4whBRrweQ3ITQ97jnbozyC6uf21idYLHjj9cYt6aII3DdbdXIqFU8VuD+kVsdDtp9TeH3sEPBccBMToBOoGHwBMolGJcN9lj5kOgPh/BKzKKz0IZqklAsGwm9U6vX3ADWLanGNe/tx5ORd3Vj9EKMIgCUiS9y+mnb89IMIoeNerkGC1yk2Ng1IYevr3NO9xoBQ6c652rL3No3yGdU2OQk2RE5xRT0Ly8Q1ZSLyGCP0Ytj84pMfhN4Dxt6Xaq6lQoNDyBUcuD54jHNKlbqgl7CmsCzFqCCWr8681gtCah+lyluV4bodriQP/Zv2FCjxTMnz4gZFo//XUS8xbvAwDE6TUB39danRj29O+otqhpb5s1ARsPlze57I0aZ0OlxwUffxgMBoNxZsKEDYw2gYBA4DhQqA6wwsERDoTULzqyk4xIjtHhZKUlrN9IgSPonSlhV0F1g5steg3vURuPFN+FZnhitDzsTgqrl1p7UCeLXvXRChwW3zMKlWYHbnx/fdj0k01aWB0KKkP6iAg3ffSWMDRymtk0SUdIAkwOIrjebe4Ar7+VYCtsPzhC8MSUnliyuxjjusso9PP5QADEGTTQ8jyMIg8npb4LbqgCtBidBlpNYD/yVp8e1UX2KULnFBOemtoLozon1ycGXw0J4tLYuG5Eto/5RDCyEo0+74Ze5PHPUWqYV2+tAO8y+L9LXVNj8cbfB4LnSFAtg2BaEsGej6TX4KI+6aAU2HmyCrE6AQLPQavhoddwmNq/A4bkJKBzigmHSmoBqgoygpmbvHH1QOwvDDQ1YpweHD9+nKOUxhNC3J20NiMjo/bYsWM8ISQeAEcptWm12srk5GSf0bOyslJTU1MTA0AEYE5KSqrRarXNFzIngHqRIAVFUbUFigIYtDxMXsI5hQJL9xTBoSjYcLjcYwLhcFJQUFSZHTBqeR+tJEAVxPkLHXecrPQRwD3y7TakSU13hBrtOBsMnYZDVqIRNocCDUe8NKQYDAaDcSbDhA2MNkOv4V07xaEX+DFaASmSFgWVFk+scBXXDmkYMwpR4DC5Tzp2ntwd0qGhQcsjNVaHi/qm48ohWUiIIpygv2ZDOM7KT8bRsjpsP1HlORfMGaH/4i/JpAPHNewAs0+HOJTUWLHpSEWIK8Ja1gb8HbXswP/iaBJoRkEFIWoISndyCUYRiTEi9ngvUEPkxRF1gjxjVCcAQKdkt42x+pyMWgEvTuuLeKOI60fkYPGuIp9QkCLPoVeGhHvGd8aQnNDaLUHz5ggm91WjKVSZ7fUhNN1CE1dUB0rDC7bcQoF7JuT7nO+TIeHW0fmwORRM6pWKgiqLj2NVguC25OG0CDRe7224V4EQguykGNw1rrPnnFOhGJKTgMHZCRjXPQWSaxdXcWl1BNsVJYTgrLwknJWXFDqzdkpSjAiLvQXXvacJeXl5aRaL5fm8vLzYffv2EVEUl69evfr5AQMGdBUEYXZ6err2yJEje0aPHv3U4sWLT7rvKysrIw888MDQN9988zoAWQDWffjhh69Onz79aEuVtd5/CkFZjQ0Xv7YSRdU2XDYwE/ed28Xz7joVits/2QxAjXZzvMIMANh6rBJWuxNzf9mN60bk4KqhWT6/CdVefoKKq63QCbUoqLT4/O4s2HiiTcZZbwSOINmkxeQ+6bh6WBa+WH8MnEvQz2AwGAwGEzYw2gSeI+iREYueGbEYlpuIpXuKYfDy5h2jFUAIcGHvNGgFHt9tOeFzf72DyPCzJ/fXodZCE3uk4uy8JOQkxyAmjFq6G+/5WjTChr6ZEkDhI2xQlMjMWzkCJMSIOFZhRmqsDkfKAm1zVT8FYdqiQcUG3wuimZMatTzqrE74+D9vyGTBW9ugkRPgoKq/RBUKuBfOA7LiMaVfBp76aSeqzHZUWRygAAwiD7tD8Qm72pDWL88R9MxQJ9AXD8jExQMyfb4nhODcnqlR18PfQzvPEcixOiQYREiu6BTe2hrhSI3V4li52j98fGq47tXwBDeclQvJIOLhb7b5PIdGqU27CpVs0qKszgadGFmkB54juLh/ZsB5J3WbWZxeKthPTe2JKnPocIQMld69e1tsNtusTZs27erbt69py5YtSwYMGLAIwDXp6emf/PTTTz/37NnzWgCXA3jRfd/rr79uevPNN0dnZmYuTUpKWnDgwIE5V111Va+uXbsWDhgwIIJwRdHjPXx9v/UEaq1OgAJfrD+GRIOILmmmgBtKa2y44n9rMLFnKj5YcxgJBhEnKi346a+TMGp57C8OrrUzc8E2nKg0ezlTjmyc9aGZxlmeEHRIMKC01opqiwO5yUY8flFPDMqOB89xuGt851BJMRgMBuMMhDmIPANZt25d7+XLl/dfvnx5v+XLl/dtizLwHEHvzDi8fe0gTOiRir8N7IDx3VM835+dn4Rrh2ejV0YcJL0mYFFOVcP2sNEovO1GKQWMooDuabFI91I7zU2OQa/MuIgEDWqa9SXxVkxoUO5AAieGwfzue+8u90xXF7YGUcB1I3IwvlsK7hqXD0LqHfEZRAFxBg0kvQa6cCYgDSo2NH5xN7VfBnQa3jX7bjgdkSfNEgLN+1n4T4i916qDshMw99LemNAjFe4S9kiLRWKMrxZLqNYjALqlmdA1tWW8qd87oYvPZ73I46ohHfGPs3Mx3LWLH8qvgj9ZiUZXxBZ47Lrd9wMuDQmOIEYrQOAIshINar1IcCeQkXLL6E6Y0D0VXVJiG744DLQJwgatwAe1c28PnNMlBZP7ZkQVAvFM5M8//yzdtGnTLgB46aWXnACKAcRoNJphgwYN+hlANYANAAb63ZoFwPHggw/u37RpU9WoUaO2AMgBEIOWwjX8FFVbUFxtVX8PXI/39WUHsOVohe/1RL2lqNqKlftLYbErOFFpAQBsOlqBhxZswy/bC4NmdaSsrl7QEOE421y4x1mdhgMFEKsX8L+rB+Ayl7A12aTF0NxE8BybTjIYDAYjEKbZcAZy6aWXzj9y5Mj+8ePHVwuC4Bw+fPhdPM+3ug9pjhAYRNUx3qzJPQAAv2wvgFbgkB6nxz2uRdjrS/fBXwcglEO61FgdCqosns9utXIKinw5BvOn9w+rGt4wBENzErDmYJmXXX19JAttCJOQYFPDYEE43NfxHMH86Wp4TlHgMKlXGiZ0S8Hvuwoh8hwMIo/yOjs6p8RgRF4SjKKAn7edDEwwGE3UKPDnprM7YeG2Ai8zl9BqFCLPoWuaCSatgMIq1SeCpNdA4AlKayLYgPRJ2lcTQ8MTDMiKd32u/y7ZpEWySYv1Po7Uwgt6vOE5gleu7O9jNtAcZMTrYXMouNRPQ4IjBKmSHpd4nyehy+eN9xXJJi3iDBqU1doD7qVQzSCG5SZidFcZN3+4Mar+MDg73sePQ+cUE64amh15AiFQFFUE15ggMzlJBlwxuCOW7ilm9uKnOD/99BM/adKk8ziOs48dO3bH5s2bY7/88ssKABg+fHgtAH/JnwGAAsDs+lwJVQARMMdZuHBhpqIoHQEQm63xSg9qT6X4bN0x6DU8bH6+h95deVj9w68vWx0KdnhpuEWNJ72WsYvIl2Owv7jG8/vEEwInBdLj9DhQXAuOI+icYsLlgzvi7ZWHmj1/BoPBYJxeMFH0mcsTX3755e0//fTTnW0haAhFh3g9Luidhtwko+ccpYGaA6F2QC/qk+7zmXjZUWg1PLKTjE1eiDx7aW8A8GhDCDyHfNmEwTkJHjV7f/x3pimCh/z0dmwox+oCEvHY7btuNYgCLuqbgXHdUzyL4Xw5BkZtoDo79UoHxO9cI+nXIQ66AGeIoSfA8UYNrhzc0TeNjnEex4hZiQYk+vnN0Gs4H/mC/+51hut5mnQaPHFRzwZNDnKSjEiI0fo46KRh7iGEoFNyDDq6okE0F3eMyccdY/Miutb9yCgQ0v+I50LXdWd3TsIFvdO9T9fjlYb7z2h0G567rA903s+lmVAAgHoLCSMnVdLjhrNy8PhFPXBB77SGb2C0Sz7//HMyadKkcYSQK6688srHvvjiizqr1Wr7/vvvtZWVlWTSpEkCAH8pgR1qN3cLF0TXuYAu9OGHH+a/9957k957770LrFar/9dRQQEcrzBjX3F95JSWGGeDE/7ta0yeIs/hvoldPE5kJ3RPwegucsgE283EgcFgMBjtFqbZcOYy9t133+2l0+l23nTTTTvbujBuuqTG4pELuvsuzMNMcoxaHoTUX5OTXC+kUBfnvtc3hjFdZZTV2rB8rxrXXC/y6NuhfoGs4TkMyUlAZrweWYnGoGlwHPHZXSZQfT74LxwbWvBxhICCBvUX0TnFhPN6pmJyn3T8d/Fe7DxZ7Zc2Aj6fnZ/kqVdDBNtHu3NcfoBTzUv6Z8BJKb7ZdAL+aHgOaZIehKgaDT0zJJzTJdnjrHBMFxl7i2qwYl99mXKSjNhXVAObS414XHcZX2047inPhB4p+G1HIersTpj0GlRa7GF3xif3SYeGJ9h8pMKnQvFGbav6CrhkQKDPgtCQiDUbCFSBhMBxmNA9Be+vPhwgSKkXrpB6YUMUVff2iwFEFlo2ErISDMhNNqJraiz4IBEpGiLJpEVSM5joMNqOK664YjSAa2+66abXXn/99fWVlZWGqqqqPbfddlvfn3766a+ZM2fmjh49+oDfbcUA+JUrV6YIgiAePny4E4A9qNd08PDhhx/+AeAPRVHIsGHDHmhsOa0OBUoQn5/B+mw0/TjYONsYHYbGjGQDsuIxJCfRI+x74W99caSsFr/tKgpu9teIPBgMBoNxZsGEDWcm3958882Gf//7311sNtvYioqKp++77z6P126r1crNmzevL4DuFRUVGRaLJXRKzQzPEcQZIogI4Zr3jOkqI9mkxe87i4LuTvOuxXnY3eAGeOC8rqgyO3D+y8vhpBSJRi3um9gFvby0GLQaHrnJoc2DNTznmcAlm7SoqLMFFRiEW/ARAG6z2GD3XtA7DZN6pSEhRsRbKw42WC+OI/jnqE4RCxuCFS1V0vlEE4k3aDB7Sk8oFPhm0wkQAHlyDPYW1fhZbxCkSTr846wc9Okg4YPVh13aJxw0vJ9pjKTHwZI6wKmaaVw5uCO+3ngclKoCi7PzktAjLRaHvRxnhpsEJ8aI4FC/ez6+ewrKamw4v2dqE01sWg7vyBQNXAnv2tc7zPcVdAkcASGAXlT7Zaxegw7x0Wv8NLdsZnBOAm4dnYeB2fF48qedAJwN3sM4fdDr9emKoswBcCwvLy/jueeeu8pisawB8EVVVdWV77777h4AHQD8sG/fPu0333yT07dvXzJkyJC9gwYNOvzxxx8P/vjjj7MAJE2bNu2blJSU2pYqa1mtLcB0ojmISFgRRvrQoGAiyAXpcToMykrAJQMyoRd5XDmkIyx2Jwwij3ijCJNWwJCcRHUcZjAYDAYjCpiw4QzknnvumX/DDTfUZWdn62fOnPn6/ffff/Z99933sft7Sikxm80CAK3FYok8FmQL4aXt7sG92B7VRcbEnqn4Y3cxnAoN2P1tDodsaZIeaRI8euyEAMM7RR5+T+AJREFVOddpOGQnGrDL5mww9KU/HCFINGoxvFMS8mRVsDE0N8HzfYDZRQhuOacT5i/ZDwLApGveIeCucZ2h09SHnuQIwajOydhbVBMQYNMdOSJWp1FDmLo0VPxbhfdzrtnd62HcM6EzhuQmQq/h67VdRAEDshOw9Xhwu2gCQCfyHmHDdSOywROCPh3iPI432xv+ZjhhL0S9pkG9iUQ9HEeQJ8dgYo9UnNNZRsdEA/41rjNG5EUXrrMlEAUeY7upjmL7dohDQZWF7Z6eQfznP//hHA7HdwCKzWazFqpljfL444//BHW+Ynj88ceXZWdnr3E6ncRsNvN2u52cd955jjlz5vy2atWqWgBpAL66+uqr92ZmZraIpr+iUFRbHEHH8FbB66W48ewcvLn8YLCvGrwXAHpmxOKyAR0woXsK5FhVu+ueCZ1BXb91STFa3DOhC4Z1SsCn6+ojicbqNLi4X0ZYITuDwWAwGEzYcIYxZ84cTWFhocNoNNKysjK7a8ffZztXp9M5H3nkkbUA1h44cKD7Y4899nibFNYFpTTQZ4Pr0HAE+Skmr8Vt/cYNAWkw9GVLM6xTInSarujXMQ6xOg16ZsTiYEkt9hTWeAQh3mWL0QmotDhwSZCwgIQAuclG3DOhMzLjDdDwxGNbGw13jM3H/CX7ATQcvjNS9d0LeqejqMqCKwZ3dPmVqF/lxhnCRwjgCPGYL2g1HDR+Xs05LjDShHvxfdXQrACBUqxewOguMt4J4byMEILuabFINIo4Vm52PZfgvjbaDRGaBLlbgnr+V/8iXkIUjgD5sgm3jclHZrweGp7D34cFN/+JlKZoDoXijrF5qLY4VEEU44zgwQcfPAbgyRBfv+9/4pFHHtnu/nvs2LEnx44d+3VLlc2HZu6S0ZpJiDzn0aq4aWSuj7AhGCkmLdLj9BAFDp2SY0AIsO5QGfYV1WBq3wxM6ZeBWF29aZT374qGJ7h2RDYsdl8to8QYEXdP6AyBRaFgMBgMRhiYsOEM44MPPojbuXPnjQUFBfqvv/5adDqdNf/3f/+3pK3LFY5gyxj3Itl/IdIzQ/KZtOk0PDhCYBTbpqv3zYxD7wwJHEeQ7fLnsPOkuuPet0McNLyvkz29qGoFXD4omLCBwKTToHdmXJPK5B1VoaE1YqQT4JtG5sJsc0LgA+8IME3w26YnXgtpSaeBXvQVoETrR4EjJKzGBnEttiMy12knkEh9NnikDdT7Px9pIiEEGoEgJ6lpAoaWZkBWQsMXMRhtAEdIs5oQRZuUwBPYXGt/g/u3zSWxiNULuGpIlkegDADd02Nx2+g88DyH1FgdCAGeWbgLB0pqkRlvgFHkIxpfOAJ0T1PD22p4Dpnxzes0l8FgMBinH0zYcIbx8ssv11RXVy8FoP3b3/5GABy/+OKLj7V1ucISZkHME18ncmoUC3XWxXMEPdNjcd3wbJzXq+ne6S/pnwGjNrpXhuMI3OIEnUZdRPfKkJAYo0VKrNYnfCBQP+mM0YXXBogE792yc3uk4LedRQFqv/6RHxpLqAgfHAHO6ZKMfUW1MIgcNhyu8HEoSanb9EUtqbdvCzcGUQiqBRIOAiBGyyMrMfhkWCNwjQqv2FZE6rNheKckfL/lJLKTjOr1zaxwMKVvBjQ8B4PrPYjehSODcXrR2ACUJp2ADvEG7DgZfRhM73Fcp+Hx6pX9MPeX3ThUWgejKOCGs3KQYBTxxfpj2F1YDUmvwYBsX+FdolGEhotcaKLhObx21QBP9B8Gg8FgMCKBCRvOMMaPH28GsLKtyxENfgHF1E/uHVu/FSPPcfC4ICSqv4XrRuQgvhkW1XeOzVc1EZq4pSXwnCeMYmKMiIIqLweczbRd1r9jHHYVVKHW6gSFKuBYvKvIx90eIWhSu0zonoI4fej7R3VOwuCcBHRKNuHOcfkQOIKCSgtio/QTMbFnCuIMGny45jCsjoYdshFCkJVoxHOX9UHnFFPI6/p2iEOHBAOSYk6N6AWRLOxHdU7Gm1cPQNe0WBDUa8okGpunjlcM6QitwEHn1lZpYzMlBqOtGJabiK3HKj2RdKIVOqRJOpzfKzUiYcPF/TKwaGchqi0OAKoj3oIqNWwnR4Dx3VPxxjI1QAcBkGAUMb57ClbsK8HhstqAiEEAcFHfDMQZRHRKjgkQ8AaD5wjO7ZEaRQ0ZDAaDwWDCBsYpgBpNArh6WBY6JKi7Km5hAx9icS7yHO4e3xkCT5otFF5GC6iMPjmlJ0pqbNBp1MWbW929qYu3RKPW5fvACQKo4czIPtj9UlajdQSfJAc9TwHq8pmQJunCRm+YfVFPSAYRPEc8u2EpsTocK6sLSDfZpMWFvdPQM0PCpqMVPt9lJRrRt0M8vt54zCNsaKh9JIMGY7ulhJ1EXzkkC4A6cW/vECAiTYxYvQbDvJyX9siQcPeEzji/Z9M1ewCcMoIZBqOl6ZkhIVYneIQNBMCsC7vjqZ92QTIIKK62eV1NQf3EhVqBR7JJ2+A4CwDTBnXAdSNysL+kBtVmBzom6nHdO+vgrajmbRJHCIHAqVpiaZIeg3ICTZK6pprQIcEAQ4QmFAwGg8FgNAYmbGC0e9yTqNwko8f3gttnAx9irSvwBJf0z2z3k6ieGXFQKI1oZykavCwToOEJcpKNIdvCx2eEhseYrjKyk4x49Y99gRNhrwmw+giCL/sJIeiYGNwngMCroRbL62we05IJ3VMwMj8JktfCv0tKDIprbOAJQbJJ6+O7oSELAY4QcEH8R3iT3ExCqNaAuMN3REmMVsA1w7IR08xRR9xcPSwL+4tqkBdGg4TBOB3R8MRnTHp1ej/kJsWAI0CMKCApTYudJ6td34bWS3KPZaHGWUAVnnZNjUXnlBg4FQqNwKFrqgmju8qea4KNhwSq4N0UxCxP4DlIeubckcFgMBgtCxM2MNo97nCInJd/BvfEyj3Ze/vaQaix2j33ECBq/wptAc8R8FEp30aGXuQ9bcMRqCEdI8hGwxN0ko0eJ5TuifBZeYkYlJ2AX7YXeCbQFA07mAxGYowWt43Ow6HSWnRNVRepsXoNYvVeE2KqhtHs0yHORyjQFI2PUZ2TcbzcDNkUWYjQ9gVBY5cFPu3azIzuIqP3rXHN5vuDwThVUPzC9PbNjIPZ7lQjx3AEMSF+f0SBw8CsOJzbI80zJAcVOARBq6l3nvvOdYM9jh0FDrj1nE64+aONXtdySJN0KKq2nhLaWwwGg8E4PWn/qzHGGQ+FOqsjpH7B7PHZ4FpQD++UeFrZjTc1kuBFfTJQbXbgjWX7A0KWBc8QnigRPCGqcMIFASDpNZjYMxV5cgxe+HUPDpTUNrq9BVe40tzkGGhCaR8QdTfP3/Gkv7ApGrqnxeLhC7pDDKUO045ppGJDi6PV8CGdgzIYpzP+4V4FnkOChgcBwfjuKdhytBKA+u4OyI7H+kPlAFW1x8Z3T8WUfhn4ZftJ6DQctAKHSrPDJ718OQaXDsiESScgJTZQQOp9jhA1zLI3CQYRt47OQ2GVFV2Y5hGDwWAw2ohTb9bNOPNw7SAFW2y5Q3wLPOcJ6ZibZET39NjWK18z0lwLyli9gKuHZUUc3jExRsRbVw+EpNfgrPykgO85QqDleZzbIxU3jsxFepxOFQI1AkLUSCGiEJ2zzTevHoAfbz8LGoGDTkNwxeCOUeUr8BxitEJYPxPtFTUaBWGeGBmMdky8UcQf947CnWPzPSZ+PEfwxvQBGJab6DGPEHlVwOAOaesf3ndAxzg8NbUnrhuRjcsGdkBcA9pJbh8NvudUgUTPDAnCKShgZTAYDMbpAdNsYLR73L4B1I1330mZ/ySNI8DPd519yobk858wNhZCXIt5RLY+FXiC0V1lnJ2fBI3AYdme4iCJquHPtAKntnsrL3z7dox3FwMbH5kAniPt3idHc0I8/zAYjLZGofXaDTmJBgiu8citceD+bSIEiDVo0D8rDqsPlKraY97DvJc5hlvBbFKfdPTuENek6Efu+xpwXcNgMBgMRovChA2Mdg9FaM0Gf8eKhBBoBT7wwlOEeVf0x8drDyNfDu5csalkxutDrld5joDngredlwWLl4PIlpE2nJ2fhEqzDbF+Ts28BUs6zan7jBsNARKNIpJZRAgGo83pEK+HQRTw73O74KqhWZ6QvsQjZKgfrwSO4PbR+TgrLxnrDpXhor6ZEDgCg1Y1kUiP02HV/lLP2KoVOAhcdIIGrYbD0xf3QrXF3vDFDAaDwWC0EkzYwGj3eHw2BPmumYM4tDnZSQY8dH635k3UJRNYeOfZiNVrfIQ2As/hH2fn+PhoCIaq7uv62yV4oLRllBum9svA1H4ZLZDyqQshaoz7obmJSJdORQeXDMbpRYcEA768eRi0Ag+OIEAwoPUz19JqOAzNTcDQ3PowlOO7yRjRKRE/bD2JVftLQak6vnKN0M0TOIJpgzo0tjoMBoPBYLQITNjAOHXw2l6f3DcN76w8BEJOL1X65qyLwKtx1i/qlw5R4NAxwRBwjShwmBlGuOF2TKgTOI9jRXcZW8qK4nR6ns1JUoyWRX1gMNoJhBDoNXzI8erJqb2Qk2TAfRO7hbxGFHhoXOO0mqYr8hIXvf8eNm4yGAwGoz3ChA2MUwZvVf67x3XBbaPzA3aPGPXwHMFPd54NDUfAefk3oJRCwxOPQ81wk9RLB2Ti2uHZIARIde2ot7QZBSM0bEHBYLQfwr2PySYtHjy/e9RpuIICMRgMBoNxWsCEDYx2T1qsDokxIowi77Hb5zgCXQj/Aox6Qvk2+Prm4YjRhX79eY7AIPIwiDx6ZEgB33FBPKgzGAwGI3okvQbJMSLK6uwggI9wmMFgMBiMUxkmbGC0ey4d2AF9OsYhM95wSoYtbG8QQtArMy7sNYNzErD4nnOg0wS2d68MCVmJBgzOSUCMlg0hDAaD0RT6dYjDBb3TUVJrRbqkR2Z8oMkbg8FgMBinImylwGj36DQ8emXEtXUxzii0Ao9UKbhWRMdEI96/YUgrl4jBYDBOT9Li9Hh0co+2LgaDwWAwGM0O2yZmMBgMBoPBYDAYDAaD0awwYQODwWAwGAwGg8FgMBiMZoUJGxgMBoPBYDAYDAaDwWA0K0zYwGAwGAwGg8FgMBgMBqNZYQ4iGQwGg8FgtDmffPLJYKfT2YEQYpk+ffqPTqeTfPLJJ2cBMAEgAITExMTi8847b5X3fdu2beu8efPmLgCcAOg555yzITMzs6gNqsBgMBgMBsMLJmxgMBgMBoPR5lx//fVnWSyWHgAGT58+/UdFUbhVq1Z1AZBcXV2t//DDD4cNHDhwk7+w4bvvvhs3c+bMcWefffbmnj172nr37r2XCRsYDAaDwWh7mLCBwWAwGAxGm3Pvvfd+9eSTT/5MKf0MADQajXP+/PlvAcD9998vA+gEYGGI21dcfvnl82+55fmQd58AAMoISURBVBZLKxWXwWAwGAxGAzCfDQwGg8FgMNqc2bNnH+Z5vs7/fFFREffss8/myLIcf+utt64Lcfugb7/99p8PPvjgeTt37oxr2ZIyGAwGg8GIBKbZwAiL3W5X/vzzz4pbb721qgnJGAHUNleZTgP0AKwAlLYuSDtBA9Ue29bWBWknEKh9JGDRdYbDxhFfDADMAGiQ7+JbuSwtjRbAqKSkpD+vvfba6iDfr73ooovMZWVljqeffnrc1q1byUsvvbQ4Pz8/QMvhzjvvHOZwOM4CwB06dMhy6623NtbcQgfADtVPBEOFjeW+sLE8EDaO+6IHYEHwcfxMRITaFvZgX1ZUVJjANspPOZiwgRGWlJSU4w8//PD1UCe1jeK6666b8/bbb88khLDFNYAnn3zy5unTp3+fnZ19rK3L0h74/fffh5eUlMRNmzbtp7YuS3ugrKws7umnn77x2WefndvWZWlHkKuvvvrp999///62Lkh74d///vd9Dz744P8SEhIq/L4iI0aM0LdFmVqKW265xQBgHICgz3/y5MmbL7roos21tbW46667jD/99FPX++67b0MwYcPQoUOLnE7nXwDIsGHDrgHQKEH6c889d8PkyZN/79y586HG3H86smjRohGVlZWmSy+9NJSpyxlFaWlp/Ny5c294+umnn2vrsrQXrr766mfff//9+9q6HO2Fhx566O677rrrPVmWS9u6LO2BBQsWjNfpdNbzzjtvWbDvhw0bZoiJiWHCu1MNSik72NGihyiKqxwOB2nrcrSXY+TIkW+sX7++a1uXo70cr7766qX33Xff7W1djvZyHD16VO7SpcuXbV2O9nZwHLe2rcvQno78/Pyvjh49Krd1OZr7EAQhC8BW9+eKigoOwDnJyck/Ll68WOt//Q8//MBfeOGFui+//FKYP3++kJGR8W8A/1qyZElyS5bzvPPOe3nFihV92rq92tPx3//+928zZ868ua3L0V6OQ4cOpXbv3v3zti5HezoIIWwc9zp69er1yb59+zLauhzt5Zg1a9Y/nnvuueltXQ52NO/BNBsYDAaDwWC0ORMnTnzA6XSOANBxzJgxn4qi+M5nn322BMBEvV7/6+jRo60AsGnTJuGee+4ZMH78+KzY2Ngfv//++4u2b98+xmq1csePH6974oknPujdu3d5m1aGwWAwGAwGEzYwWoVv27oA7YzlACrauhDtiAMAmAphPWYAi9q6EO2QBW1dgHbGIjTBvK098tRTT336xBNP/AR1bmInhJyIiYmxrVu37jVRFD2+Gjp16uR89tlndyUmJh4yGo3mIUOG/A5gs+vr2ry8vIK4uDhHCxd3Fdi45c8BAIVtXYh2RB2A39q6EO0MNo778juYDwtvdoH5fDntIJQynySMlmXnzp1x3bp1q2jrcrQXDh06FJOSkmLW6/XMsRiAsrIy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uMM+YMCAJEmS9IsXL+7yyiuvYM2aNVUffvjhPwHsAVAOYCqAdf/6178qX3311SE2m43cfPPNn9xxxx0XE0LS77///uqnn35akmW525gxY1654447LktPT9eOHj266KOPPjJfc801nFvYsGjRIuNDDz104fr16ztefvnlxatWrRJHjBghzJ49+9y9e/cOuPvuu4/Omzcv2263y7fccsub/vWprq7GY489FvfSSy9dnpmZWXP22WdrPvnkk/zrr7+e9uzZ03H33XdPGj9+vLW4uLh28+bNJgAGANqysrI4QRCML730Uu+amppz77///qK5c+eKiqLcWlZW9uCsWbMyAPwDwHqoE7rc1nlCDAaDwYiGkpKSGEqpDoCxuLjY8Oyzz45VFGUYIeTb+++/H3fccYfOYDAk3XDDDcK8efPiBw4cmPbMM898fscdd4yBKiBfDKALAMd5552358iRI3nbt2+Xe/fu/cmzzz47cOPGjV3vuOMOy1tvvRVTV1fX96abbnrkrrvuusrpdMY/9NBDR5966ikSFxfHu4UNRUVF/KOPPtr9zTffnN61a9fD+fn5NXv37jUlJib2mjVr1vmTJk1yHDhwwLhz586O/fv3/zhYnZ566in+8ccf/weA6gceeMA5Z86cfgkJCbrzzz//lzvuuOOalJQU48SJEwvfe+89B1RBib6urg5FRUWxv/76a87atWv7XHrppcYNGzY4Dh48OGT37t1VH3/8sVJeXn49gF0AbAC6tfzTYTAY7Q3mIJLBYLQYjz766A8AyoxG4/v33nvvegDOjIyMvc8888w7V1111VIAZofD4bTb7XoAQ1A/GXHOmDFj0dy5c/8ry7IG6gToXa1W+z2A8VA1Cu4EkGI2mw0ATDU1NVOeeuopPYAURVHMVqt1VY8ePf6YNm2aw12eX375JXv9+vW5V1555R9PPvnkq88888wnGRkZFQCuBPDDAw888Kooim8DuMmVhw81NTX8Sy+9lAvgUkVRYmw2WwyALmvXrh383Xff9R0/fjyeeuqpN+bMmTN/7ty5Wzp37vwngF233nrrB7Nnz15iMpkmAehtsVhiAIgARs6aNSsfwHmiKB6cO3fufx9++OHPAETk34HBYDAYrcs999zzm9FoLAXw4Zw5c1ZyHEcBFM2dO/etOXPmfAXAQik1WywWA1SthQtdt9L+/fvvmzt3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0VG8dOnS83Nzc4e6KUREZEJbW5vriiuu+PdQt4OIiIgObJxGQUlt27Zt9je/+c0NF1544VA3hYiIUpBSyltuuWWrz+ebOdRtISIiogMbRzZQUqqqYvr06bjxxhuHuilERJSCpmm45ZZbOoa6HURERETM2UBEREREREREGcWRDfu5Xbt2lf3iF7+4BMDEI4888uOrr7762ddee23GM888swRAOYBOAK/cdNNN22bNmqX99Kc/PW7v3r0nArABePovf/nLWqvVyrk0RERERERElDEMNuznWlpa5KOPPtoLQHg8nkVXX331s+vWrbM8+uije6688srN27ZtW/D++++ffumll/73scceCzz00EPf6O7uXg5ABXBzW1vbZc8//7xniE+DiIiIiIiIRhBOo9jPTZs2rfPee+99FcAXoW0XXXRRzeuvv/7aww8//MaECRNWABgNoOjtt98+sru7u+1f//rXm6+//vqzubm5JS+88MKMIWs8ERERERERjUgc2bCfKywsDCxcuLALgD+0bfLkya7JkyeHfp0OfSpFN4CDANQed9xx7okTJ7pVVd0N4CC/319tsVg4lYKIiIiIiIgygsGGEezuu+8+6pVXXlkA4FkATQCsAHojdvFCz90Qpbu723r00UdfBOBMTdMKp02bNijtJSIiIiIiopGBwYYR6re//e3B99xzz0VdXV0f/fWvf/34pJNO8gNohZ40Ug3uVgWgOXZUQ0FBge/5559/BcC7dXV10x9++OHTB7f1REREREREtD9jsGEEevDBByfceeed3+zt7d12//33v3rNNde4gi+tAPCbww8//D+qqhb09PRMA7DKqIwpU6Z0AugUQhSpqmq0y35J0yQ2NXZhT7sLJ8yogN0ycs6NiIiIiIhouGCwYT+3Zs2aCV/5yld+B+CIp59+2vHqq6+O9Xg8HS6XawkA5y233HLxz3/+820vvvjir5cvX7510aJFb23duvW/AOwA7mloaOgZ2jMYXI1dbvznk91YV98Ju0XBCTMqh7pJREREREREIw6DDfu5efPm1TU2Nn4dfSuLBIL//r+I3bScnByfqqpyzZo1f9E07eHgdl9eXp42aI0dBgKahMsXgNsbgNd/QJ06ERERERHRoGGwYT+nKIrMy8vzmN3f4XD4EbFyxYFKBv8jIiIiIiKizFNS70JEREREREREZB5HNhDtZ6TsG5MhhBjClhARERERERljsIFoP+Pxa6hrc0JVBA6qyB/q5hAREREREcXhNAqi/cwXu9px5v0f4KF3dwx1U4iIiIiIiAwx2EAHFCEAgeDUg/00Q6QmJTyB/bTxRERERER0QGCwgYiIiIiIiIgyisEGOvAwpyIREREREVFWMdhARERERERERBnFYAMRERERERERZRSDDURERERERESUUQw20AFL7q/LURAREREREQ1zDDYQERERERERUUYx2EBDStMk2nq9qG93DVqdXIyCiIiIiIgouxhsoCHV4fLhD29uxZOf7BrqphAREREREVGGWIa6AXRg63b78OSnuzF/XNFQN4WIiIiIiIgyhCMbaEhJCQS0wU/UyNSQRERERERE2cNgAxERERERERFlFIMNRERERERERJRRDDbQgYfLURAREREREWUVgw1ERERERERElFEMNtCQY7JGIiIiIiKikYXBBhpyQzWrIRtBDikl3L4Aejy+LJRORERERES0f7AMdQOIRpLdbU789vUtsFtV3HXuHDis6lA3iYiIiIiIaNBxZANRBrX2ePHxzlb0eHxw+wJD3RwiIiIiIqIhwWADHVAEsjttQwLQmISCiIiIiIgOcJxGQZRFUkZHHoTguptERERERDTycWTDfu6LL76YIIR4Xgix6+tf//pvAOCee+5xCCG+q6rqZ4qifCiE+NLbb79tWbRokRBC/EQIsSb43zFut3vY9H5jO+YjQWOXGzc8tQa/XroJ7U7vUDeHiIiIiIhoUDDYsJ9TFKXVarXeC+COiM1HAqi4//77r7n00kvvBnA8gIkAjgYw02aznWq32y8H8Cu3220d9EYPA1IiW8tRRAVNdrc6UdfqxLbmHjR3e7JQIRERERER0fDDYMN+bsGCBb3Lli1bDaAnYvNUu93ebbPZNgP4CMBYAOUAjgPwztatW3vcbvfqgoKC3JKSkjFD0GxDI2JggzDOCSGGbIFPIiIiIiKiwcdgw8iUe/vtt2tXX3216/HHH++02Ww5AGzQAw6tAELLJOwFMMqogObmZkdzc3NJa2troaZpg9Pq/UCvx48etz/JHgJgXgYiIiIiIjrAMUHkyCQ7OjrQ1dUlPB4Pjj32WA3BhRIQHWBS0Rd4COvq6rIefvjhXwVwLoCCQw45JLuNjfhvuLv9pQ3w+AL409cONd4hZhoFsH+cFxER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iEUfffSRmD9/vl0I8Ue73b5OVdWVQohZoTKEED9RVXWTqqqrysrKTgGATZs25QohrlJVdYOqqm9ddNFF5wDA7373uyIhxM1Wq3W1xWJZJoQ4+o033hg2/3/ncrnsqqrWqKq6ym63f7pgwYJ/f/LJJxYhxAkWi+U9q9X6mRDixp/+9KeOm266SQghvhr8m7FGCHHJqlWrcgFg3LhxF0X8zbjK4/EIABBCHKmq6urg3567pk6dKtatW6cKIRZbLJb3bDbb50KIW2+44Ybcob0SRERENJINmy9fNLKMGzfO0traerfD4fiaw+GYB+BcRVHmDHW7BsrhcDwG4KyITbkALp89e/bjK1euXAJgH4DzH3/88bEAFlsslqcdDsfpqqqO8nq9i84444zCDz744HK73X6rw+FYLIS4aOzYseOampoEgD86HI7rHA7HwQAmA1gCwA7g2smTJ/939erVJwOoB/DVwTznZHJycvwOh+NXe/bsWTh69OijAHw9Ly9vjpTyFlVVl3V3d88F8CGAH+7evdsB4BQhRIfD4Vhss9ne9fv9l/3hD39w/OQnPznFarWudTgci1VVtZ533nmHvfbaa1ZN035st9v/7HA4DgGQD2CJ2+1WANwihHjD5XIdDOB9ADcO1TWIdMcddwQcDscDjz766FHnn3/+QgDe448//qj169ffBuCFXbt2HVpSUrITwLe8Xq8C4CpFUZp6enoOBvB3KeXt27Zts8yZM+dQIcRYh8OxyGazPfXUU09dLoSw3nrrrV+yWCyNDofjKFVV91544YWLly5dmqdp2vcAvL59+/ZFlZWV2wB8w+VyqUN4KaJ4PJ6JAI4FUO/3++H3+08BIB966KFzLrjggqcAnASgCsC5AAK1tbXHlJaW3g3g552dnaqqqnMAnONwOOY7HI5L2trafiOEsM6ePXuMEOICh8Nxis1mu/Ppp58+9Yorrhjr8/mOA5Dzu9/97sJvfetb/wrWPXZozj6hnsrKypN9Pt+itWvXXgJgNIBTzz777N898sgj34J+vx8PYBaAQ202288dDseFiqKc6fF4xk+bNq2kvr7+hzk5Oec7HI7FAG7Myckp7+npUQD83uFwXJmTk3MUgGkATgBQCeArp5566h//85//XAI9Z9MpQ3DeREREdIBgsIGy5RAAdc3NzTudTqdXUZSnEd1J3y/19vZ+BKA9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xlZXV1tqa2vzARSUlJTsGTVqlPsPf/hD3h/+8Icc6E/6e9A3MmDIVVdXiyeffLK1vLxc/vWvf20CsBHAqBUrVnRdd911Y5577rnCX/ziFznQR2W0AMitq6srrK6utvX29pZNmTKlzWaz1QAYv2nTJmt1dbUipZwKYMecOXPqAVRUV1c7Nm7cqELP/1ILwLt69eq2K664Yuxrr72Wf+utt+YCaBuSC0BEREQHBEvqXYjSd9hhh21uamryHnnkkSdCH9K7aPHixX8b6nYN1MqVK6cCmC2lzF25cuUh7e3trQDecjqdF1VXV38KYB6A96AHW9oefvjhYx5++OFiAPYnn3yybvXq1av++te/XvrVr351EfQO00GHHXbYvZ9//nmT3W5fv2DBgrMBbAJwMoB7oU+3eM3j8Vy8du3aDwEsBPD2oJ94AnPnzs2rr6+/C4D/D3/4w7rVq1cfDL3D+G8p5Tc++eSTZwCcDz2PgBPAyk2bNp02b968vQAOvvTSS7ede+65W2+88cYj/vjHP8794x//2AZg5owZM1568sknd33729/efM455xwLfbj3KQAehv6U9t9Sym98+OGHTwO4EMBTg3/28R566KH8O++8c+Ktt95q//jjj7FixYo5Bx988IqdO3e+5HQ6T/3iiy8cfr//HADPQ3+q/DSA899///1mACcUFxe/9P7777tOPfXUT9euXfudefPmLQYwv6ysrH3atGnVDQ0Nsx544IFZDzzwwNEAFk2fPn3lk08+2fLd7353+aeffnrCqlWrVJ/PdzaAlzEMRjdMmzattbq6+g4AePbZZ8svuOCCr37ta1/zlpWV7bzjjjuOrKmpObm1tXUegC3QO9VvADhz1apVe/x+/wIAL69atSpw4oknvrZixYq/z5s3bxGAURaLxbtw4cJqt9s9bs2aNXnz5s07EUBVWVlZ7k033VRttVq1m2666fja2tpT9u3bNwN6YGLYBOnmzZtXnJeXN/1///uf+8wzzxzlcDjGTJky5fH169c729raztmxY8ce6FMl3oL+93PhzTffvPjmm2+eDaDjiy++aLjnnnv2vfDCC989/vjjFwPoBTDhyCOPfP/DDz/sslgsG+fNm3c29M/iEQDugz4laXVHR8e5W7du3Ql9qs17Q3D6REREdIAQUg75wy8aoS666KIFnZ2d10KfK/3GsmXL/jPUbRqoL3/5y7dIKedDn0fdDOBxAFsBXA99ePjqxYsX//OOO+5wLVmyZC6Ai6E/2X7jlltuef3EE0/svummmxZVV1d/Ffp88xf/97//vVpcXOw788wzp/p8vh9Bn9P+6bJlyx4CgCVLloyGvtpCEYB1hx566CO//vWvXYN75sauvfbaKbW1tb+A3tkJTWX4J/SAyW3Q54rvKSoquvepp57qXbJkSQmAqwHMALDlpJNO+tfNN9/c+NRTT0165JFHLoSeDG/lnXfe+fyRRx657/vf//74rVu3Xgf96fQaAA8tW7bMe/rppxcEAoGfQO8w1efl5d3z3HPP9QzmuRt5/PHHi5944onzoCcvFADW//73v//v/fffj507d34fwDjoozB+u2zZMteXv/xlq5TyxwCmAGgrLCy89+mnn26uq6sruOqqqy4BsBjAzhNOOOGJW2+9tebpp58e9fDDD58P4DAAG26//fb/HnXUUfU/+MEPyrZs2fIdAJOC5d+3bNmyIb8ekT788MOiX/7yl8efc845/oKCgvcff/zxswEcB/3p+mP33Xff1gceeECtqam5BsAC6Lkq7l22bFkdACxZsuQS6AlCPQUFBX955pln1tTX19uvuOKKk6AHnFqPP/7452+77bYVzz77bN7f/va3M6AH7ToA/PPuu+/edNhhhw2L/8NbsmTJeOifDwDwTpw4cdmNN974+g9/+MM5AC6Hnr/i7UsuueTlyy67zLtkyZIToCcTLQDwnwcffHDF1KlTPZdeeunxLS0tl0D/G/u/ZcuWvR4sfwb0vxkqgA+XLVv2WE1NjXLdddfNgP75ywHw/nnnnff8tdde6xnEUyciIqIDCIMNRERERERERJRRzNlARERERERERBnFYAMRERERERERZRSDDURERERERESUUQw2EBEREREREVFGMdhARFnj8/nEVVdddepVV111x49//OOvDnV70nXVVVedde21137J4/FYrrrqqm/edNNN89I5/ve//33hVVddNW/Pnj0Os8e0tbXlXnXVVV/7xS9+MSv9FhMRERERDQ8MNhBR1gQCAcsjjzxy3VNPPbXpuOOO2xz52j333COGql1mPfLII4c++uijc/x+v/LII48c8+9//3t8Ose//vrrox555JFz29raSswe43Q67Y888shRL7zwwpj0W0xERERENDxYhroBRDQyBQIBcc4553wXwDFut7vpz3/+s/fPf/7zfACjW1tbi3bu3Ln+vffeqwfwFeh/iz657rrrlm7ZsiX/7bffPgdAOYBKANUAtgL4EoACAHcvXbp0z+mnn14E4HsAKgB4i4uLH77vvvt2XnHFFYsBXBRsxvpTTjnlkRtvvNEXatef/vSnma+99tq5AMYB2Hv//ff/7Z577gnU19d/G8BoAN0A/rh06dJGo/NqaGiwXnXVVQsAXAhABbDm1FNPfWbixIni73//+ykAjgdgBfDcqlWrjgJw3ne/+92DCgoKXgfwAoDzARwKwA7glaVLl752+umnqwC+DWCe2+3uDJ4nEREREdF+i8EGIsoKVVXlzTff/PqyZcu+n5ub++RVV13VdP75518FYPyCBQvuuemmm9pvvvnmwLnnnvt4VVVV3l/+8pcTzzjjjMPXrl2767XXXjsVwCsAXgfwcwCfvfzyy09ffPHFZzmdzkv9fv+9r7322k2Koqx78803Xzn55JPHV1ZW/szlcl3/2muvnTNr1qx3rrnmmp033HCDq7KyUgu16YEHHij91a9+dVFTU1Prvffe+48nn3xS6+rq6n7vvfdu3LZtW+CVV17554UXXnicy+X6f4FA4KbYc2ppaRFnnXVWxapVqy6dM2fOfy+77DL7TTfddNjo0aNPkVJ6X3vttSO+//3vv1lTU9P86quvNgHIAXDIVVdd9b+pU6dWn3322Se0trZOeuutt5748pe/rPr9/p8fffTRa1asWDELwAkA7oUeBPlJ9t8hIiIiIqLsYbCBiLJm8eLFNQDcVqt1w8KFC/0A3LNmzfr0qaeeWrt582YVwKL333//GzabbRSAKQAaAOwC0PS3v/1t1eGHH/75ueee27lz584Nhx9++DpVVUsBXA5AALhE07QF119/fS8AR1tb2/jTTz/dBsBfW1t72p/+9KdnTjzxxE8ee+yxQKg9tbW1BzU1NYlf//rXn1577bVfnHvuuWLq1KkagFMAfO/www/fqChKLYAVAP5f7Pn4fD511apV0wF8paamZuyDDz6oAMh74YUX8Prrr/d++9vf7vjZz362vKKiwrt27Vpx3XXXla5cubJtwYIFG+fNm1dns9luBHD4DTfcMM/v9wPAjBUrVkwHcFJubu57vb29n73xxht1S5YsqcnSW0JERERENCgYbCCiweR3OBytU6dOlZs3bx4P4KTW1tZPAbwL4CYAtuB+vVOmTPHMnz9f5uTkeAC0AdAAOKGPFgCAQlVVr3/uuec8EeU3b9u27fenn376wpqampOamppO//GPf/zLe++9d1/wdTsA/8SJEz2FhYWysLBQBrc7AHRXVFRIAO0A8hK0XwBQZ8yYseqVV165IbhNPv30057bbrvt4qqqKn9FRYUXAObPny8LCuJmQ+QDePjJJ5982+FwaACUQCDQMnPmzLMVRekEgNmzZ/uC50lEREREtN9igkgiGmyRHXzHN7/5zT233XZbDoCx0DvzkfuEfo78PbTP+wBOmTp1al1lZWX9+eefn2uz2cSvfvUrsWfPnmX/+c9/nuvt7ZXNzc2RiRZrAVR+97vfnbZ8+XLLeeedl19dXa0CWA/ghH379tmg55D4PKbOED+APTt27Ci88cYbc+vq6vYcf/zx3bt371Zvv/32tvvuu6/qb3/728Qf/ehH6tixY3Pee+89L/QAR+hv7UoAJyxZsmTf1KlT60444QTlxBNPlAA+7+3tPX3s2LGWhQsXjgGwIN2LSkREREQ0nHBkAxENlToAu/73v//9UlGUnQBKoHfmzfpRIBC4u6ys7GtSSmG1Wt8NBAL3ffzxx7fNmzfvEJ/P5wLwJoDwKhh33nlnQ0tLy3P//Oc/rzn33HOvd7lcO37605/+FMCvAdw1ffr0K3t7e3sB/D9VVeOCDVVVVfKVV17ZtWjRoodee+21P7377ruO7u7uXV6v96GioqI3u7u7R99www2PBgIB1ePxPADgDQC9xx133D9UVX2lvb39EQAT9u7d+1pZWZna1tbWDuBSAC9IKY9vaGj4AEATgC39u6RERERERMODkNLo4R0RUWb09vbm5OXluYM/WxVF0RwORyD4uwV60FMCEDabza9pWsDv91tzcnJ8qqpKl8tl0zTNn5eXp/X29ioArHl5eZ7g8XYERzoIIQK5ubm+3t5eG/pGEvjz8vKiAhgej0fx+/3W4HEyJyfH6/F4IKW0hbYB8Obl5cne3l4rAJmXl+fv7e21BesI9Pb2qtBXnAAAabFYfHa7XYs4HwDw5eXlBSLaE8jLy/MFy1RD7Ym4Nrbgdg0AFEXxBadaEBERERHtdxhsICIiIiIiIqKMYs4GIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGIiIiIiIiIsooBhuIiIiIiIiIKKMYbCAiIiIiIiKijGKwgYiIiIiIiIgyisEGov/fjh0LAAAAAAzyt57EzsIIAACAlWwAAAAAVrIBAAAAWMkGAAAAYCUbAAAAgJVsAAAAAFayAQAAAFgFffAA5xE9FgAAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(15, 15))\n", - "plt.imshow(plt.imread(\"dqn_td0.png\"))\n", - "plt.tight_layout()\n", - "plt.axis('off')" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "# save results\n", - "torch.save({\n", - " \"frames\": frames,\n", - " \"evals\": evals,\n", - " \"mavgs\": mavgs,\n", - " \"losses\": losses,\n", - " \"values\": values,\n", - " \"grad_vals\": grad_vals,\n", - " \"traj_lengths_training\": traj_lengths,\n", - " \"traj_count\": traj_count,\n", - " \"weights\": (params, buffers),\n", - "}, \"saved_results_td0.pt\")\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## TD-lambda\n", - "\n", - "We can improve the above algorithm by getting a better estimate of the return, using not only the next state value but the whole sequence of rewards and values that follow a particular step.\n", - "\n", - "TorchRL provides a vectorized version of TD(lambda) named `vec_td_lambda_advantage_estimate`. We'll use this to obtain a target value that the value network will be trained to match.\n", - "\n", - "The big difference in this implementation is that we'll store entire trajectories and not single steps in the replay buffer. This will be done automatically as long as we're not \"flattening\" the tensordict collected using its mask: by keeping a shape `[Batch x timesteps]` and giving this to the RB, we'll be creating a replay buffer of size `[Capacity x timesteps]`." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "from torchrl.data.tensordict.tensordict import pad\n", - "from torchrl.objectives.value.functional import vec_td_lambda_advantage_estimate" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "We reset the actor, the RB and the collector" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "reset results: TensorDict(\n", - " fields={\n", - " done: SharedTensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: SharedTensor(torch.Size([4, 64, 64]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cuda:0,\n", - " is_shared=True)\n", - "Q-value network results: TensorDict(\n", - " fields={\n", - " action: SharedTensor(torch.Size([2]), dtype=torch.int64),\n", - " action_value: SharedTensor(torch.Size([2]), dtype=torch.float32),\n", - " chosen_action_value: SharedTensor(torch.Size([1]), dtype=torch.float32),\n", - " done: SharedTensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: SharedTensor(torch.Size([4, 64, 64]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cuda:0,\n", - " is_shared=True)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/fsx/users/vmoens/conda/envs/rl4/lib/python3.9/site-packages/torch/nn/modules/lazy.py:180: UserWarning: Lazy modules are a new feature under heavy development so changes to the API or functionality can happen at any moment.\n", - " warnings.warn('Lazy modules are a new feature under heavy development '\n" - ] - } - ], - "source": [ - "factor, actor, actor_explore, params, buffers, params_target, buffers_target = make_model()\n", - "params_flat = params.flatten_keys(\".\")\n", - "buffers_flat = buffers.flatten_keys(\".\")\n", - "params_target_flat = params_target.flatten_keys(\".\")\n", - "buffers_target_flat = buffers_target.flatten_keys(\".\")" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "error: 20.5664, value: 35.5780: : 500224it [24:10, 361.77it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[W CudaIPCTypes.cpp:15] Producer process has been terminated before all shared CUDA tensors released. See Note [Sharing CUDA tensors]\n", - "[W CudaIPCTypes.cpp:15] Producer process has been terminated before all shared CUDA tensors released. See Note [Sharing CUDA tensors]\n" - ] - } - ], - "source": [ - "max_size = frames_per_batch // n_workers\n", - "\n", - "replay_buffer = TensorDictReplayBuffer(\n", - " -(-buffer_size // max_size), \n", - " storage=LazyMemmapStorage(buffer_size), \n", - " collate_fn=lambda x: x,\n", - " prefetch=n_optim,\n", - ")\n", - "\n", - "data_collector = MultiaSyncDataCollector(\n", - " [make_env(True, m=m, s=s), make_env(True, m=m, s=s)],\n", - " policy=actor_explore,\n", - " frames_per_batch=frames_per_batch,\n", - " total_frames=total_frames,\n", - " exploration_mode=\"random\",\n", - " devices=[device, device],\n", - " passing_devices=[device, device],\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "TensorDict(\n", - " fields={\n", - " action: SharedTensor(torch.Size([2]), dtype=torch.int64),\n", - " action_value: SharedTensor(torch.Size([2]), dtype=torch.float32),\n", - " chosen_action_value: SharedTensor(torch.Size([1]), dtype=torch.float32),\n", - " done: SharedTensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: SharedTensor(torch.Size([4, 64, 64]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cuda:0,\n", - " is_shared=True)\n" - ] - } - ], - "source": [ - "optim = torch.optim.Adam(list(params_flat.values()), lr)\n", - "dummy_env = make_env(parallel=False, m=m, s=s)\n", - "print(actor_explore(dummy_env.reset()))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "evals = []\n", - "traj_lengths_eval = []\n", - "losses = []\n", - "frames = []\n", - "values = []\n", - "grad_vals = []\n", - "traj_lengths = []\n", - "mavgs = []\n", - "traj_count = []\n", - "prev_traj_count = 0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### Training loop\n", - "\n", - "There are very few differences with the training loop above:\n", - "- The tensordict received by the collector is not masked but padded to the desired shape (such that all tensordicts have the same shape of `[Batch x max_size]`), and sent directly to the RB.\n", - "- We use `vec_td_lambda_advantage_estimate` to compute the target value." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": { - "pycharm": { - "name": "#%%\n" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pbar = tqdm.tqdm(total=total_frames)\n", - "for j, data in enumerate(data_collector):\n", - " mask = data[\"mask\"].squeeze(-1)\n", - " data = pad(data, [0, 0, 0, max_size-data.shape[1]])\n", - " current_frames = mask.sum().cpu().item()\n", - " pbar.update(current_frames)\n", - "\n", - " replay_buffer.extend(data.cpu())\n", - " if len(frames):\n", - " frames.append(current_frames + frames[-1])\n", - " else:\n", - " frames.append(current_frames)\n", - " \n", - " if data[\"done\"].any():\n", - " traj_lengths.append(data[\"step_count\"][data[\"done\"]].float().mean().item())\n", - " \n", - " if sum(frames) > init_random_frames:\n", - " for i in range(n_optim):\n", - " sampled_data = replay_buffer.sample(batch_size // max_size).to(device, non_blocking=True)\n", - "\n", - " reward = sampled_data[\"reward\"]\n", - " done = sampled_data[\"done\"].to(reward.dtype)\n", - " action = sampled_data[\"action\"].clone()\n", - "\n", - " sampled_data_out = sampled_data.select(*actor.in_keys)\n", - " sampled_data_out = factor(sampled_data_out, params=params, buffers=buffers, vmap=(None, None, 0))\n", - " action_value = sampled_data_out[\"action_value\"]\n", - " action_value = (action_value * action.to(action_value.dtype)).sum(-1, True)\n", - " with torch.no_grad():\n", - " tdstep = step_mdp(sampled_data)\n", - " next_value = factor(\n", - " tdstep.select(*actor.in_keys), \n", - " params=params_target, \n", - " buffers=buffers_target,\n", - " vmap=(None, None, 0),\n", - " )[\"chosen_action_value\"]\n", - " error = vec_td_lambda_advantage_estimate(\n", - " gamma,\n", - " lmbda,\n", - " action_value,\n", - " next_value,\n", - " reward,\n", - " done,\n", - " ).pow(2)\n", - " # reward + gamma * next_value * (1 - done)\n", - " mask = sampled_data[\"mask\"]\n", - " error = error[mask].mean()\n", - " # assert exp_value.shape == action_value.shape\n", - " # error = nn.functional.smooth_l1_loss(exp_value, action_value).mean()\n", - " # error = nn.functional.mse_loss(exp_value, action_value)[mask].mean()\n", - " error.backward()\n", - " \n", - " # gv = sum([p.grad.pow(2).sum() for p in params_flat.values()]).sqrt()\n", - " # nn.utils.clip_grad_value_(list(params_flat.values()), 1)\n", - " gv = nn.utils.clip_grad_norm_(list(params_flat.values()), 100)\n", - "\n", - " optim.step()\n", - " optim.zero_grad()\n", - "\n", - " for (key, p1) in params_flat.items():\n", - " p2 = params_target_flat[key]\n", - " params_target_flat.set_(key, tau * p1.data + (1-tau) * p2.data)\n", - " for (key, p1) in buffers_flat.items():\n", - " p2 = buffers_target_flat[key]\n", - " buffers_target_flat.set_(key, tau * p1.data + (1-tau) * p2.data)\n", - "\n", - " pbar.set_description(f\"error: {error: 4.4f}, value: {action_value.mean(): 4.4f}\")\n", - " actor_explore.step(current_frames)\n", - " \n", - " # logs\n", - " with set_exploration_mode(\"random\"), torch.no_grad():\n", - " # eval_rollout = dummy_env.rollout(max_steps=1000, policy=actor_explore, auto_reset=True).cpu()\n", - " eval_rollout = dummy_env.rollout(max_steps=10000, policy=actor, auto_reset=True).cpu()\n", - " grad_vals.append(float(gv))\n", - " traj_lengths_eval.append(eval_rollout.shape[-1])\n", - " evals.append(eval_rollout[\"reward\"].squeeze(-1).sum(-1).item())\n", - " if len(mavgs):\n", - " mavgs.append(evals[-1]*0.05 + mavgs[-1]*0.95)\n", - " else:\n", - " mavgs.append(evals[-1])\n", - " losses.append(error.item())\n", - " values.append(action_value[mask].mean().item())\n", - " traj_count.append(prev_traj_count + data[\"done\"].sum().item())\n", - " prev_traj_count = traj_count[-1]\n", - " # plots\n", - " if j % 100 == 0:\n", - " if is_notebook():\n", - " display.clear_output(wait=True)\n", - " display.display(plt.gcf())\n", - " else:\n", - " plt.clf()\n", - " plt.figure(figsize=(15, 15))\n", - " plt.subplot(3,2,1)\n", - " plt.plot(frames[-len(evals):], evals, label=\"return\")\n", - " plt.plot(frames[-len(mavgs):], mavgs, label=\"mavg\")\n", - " plt.xlabel(\"frames collected\")\n", - " plt.ylabel(\"trajectory length (= return)\")\n", - " plt.subplot(3,2,2)\n", - " plt.plot(traj_count[-len(evals):], evals, label=\"return\")\n", - " plt.plot(traj_count[-len(mavgs):], mavgs, label=\"mavg\")\n", - " plt.xlabel(\"trajectories collected\")\n", - " plt.legend()\n", - " plt.subplot(3,2,3)\n", - " plt.plot(frames[-len(losses):], losses)\n", - " plt.xlabel(\"frames collected\")\n", - " plt.title(\"loss\")\n", - " plt.subplot(3,2,4)\n", - " plt.plot(frames[-len(values):], values)\n", - " plt.xlabel(\"frames collected\")\n", - " plt.title(\"value\")\n", - " plt.subplot(3,2,5)\n", - " plt.plot(frames[-len(grad_vals):], grad_vals)\n", - " plt.xlabel(\"frames collected\")\n", - " plt.title(\"grad norm\")\n", - " if len(traj_lengths):\n", - " plt.subplot(3,2,6)\n", - " plt.plot(traj_lengths)\n", - " plt.xlabel(\"batches\")\n", - " plt.title(\"traj length (training)\")\n", - " plt.savefig(\"dqn_tdlambda.png\")\n", - " if is_notebook():\n", - " plt.show()\n", - " \n", - " # update policy weights\n", - " data_collector.update_policy_weights_()\n", - "\n", - "if is_notebook():\n", - " display.clear_output(wait=True)\n", - " display.display(plt.gcf())" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(-0.5, 1079.5, 1079.5, -0.5)" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABBsAAAQbCAYAAADJQqPEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd5wbxd0/8M+spNP1O597b2BjY4PB1NBMD6aHlhAIJITwPAkQJz/gCSkkpAAJJHRCCSWUQMB0TLNpBox779139vUuneruzu+PlXSSTv32Trq7z5sXcCftzs5KOs3sd2e+I6SUICIiIiIiIiIyi5LtChARERERERFR/8JgAxERERERERGZisEGIiIiIiIiIjIVgw1EREREREREZCoGG4iIiIiIiIjIVAw2EBEREREREZGpGGwgIiIiIiIiIlMx2EBEREREREREpmKwgYiIiIiIiIhMxWADEREREREREZmKwQYiIiIiIiIiMhWDDURERERERERkKgYbiIiIiIiIiMhUDDYQERERERERkakYbCAiIiIiIiIiUzHYQERERERERESmYrCBiIiIiIiIiEzFYAMRERERERERmYrBBiIiIiIiIiIyFYMNRERERERERGQqBhuIiIiIiIiIyFQMNhARERERERGRqRhsICIiIiIiIiJTMdhARERERERERKZisIGIiIiIiIiITMVgAxERERERERGZisEGIiIiIiIiIjIVgw1EREREREREZCoGG4iIiIiIiIjIVAw2EBEREREREZGpGGwgIiIiIiIiIlMx2EBEREREREREpmKwgYiIiIiIiIhMxWADEREREREREZmKwQYiIiIiIiIiMhWDDURERERERERkKgYbiIiIiIiIiMhUDDYQERERERERkakYbCAiIiIiIiIiUzHYQERERERERESmYrCBiIiIiIiIiEzFYAMRERERERERmYrBBiIiIiIiIiIyFYMNRERERERERGQqBhuIiIiIiIiIyFQMNhARERERERGRqRhsICIiIiIiIiJTMdhARERERERERKZisIGIiIiIiIiITMVgAxERERERERGZisEGIiIiIiIiIjIVgw1EREREREREZCoGG4iIiIiIiIjIVAw2EBEREREREZGpGGwgIiIiIiIiIlMx2EBEREREREREpmKwgYiIiIiIiIhMxWADEREREREREZmKwQYiIiIiIiIiMhWDDURERERERERkKgYbiIiIiIiIiMhUDDYQERERERERkakYbCAiIiIiIiIiUzHYQERERERERESmYrCBiIiIiIiIiEzFYAMRERERERERmYrBBiIiIiIiIiIyFYMNRERERERERGQqBhuIiIiIiIiIyFQMNhARERERERGRqRhsICIiIiIiIiJTMdhARERERERERKZisIGIiIiIiIiITMVgAxERERERERGZisEGIiIiIiIiIjIVgw1EREREREREZCoGG4iIiIiIiIjIVAw2EBEREREREZGpGGwgIiIiIiIiIlMx2EBEREREREREpmKwgYiIiIiIiIhMxWADEREREREREZmKwQYiIiIiIiIiMhWDDURERERERERkKgYbiIiIiIiIiMhUDDYQERERERERkakYbCAiIiIiIiIiUzHYQERERERERESmYrCBiIiIiIiIiEzFYAMRERERERERmYrBBiIiIiIiIiIyFYMNRERERERERGQqBhuIiIiIiIiIyFQMNhARERERERGRqRhsICIiIiIiIiJTMdhARERERERERKZisIGIiIiIiIiITMVgAxERERERERGZisEGIiIiIiIiIjIVgw1EREREREREZCoGG4iIiIiIiIjIVAw2EBEREREREZGpGGwgIiIiIiIiIlMx2EBEREREREREpmKwgYiIiIiIiIhMxWADEREREREREZmKwQYiIiIiIiIiMhWDDURERERERERkKgYbiIiIiIiIiMhUDDYQERERERERkakYbCAiIiIiIiIiUzHYQERERERERESmYrCBiIiIiIiIiEzFYAMRERERERERmYrBBiIiIiIiIiIyFYMNRERERERERGQqBhuIiIiIiIiIyFQMNhARERERERGRqRhsICIiIiIiIiJTMdhARERERERERKZisIGIiIiIiIiITMVgAxERERERERGZisEGIiIiIiIiIjIVgw1EREREREREZCoGG4iIiIiIiIjIVAw2EBEREREREZGpGGwgIiIiIiIiIlMx2EBEREREREREpmKwgYiIiIiIiIhMZc12BSj3qarKzwkRUR8hpZQ2m03Ldj1yHds2IqK+g21b3ySklNmuA+WwrVu3Tj/zzDM3jRs3LttVISKiJKSUcsWKFTV+v390tuuSy3RdF8OHD9enTJmS7aoQEVEKVqxY0VRTU3PQ4MGDW7NdF0odo/qUUF5eHk477TT8+9//znZViIgoCV3XYbfbq7Jdj75g0qRJ+Prrr7NdDSIiSsHo0aMPANCzXQ9KD3M2EBEREREREZGpGGwgIiIiIiIiIlNxGgURERENeFJKSCmhqioGWj4rIQSsViuEEBBCZLs6RETUTzDYQERERAOelBIOhwOtra3Q9YE1LVhRFAwaNAglJSXZrgoREfUjDDb0A83NzaWrV6+eAUADIMePH18jhDiwd+/eMQBGBh7fecYZZ7QCwKJFiyYBGBbYffMZZ5zRno16ExERxbNo0aITEGjX8vPzPSeeeOK6RYsWlQKYAsACoH7MmDH7DjnkEH3RokVDAIwDkAegcvbs2XWDBg1Ka4k0TdPQ0tKCIUOGoKioaMDc4ZdSwul0orGxEUVFRbBYLNmuEhER9RMMNvQD69atm37mmWc+MGbMmOVHHXWU9+KLL/5ky5YtuOeee7535JFHHlRdXZ1XW1v7zvLlyz+85pprCrZs2fIzAIWBfxf7/f5nrFbrwBozSkREOUtVVcuZZ575vNVq/ei8887zDB06tGnQoEHbzzzzzDlDhgy5ZPLkyb5ly5ZV/vSnP31+9OjRjb/5zW/OBfAtGP2aLZ9//vkLp5xySl06x5RSQtf1ARVoAIwpFMXFxaitrR1w00eIiKhnMUFk/7HtlFNO+dWbb775/37wgx+8D+AEAJg3b96fjj766CcAnAxgOIDTAIgrrrjitmuuueYPiqL85Pnnny/KYr2JKE0+VYdf0025MJBSwq/p8KkDa9g49QlqYWHhb998881fPvnkk38BUAHg2zNnznz69ttv/z2ADgCnwhjpMOHYY4998Zprrrl9zJgxUz788MPJTU1NGUUMcjXQ4PP5sH379h6Z4pGr50w0UEgp0eFNnC9GlxJevwZ1gE3zor6NwYb+Y/i2bdu+8/DDD5+5ZMmS4QDGn3zyya1Tp06tAbAWwGgAxQBmA1j20EMPeZ977rk9NptNu+6660Zlsd5ElAa/puPLHQ34cGMtWly+bpfX4vLjvfXV+HxbPe9qUq5RfD7fRQ8//PAlzz333BQAhcOGDZtw0UUXrQRQD6AOwGQAYwG4fvCDH1Q+99xz9UcccYTznnvuGbx37968bFY+U8FEldF/j21tbfjnP/8JVVXTLouIctuGA2145qs9aHP74/7Ntrn9eHbJXny2tb6Xa0eUOU6j6B9qDj744E/HjBlTdvPNNx984oknjhZCDLviiiuajjnmGP8777zjnzBhQh6MOa4lABwAgt9kbQDKwgvzeDyWe++9dzaAmW1tbaM8Hk+vngwRxef2aXh/Qw02V7djdHkBKors3SqvsrkD9360DcdMqMAZ04aDNzgpR+gWi+WFm266yX7zzTdPLisrO+7qq69+f9y4cfk333yzCwAuvPBCFUA+ADsAHYA3sG9H4PEuyQfuuuuuWZqmzZZSCpfL1UunkpzH48Hy5ctRVVUFVVVRUVEBh8MBp9OJCRMm4KSTTsLChQvxzjvv4KCDDsKUKVNw8MEHY9myZbjiiiugqio++eQTjB07FiNGjMD8+fMxatQoeDwelJeXo66uDoWFhWhoaMDhhx+Oww8/HPn5+dk+bSIKeG3lfvxneSVOOngIDh9bHnOb5g4f/vbhVpw8ZSjOnD6idytIlCEGG/qByZMn77/nnnseOOSQQ/xCiLPffPPN4wAMy8vL237cccdZ161bZ9N13QejM+aEMcIheElRBiAiQaQQQhYUFKgAvF6vt/u3TonINH5dh6ZLNDq9cPlSv8MZj9unoaaVAUXKLVarVd57771//8UvftFRWFg4/M477/zzI488csTw4cO9jz/+eOFJJ53k8/l8VgAeGEEGBUbQAQCKAo91SRBZUFCgaZrmlVKKRFMHmpxeLNnVhFYTRg8BgCIExlQU4pQpQ2M+7/V6sWDBAlRXV2Pq1KnYsGEDJk6ciKKiIrz77rsYPHhwaFlKu90Om82GPXv24KWXXgoFGz744AOccMIJyMvLwxNPPIHLL78c06ZNw/bt27FgwQLMnTsXTU1NqKurw6BBgzBlyhRTzo2Ium9/q8tI1upN3K7rEnB508p9S5RVDDb0cfv27RN33XWX5bDDDtNGjx4tGxoaAKPTte+TTz4p27x588i33nprdFVVVQ2MQMMaAMfccsst7xcUFIxUVdX62GOPHQgv026367fccstqAKt37949/c4777yn10+MiHqFROcwJ6JcccMNN+TZbDYVAHbv3q0BsAHoqKur2/fqq68eOXLkyF0ffPDBsJ/+9Kd7AOwHcMTLL788dt26da7169eX/PKXv2wcN25cl0jBL37xiw0ANui6LubPn/98vOO3uv34fFs99re4TTkfixA4auKguMGGoMMPPxxTpkzBiy++CL/fjyFDhmDj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jgbrRluAY4ydQN9oC3EM0czxGz/5ceAHjjv32qPAh6MtwDHGZozPisnosAvoGW0hDoMaoHO0hRghB4GE8KHjiGaO3+9uF7B3tIU4DPowdLDjkeNdN9CADaMthMnRxzQ2mHzs/OpXv/qDqqpmvoYQt99++9MVFRUtoy3HscKiRYs2z5492zbachwrZGdn937nO995aLTlONb4zW9+c99oy3As8T//8z8PZWdn9462HCcqX/ziF5+rqqoaUb6HY4Ebb7zx1QkTJnSPthwj4fzzz//Abrcfr8khWbRo0ea+vr7jUv+eMmVK7ac//enj8nMDMHbs2KbbbrttxWjLMRKOd93A5XL5fvSjH/1ttOUwOfoIKc01oImJiYmJiYmJiYmJiYmJyZHjuLSsmhwf3HjjjTO6u7tvBuzAqytWrDjuM8lfeumlt0kpT7bZbG1PPPHE17u6usRNN91UAtwKZAIb58+f//B///d/e5cvXz4VuAIoAl77+te//tqSJUt6v/3tb8/ZsmXLVUAO8O8HH3zwlaysrMCVV145LhAIfAXjea1dsWLFXwCWL19eBHwZyAK2zJ49++933333SMu1HVG+8pWvZB84cOBzQAVGOaLXnnrqqWevvPLKNCnlnUABcDAzM/NX//jHP9zLly/PBj4JTAJ2LVmy5J9f//rXm5966qkxDz744GXAZGDNt7/97edOOeWUtjvuuKNs9+7dn8N4hpuAv6xYscJ/+eWXp2uadidQCDSkpaXd889//nPUQ1MeeeQR5dFHH70EWIwxvm7/2c9+9sQf/vAHff/+/bcAZcAB4DcrVqzwXnrppRYp5deAcUB7RkbGrx566KHW+vr69C996UtXAvOBA4sWLXr0jjvu2P/0008X/v3vf18OzAW2futb33r61FNPbbjzzjtzdu3a9XmgMtT+71asWOEehUeQkuXLl88Crr3oootWZmRkvPPII49cCCwE2oGHVqxYseerX/2qWlNT82lgNoab9K9XrFhxMHT9lcBZgC8jI+PPDz300OaGhgb7Lbfcsgi4HGhfuHDhs3feeecHzzzzjOtvf/vbecBSDFfxf9599907Z8+efUxY130+n/Xqq6++D+Me9YqKioavfOUrv7zzzjunADdijAFvXnXVVS/ecMMN/uXLly8ELgAygMfvueeeNePHj/d/5jOfOa2tre3q0PlPrlix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0tJw3z4oQJbH4zkLuCI1NXW13W7P69WrV0FKSkqU73hjMpkKu3fvXpKSkmIGIgF7WlpaFHINFOK0IcEGIUSz8Hq9yl/+8pcbgJjy8vJ7r7nmmgWbN2/uDsQHBQUVtm3bdn3v3r3TIyIirrDZbLb09PQdb7/99udJSUmmTz/99G++zfhjVMKS+/Xr13/z5s2dNU37u67rK3r37t0PuGXAgAGB69evVyIjI+cmJSXN792795UBAQEXxMTEVO3cuXPjjTfe+K+PP/7YBXDw4EHzX//617Fz5sy5qEuXLo6srKyM5cuXv37VVVfF7tq1685+/frZN2/ebNI07R1d139puE8ul4vvv/8+4LLLLrssICBgdHR0tGXXrl27b7nllk969+6tP/DAA1e2b9/+rKqqKvLz8z8Dzgb6P/nkkw/4+fnN27Rp00K3233LgAED4jZs2GDXdT1l9erVrw4bNswBPIdReSvDqHQKIYQ4OdoBo5ctWxa/b98+d0ZGRnJWVtZwoG1CQoInODj45auvvnpcRUXFWbt27fJ3uVypixcv/sfYsWMrzjrrrPkej2fo6tWrK4YNG3aTyWQa0KdPH3Xjxo0ZnTp1evXpp5+23XTTTTeFhIScFRoa6qyoqPjFYrEEA+dOnz695/z584N27959oLi4+PKePXu23bt3r1pdXf1Rbm7uosTExKfKysqsgDpo0KBNvXv3Lvbz8+ubkZHxcO/evRNtNtu1CQkJASkpKeXjx4//6vbbb985efLk6yMjIweYzWZXZmbml++///73t912mwcgNTXVevHFF1+5a9euc8466yzT1q1bDxQXFz/Vr1+/oW63++5BgwZ5165dqwQEBPz7wIEDGxsepNLSUt55553oadOmXRYVFdVPVVVzVlbWL//73/++mTdvXuycOXOu69GjR/T+/fupqqp6FbgY6HHbbbc9rarqvLVr1y4B7hs4cGC7devWmR0Ox7oZM2a8O2nSpDjgbxiBCg3jui+EOA3IMAohRLMwmUz6ypUrXwUyQkJC7pk3b963gBoUFJQ/ZcqUe954443/ARuGDh369vnnn/9fjMreYN/qIf379/9i7Nix1/v7+8cAbRYsWPDXgICAT4CrPR6PCjynquq655577l1gnsvleujXX38NBAbGxsbOmDJlykPh4eHv9ezZs7aHwr/+9a/YOXPmjO3Vq9cP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hTfffPN1+/fvr3jssceU0NDQ5MmTJ2//6quvzvnrX/96Xf/+/csDAwN3xcTEFADm5cuXj9d1Xdu3b98KoP/s2bNDi4qKOgDzMBIjH4kTmFlaWnrtO++8s3Xfvn3q5s2bs2+//fbtc+fOPfu6664zFxYWlm/evLmAQ0ELLrvsss07duz40yOPPPJnl8uV9+KLL1ZOnDjxB+Aj4Ma33nprC9AX4xp4mA4dOlR37959588//9z70UcfvdZqtZbPnz+//H//+1/yoEGDVrz66qtneb3ekM8//9yZlZW1EsgGLO+///7lVqs1Rdf12cDNN9544zVZWVnaQw89ZAXmAr/t37//yhtuuOFqjN4XrW6qbCFE4xRdP6w+LYQQTcLj8ZieeuqpuwMCAv7vrrvu0l599dWzo6Oji+6+++6N27dvt0yfPr0vRhLFQsB/0qRJGw8ePLh/w4YNQ2699dZ18fHx2f/85z8n5+bmbnz88cf3vv766+2dTufI559//rMnn3zST9f1SUAEQGBg4K477rhj+WuvvXYBEItRGds2YMCAVZMnT66tbH377bft16xZMwKj90D+3Xff/dPMmTO9+fn5F2GME60EvnnxxReLHn/88bEmk8n55JNPJj3zzDMXBQUFpd522227X3/99XhgDMbsFUWDBg1aGRkZmf3jjz8OxKiomYAVQCowAegAbANWAcOBXhg5cyqATzHuoF0EdMKo1FZGR0evvfvuu/c02x9HCCFErU2bNnWYNWvWWIy796lAyOTJk/cOGDBg73//+191z549Ezl0jrYAvwQEBOx56qmn9mua1kvX9bLHH3/8LGAkvpmKIiMjf5o8eXLRu+++2x8YBHiHDh26ITg4eNPPP/98NtATWIfRo+BsjOEUTuCHadOmZb/22muTnE7n3hdffHELwOOPPz7AYrG0/fvf//7j448/HgpMxLhuuRISEjYNGTJk3+effz4G47pYDqy+5JJLtg8ePLi2sv/WW291z8rKGoUx20b2M888881zzz0X6PV6L8PIE1FmtVq/eeSRRyqff/75UWFhYSVXX3317rfffnt4165dUwYMGJAzc+bMs4D+GNfA/Zdddtmv27dvd6akpJyDcb0D+A7IAq7G6KmwEeMaOB7o7lumEJjt2875GL06yoG8xMTEdRdffHHWH/27CiFalgQbhBBCCCGEOEF+fn73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sYMoiotEUVwjiuKzN998swUARFEcKoriAlEU14qieM8PP/wQCQATJ04cI4riz6IobhRFcVphYaERAFJSUnqJorhS2/4sAJSVlRFRFNuKovijKIp/i6L44nXXXRfWQpdfi/PPPz9OFMUPRVFcrV3/3ZIkkfj4+EhRFBeKorhBFMXPu3btGgEAoijGiaL4X1EU14ui+NY999yTCgDz58/vqm3fKIrinCVLliQBwEUXXdRRFMVvte3zRFE0AUBiYmKkKIrfaeUv6NixY0TLtUIV8+bN04mieI8oisu0Npm3ZcuWpNGjRyeIovi5Ju//RFEMA4CEhARea7+Noij+1LVr12QAOHr0aKQoinO07Z9Mnz69OwC89dZbbURRfEHb/voff/zRHgAmTJgQr5W7QRTFj0VRbBXt4Y8oiueLovjbzJkzb3rllVciRFF8ROsz34mi2Hfz5s1kzJgxBlEUn9d+M0tEUezod/6D2liyqkuXLiMBID093SyK4hTtuhfdddddEwDg3XfftYqieJ92D74XRXHQqlWrSEtde00cDodRFMWt2vi4/Lzzzvtw+/btOlEUh4mi+JsoistFUfy/uXPnmgBAFMWJ2pixRhTFSbt37zYBQN++fS/3GzNu8JYvimI/7drXiqL4OADs37+fE0VxgCiKv4qiuEIUxQefeuopU8u0wNnNHXfc0UMUxU+1dv9Penq60NIynS4jR458QhTFbaIo/m2z2SxA8HFWFMUoURTf0La/f8stt7QFgI8++qijKIqvau3y3KJFi9oAwBVXXNFBFMUvte2vese/lJSUSL/x/Zt27dq1mnFr7ty5Vm3MWaY9e5/avn173KhRo6yiKL4riuI6bWyJBYD4+Hiijc2bRFH8s3v37t0A4NChQxGiKD6gXeOCe++9dwgAvPHGG6IoirO0cv4nimI3ALjgggus2rNwnSiKP4iiGN9yrVDF3r17iTau/KWNW1/Onj17zIsvviiIojhDG5u+FUWx19atW8n5559v0NpjnTaWd/CW5TeWr+zatesIADhy5IhFFMUbtT714z333HMhAMyfPz9CO361qL5T9F+7dm2rGcsBQBRFQRTFv4YMGfLq/v37DaIojtb6zRJRFG976qmndNq7wQ2iKP6pje8TtmzZwgPA4MGDb9HadL0oihdKkkS0csdp29Z27dr1TgA4evSoXhTFEVr5S0VRvGvGjBm6lrx+f7p16+Z991khiuJfACCKYoz2W1kviuJHgwYNsmrb22i/pfWiKL44c+bMJACYPXt2H7HqveixzZs3xwLA0KFDu4ii+Iu2/UVRFHVaOVFi1fvmJ3369LG21PUzgkApZR/2afJP165dOULIWgADAEQD2CwIQpeWlut0P4SQsQBGGY3GbZRS5OXlhQF4pmvXrnevXLmyA4Cnrrjiiimff/55IoAZAO4A0BXAvAULFoybPHlymE6n+wrAGAApAFaHh4e3o5SC5/llAMYCiADwi9lsHltcXGwC8Ezbtm3vW79+fVsAT40fP/6Wlm4H76dnz56xAAYdPnxYEAQhHsA2q9XaHcAzHMc9mZ+fLwCYFRsb+3hGRoYJwGQA8wEkArhr6tSpMz/88EOj0Wi8X2uvFADzzWbzZatXr9YPHDjwfQDXAogB8BWASx0OB6fT6Z4mhMwsKiqyApgpCMKTLd0W3g8A61tvvSVceeWVEQDmWyyWazmOew3A9EOHDsVGRka+DuBOl8vFEUKmcRz3bkFBQQSA22JiYt7OysrSh4WFjQbwDYAEADfq9fpXrFYrZzQapwF4SmunuWazeeqqVassgwcPngPg7t27d4txcXGvALjLbrfrWrotvJ8lS5akApgN4Pv777//rjlz5kwEMOvNN9/sOXHixLsBPLx27dr43r17XwXgzYMHDyZFRUVdD+Bjl8ulEwShC4DNWj/oTwhZZ7VaubCwsDQAvwPoBOBCvV7/1v333x//yiuvTAAwe+7cuX2mTp06DcCMJUuWJLd0O3g/drvdCGBvXFxcSllZWZjNZjNv3LgxGcDTl1566fXvvPPOIAD/mTlz5rhHHnmkM4AXAVwEoB+Az7Zt29apX79+EYSQ1QB6aP1ht9VqjfJ4PATASgCjtP7zbYcOHUbs2rUrHsDT48aNu/Gzzz7rC+A/Dz300ISWbouz7XP//fcTvV7/GoAbAcQD+DYsLOz8U6dO6VtattP5dOvWbSiAkQA2lJWVhVFKEWiczc3N5QFcA+B97fpvnzhx4nNffvklbzKZ7vQbn+aZzeZrFy9erD/vvPPmA7gBQCyAzwFcbrPZdDzPzwEws7i4OBzATIvFMqul28H7mTlzphVAj/feey/l0ksvjQXweVhY2GUcxz0CYNaRI0fiIiIiZgB4xu12c4SQCwH8oj2/L4qLi/spIyODCwsL6wfgJ61NrjUYDK898sgj5ueff/5GALMAtAfwBIC7Vq1aFdm/f/+7Aczat29fQkxMzMMAnnE6na1iLAfAjxs3Lubjjz+2Arie5/nneJ6/D8Cst99+u8dll112L4CH169fL/bs2fMqAG8ePnw4QRCE6wF87Ha7OW0s36SN5QMIIWu1sbwDgF+1sfxivV7/5r/+9a/4F1988VIA/5k3b17vyZMn3wngkeXLlye2dFt4PxUVFXoAD2nj7Ae7du1KBTB/3LhxF3322WfDATz30EMPDZk9e3Z/AE+/9dZbY6+88spxAF5bt25dx2HDhrUjhPwOoCOAbgC2W61Wo9Vq1QHYrY3vSYSQlV27du1w4MCBBABvDx8+/JLvvvtuEIAX7rrrrhEt3Q7eT2xs7DYAXfPz88O84wiAZ00m02MZGRkxAGalpaX9a/fu3eEAbgYwF0AqgH/df//998+dO9fE8/x/ANyl/WY+s1gso3bv3s117NhxAYDLAUQC+AHARd7yDQbDE6dOnYoEMCs5OXlGS7cD+1T/MM8GRrNgs9n6UEoLCgsL91NKizmO+6m8vPyKlpbrdKmsrFwJwH+JIiOAURzH/RgWFpYJYDuA4VAHT/Ojjz66hVJ68K677qq45ZZbEhYuXDhUluWs9evXp1NKs1JSUjZWVFSMNBqNyW63W6yoqFhDKS0H8B2AKwEYAIzlOO778PDwbAAbAZx3Ri+6Dvbs2VPocDi2durUqay0tDTPbDan22y2FABXE0I+i4uLKwPwLdQHhBnA4L59+/5BKc354Ycfjnz99dcJd999dw+Xy2V+5pln9lFKs2644YYdDoej7QUXXNBx27Zt4o4dO3ZQSovi4uJ+ADABqkfWVQA+i46OtgH4GmpbtQoopbZ77723zGAwOAHo7Xa7XlGUEQBWdO7cuZAQ8g2AywAQqNfxZWxsbDmAn4qKisa1b9/eXFlZOaRPnz5LKaW5ixYtOuLxeGCz2Qa5XK7IOXPmHKOUZk2dOnWDw+FIHT9+fNyWLVuGAljbq1evfELIdwAuBtAqZjs2bdrEX3bZZd0AxAH4+5133sGzzz7bEUCpyWTabzAYVgBIg/ryOQ7AsvDw8EJCyA8AxkRERHBlZWVXcBz3E6W0qLCw8ACltMBmsw2qrKzs1rt370xK6ZGff/75qMfjyX777bf7Pf7442kA7CaTaY/BYFgDIBmA2EJNEAxKCLFHRERUhoeHO6AaZTsYDIalZrN5H9Tkgz21T8Fnn3120OFw7BwxYoRu6NChCTt37jyfUro7Kysrg1KaxfP8OpvNdmFYWFiCXq+PdTgcf586daoYwGIAFwIQAPTQ6/V/ms3mQ1DHsT4tc+lnL06ns53H48FPP/10mFKa16tXr6WVlZVDFUU5q71EduzYsSk1NfUEAP8cFIHGWSOAEd26dfuVUpr3+++/H/zll18Sbr311m5OpzPiscce20MpzZo2bdouh8ORePnll3deu3atuGHDhl2U0sLk5ORFAMZDTVA+CcDnUVFRFQC+1L63Cp577jmbw+HYP3369KzffvutcPTo0RmVlZWCoiiXAPjTarUWEUK+AnAF1LH8Sp1O9w2ltDwvL299QUFBQqdOnVIrKyv7DRgwYDOlNGvhwoVHJEmqeOONNwb85z//iX/uuefyKKXpkydPXgOgDdQxchyA5VartYAQ8jWAS9BKvJAppe5ly5YVWSwWOwDqdrt5t9vdGUCR2Ww+YDAYlgPoAHUsuwDAUq2dfgQwzmq16srKyq7kOO5nSmlRfn5+tbG8b9++mZTSIz/88MMRj8eT+9///rf3zJkz2wOwmc3mvQaDYTWq2qlVEBMTkwp1kuir9PR0aLP2HfR6/XJtnM0B0BuqIaHMZDLt064jdfTo0VEbN24cQyldd/z48VxK6QGz2Zxls9kG2Gy2gRzHZVNK9xUUFBRSSpcdPHjwwj59+oQD6KbT6f6yWCxHAZwA0L9lrj4o9ri4uMqIiIhKRVEIgImEkC+sVmsx1ITxF0M1yvUYN27cUkrpyffffz/znXfeSZg1a1Yft9utvP322wcopVkXXXTRNrvd3nXAgAFpx44dE9PT0zdTSkvDwsK+A3CFLMsE2jhitVrLoBohLm2pC2cEplUMYIxzkkQAOUaj0Zv0JhOqAn5WYzabKQD/RCdcmzZtovft25c3aNAgCYANQBSAMAB6nU5XCgA6na7U4/GYFUVJBVDK87w3+c0pAAlutzsZwCm/9joJVUHi4uPjY9PT03N79erlAVAG9UHeajCZTBQAYmNjUx0ORx8AWwEkeDwer1EmF+oMmB5ADMdxOQDA87xDURSXx+NJAUD0en0ZAOh0uiIAYZIkpVBKy3ie92YmzgaQBPXFLtHlcnnLz4E6g9sqeOSRR4her5/9ww8/HIeq4O0HUHLo0CHvPc+Cem8JVMt9BgCUlJS4ANjdbncsgFhvOxkMBgfUVQdSAHA6nc7bToUALJIkiZRS186dO51+5SeeiWsNBUVR2kqSdAFUZUKWZdkkyzL38ssv2++66y4FQCGAcAA81H6SB8BTVFQkhYWFVbhcrhioY0cGABiNRhlqn0qBXzvxPO8EYFcUJcHj8ejnzJljf+ihhxSoSrsFQGtTBi35+flL9Hr98t69e18NwDBu3LiwRYsWFd166612ABLUdokE4DIYDJUmk4lyHFcgSVIUpTQVQC7P817l8CSAFJfLlQwg22QyUW08yYXaHwxDhw61Ll68uOjaa691QM343Wrc1s8iogBUGgwGOwAQQnKhzti3CuNeYzEajZSQWt7pgcZZDkAcIeQUoP7uFEWxa+O4Xq/XlwKATqcrBmDWxvHyGuN4AtTxL8Gv/FNoReM4UPVsu/rqq+NWrVrVA6piF3706NGC+Ph4BWqbeMMcao5ReW63OwVAjNZHoPUZhyzLKbIsE71eXw4AHMcVQn1nMAKI3bNnT1Fqaqp3nIuH2latAr1eP2LKlCn7AfwLwBYAua+++qrjtttuUwAUALBCHcsToMovl5SUuM1ms83lckUDSCGEeNvJOz6lQH03yAXUdwOo7ZQoy7L++eeft997773eZ0UYWslYLkmSzuVyPQfgWQAeSqnO7XZbhw4dWrF48WIP1NVInFDHjAioY7pt4cKFnvHjx1dIkhROKU0GkOcdxwkh2VDfD1KgjunedjoFIMXtdkf07dvXtmbNGg/U9wK7Vn5rgQL4Ua/Xb9br9XcCgF6vT7Db7aeioqIo1D4SB3UiLZLjuDwAMBgMFbJKCgCPXq+vAACO4woACNo4UsTzvEer5yTUNgLHcYlutzs7PDycQn1/aBWhR4wqmLGBwWhCli1bFizjan3bA71MEAAgfm+A69ata5UZXRMTE8OKioo+J4TMcrlcJf4yl5SU+Mvc0JcmGuRveLPwV1RU1DQAtSivvvoq9Xg8T1999dWdob5IdQdg5LiAwy2BJru2P9B1hHRtQcpvUfbs2WMdPnz4kAsuuODkd999d0zbTACQ05S3rjbx/m5Op/xmxWw2uyIjI0fm5OQMURTlX3v27Llz6NCh/fyPefPNN5uqT/vK8W+TDz/8sNX8Zs5yzul2bO5x1jsOOJ3OVjWOe7nllltMP/7440wAf2/cuHF/jx49ZK/MpaWl1GRqlN5b5+DEcRwFgIKCAmq1WltVm3g8nnULFizoBeBVqJ5RMQ0caxs8MLfWsZzn+UssFktBQUHBTlRdFwlF3jqOqfd+t9b2AABCyOVlZWWD9Xr9pbIs363T6Ub578/Kyqpr1Y1g1x7yBefn51NKaav6zTCYsYHRfOQASPR4PN4+lgp1xvVcQ8nMzCzu0aOHuGXLFsMFF1wQAaAUqrVZVhQlEgAURYniOM5JCMkCIMiyzGvnJwHI0+l0WQCStHhrQLXYZgNQcnNzC9u3bx+/Z88e/YgRIwQAJWfw+uqlffv2fG5u7v90Ot3vFRUVP/I8TwHk6vX6JACIiopKAJAPwAOgiFKaAACyLJsJISaO47IAUEVRIgCAUhoDoFJrkyhZlg1aVclQ+xUFkMtxXDIAhIeHJ2rltyoWLlxYOX78+G1Q+77YqVMn7z1PhjpLQaH+JtoAgCAIPIBwzWOhWjtBDUHJBqB420lRlBgAdp1OVwDA1Lt3b6Nf+bln4hrrgxBi0ev1561aterh66+/fjOA2YSQ2zmOu3LGjBmWDz74gIMaPlEBdaY9D2q4gy4mJkZfWVlp1ev1RfBrJ21MSYTaHoV+7WQCYCGE5HAc55k9e7bljTfe4KB6AnlnmFoNJSUlOQkJCcqhQ4cyAawH0Gn58uX2SZMmRX/66afmBx980AC1XUoBGGVZDgMASmmcTqcrgdom8bIse2fUUwBk6/X6U1D7gLetvDOM0oYNG2wTJkyIWbhwoenOO+80QvXEYjSMEgBh2u8SUNu3CNXDD84VAo2zCoACSmkiAHg8HhMhxMJxXDbUZ54AAIqiRANwcByXTQiJqPHMy4U6/uUZDIYkADCZTEloZeP4vffeq//8888f5DjOvnz58u+HDBlSAqCwffv2sXl5eVxkZGSC0+n0yuw/RukAxOt0umwEGMsJIVkcx1FFUayA75lnB+ACUNSjR4+YkydP6uLi4hJsNlsBWpkR5vrrr3e/++67x6DK3PHhhx82f/LJJxxUDx8bqsbyeAC6qKgog8PhiNDr9cVQ2ykVqDY+BWunXI7jPE8++aTl7bff9j4rKqG2U4uj1+uHud3uiQkJCQcAfADgMp1O99iGDRvCJ0yYoIPqUWeEOoaXQ/XuDL/22mt1f/31V7hOp6uA+i7gG8cppd53v2xUb6dEANk6na58x44d1lGjRumhvheY0YreCfPz83MiIiIUp9NZoNPpfgYw0OPx5FkslsSSkhKSkpIiQvVQkQCUUUpFAJBlOYwQotfeB/WKooQDAKU0FkCZ9luKrfm8AwBFUXJ5nk+sqKggoijGE0IKzvBlM+qBGRsYzYLJZNoNIDEqKqozISRCUZSrzWbzry0t1+lit9sNUB8enMPhMDqdTg+AdYqiTHK5XElQY+c2QHXxcr700ksDCSEd33//fesXX3yRd9VVV23kOK7dkCFD2hFCErKyskaaTKa1Ho8nm+f5IrPZPJIQYgZwPdRkUxKAVZTSa1wuVzyAoQDWtsjFB6BXr17c8ePHXwJQePLkyY8IITqHw8EB+IlSektJSYkFwHVQk/g5AGzZsWPHpYSQuIkTJ3acMmVK/rvvvrtPr9e7Zs2a1YMQkrBgwYJ+PM+fXLZs2dGBAwcW9O7duy8hRCgoKLgWwBKoL7s/AbjZZrOZoSYeaxV9a86cORZCiPjee+9Zr7rqKuvSpUsH8jxfTAhZBWBsenp6JNR7+wfUF8ifANxcWlpqBnBlTEzMyoyMDIfRaNy8c+fOiwghsVdeeWUnnU7HmUymLXq9vnz27NkdCSEJX3755XCe57OXLl2aP3jw4E0ARh48eDCaUnod1HZqceWnZ8+eeZIkTZckKU1LZvX0fffd9/Z//vOfVwBESZLURZblsVDdj4ugJjYc73Q6oyilkwCsrqysVCwWy6+KolxNCBGioqK6AEg0mUybjUbjwV27dqURQtIuu+yyNJ1Ol3L33XfvevnllzOghuJ0l2X5PKhGqlajyBBCwgVBiMnIyDB17tw5gRDS12g0bgGQLsvyBW6325vjYj+AfQDEm266qRMhpPfatWuxefPm3F69eq0C0D8xMTGZEJLgdrvPN5vNS51OZ47H4ykhhIyIj4+PgBrzvRTqy+4BRVEucrvdnaAaJHa3SAOcxRgMhgydTqe74oorOhFCYnbv3n2R0WjcRAhpVcashuJ0OvWUUh7qs83kcDh0UOOra46zLgAbDhw4cAUhJObiiy/ucuWVV+Z/+umn+w0GQ/ncuXN7EUISPvroo74GgyHv999/Pzxy5MjCwYMH9yKERGZnZ18FYAVU4/PPAG6uqKgwQU24+UuLXHwAZs2aRd55550bAbT/6quvvh82bFi+w+HQKYqyAsDFTqdToJROBfAb1LH8F1mWpxBCLLGxsUPj4uIK09PTM41G485t27YNJYQkXH311Z10Op3w4IMPbnv22Wfzn3zyyQRCSJtvvvlmFNR3hkKoY+AFTqczCmqbL4b6zGtRduzYoSeEiBdeeGH0F198Ybn77rs76vX6KL1evwFAjNvt7iTL8jgAxwEUQ73HFzmdzkhtLF9lt9tli8XyiyzLVxNChJiYmM4AEkwm0xaj0Xhox44d7Qgh7SZOnNhep9Ml3X///btfeOGFEwCsbre7myzL50M1VrQKZVKSpCclSWqXn5/fFcCdHTp0+Hn79u0PADiuKMoYt9vdEeo4uwfAQajPvG7aMyl7zZo1pYMGDVpFCDmvTZs2cYSQTg6Ho63JZNpmMpm2KorSlhDSOTo6OgrARR06dPhr7969lQAOKYoyzu12p0FNMLqzZVqgOqmpqRZCSEx+fr7RaDRGybI81mQy7YH6u77J6XRaoeZ9WQL1ebR/2bJl4wkhiXfeeWeb++67L//ZZ5/dpdfr9XfffXdXQkjC4sWLB/E8f3D79u3HO3bsWNi2bdtBhJDwysrK6wH8qtPpKLRxxOl0hgG4mlL6Z0u1ASMILZ2hkn3O3U/79u1HC4KwXhCEHYIgnBPZYSMjIz8SBOGQIAgF2nVdJwhCJ0EQ/hAEYYMgCHNvuOGGMEopBEEYIQjC94IgbBYE4YHvvvsuilKKSy65ZLwgCIsFQdguCML/FRQUGCmliIuL6yMIwjqt3BcppSgpKSGCIKQJgvC7IAgbBUF4deLEieEt3Q7ez7Bhw3oLgnBAEIRNgiD8rX0uEgQhWhCEnwVB2CoIwjft27cXtDYRBUF4XxCEbYIgvH/nnXe2pZTi9ddf7y4Iwntamzz/xx9/JFNKMWbMmM6CIPyobX9DEAQTpRTR0dFRWvnbBEFYmJqaKjBPFPAAAQAASURBVLR0W1BKMXfu3DhBEGYLgrBW6/uvbNy4MWn48OFJgiB8o8n7hSAI4ZRSREVFGQVB+Ey7vj/S0tJSKaU4fPhwlCAIz2vbv7z99tt7UkrxxhtvtBUEYZ62/e1ff/21I6UUY8eOTRQE4XOtvb8UBKFVtIf/5+eff44RBOHORx999NYXX3xREAThMa1P/yQIQv8NGzaQESNG8IIgvKz9ZlYKgtDZe74gCDO038a6du3anU8pxdGjRy2CINyitevvt91222WUUsyfPz9CEISHtN/kL4IgDFm+fDlp6Tbwu5ZOWh9ZKwjC8iFDhty6detWnSAIIwVB+EsQhDWCINz37LPPmrTjr9HGjE2CIFyzc+dOM6UU3bp1m6SNGdsFQbjZr/wB2rVvFgThKUop9u7dqxMEYbAgCEu0eh954oknzC3dFmfj55ZbbuktCMICrd2fO3r0aGRLy3S6n8GDBz8rCMIuQRDytTH9Vr9xvNo4q21/V9v+8ZQpU9IopXj//fe7CIIwX2uXlxYuXNiWUoqLL764kyAI32nb/ysIQhilFHFxcVHa73+bIAg/JCYmtpp2fPbZZ1O1sXmv9nv5W2uTJEEQ/icIwhZtbBEppYiMjCSCILyqjVHLO3To0JNSigMHDgiCIDyiXfvCu+66azilFK+88kq8IAhPa2P2F4IgdKeUYtSoURHas3CzIAi/CoLQKlZe2LVrl0kQhCu0dlgnCMLXTz755JjnnnsuUhCEx7WxfJEgCH03bdpEhg0bxguC8Ip2HSsEQejkLctvLF/bvn378ymlOHTokEVr322CIPx25513XkIpxeuvvx6htd8GrS8OWr16dasZyymlKC4u1guCcGG/fv3e3Lt3r0EQhHHaGL5SEIQ7n3jiCd3cuXN1giDcKAjCMq0NL924caORUoq+fftOE9T3ha2CIFzscrmI1k4Xatu2pKWl3UMpxeHDh/WCIIwSBGG19rn3wQcfbBWrlXTv3j1FUN+F12r9YYZ2HbHab2WLIAif9enTJ0Lb3lYQhI+1a3z10UcfTaaU4sknn+wvVL0XzdqwYUMcpRT9+/fvJgjCn1rfeU0QBJ1WToxW/lZBEBZ07dpVaOm2YJ/qH0Jpq/LOYjAYDAaDwWAwGAwGg3GWw8IoGAwGg8FgMBgMBoPBYDQpzNjAYDAYDAaDwWAwGAwGo0lhxgYGg8FgMBgMBoPBYDAYTQozNjAYDAaDwWAwGAwGg8FoUvQtLQCDwTi3WbRoUUcAbSwWS8FFF120p6XlaQg//fRTV0KIdOmllx7/9ddfe5tMppyLL744L9Tz169fb8zLy4saO3ZskSAIUijnOBwOw+LFi7tFRkbmjBkzplUs8cVgMBiMKv7888+2TqezPQDbpEmTtra0PA1hxYoV7crKyvQTJkw4vmLFih5ut7to0qRJ2aGen5WVpduyZUtEx44dlV69epWFet7PP//cj1KaN3HixFONk5zBYJyVtPRyGOzDPuxz7n4cDocewNtGo/HVhx9+eKr/vqVLl7aq5asCfQDM1uv1/6qoqOABfJCYmHhpQ86/8MIL2wK4e9euXWKo55w8eTIKwFv9+vUb19LXzz7swz7swz61P6IovgjgzRtvvPH/PB6P71n2+eeft/rnWu/evf8PwL+zsrLCoqOj3wIw2bvcYiifb775JgLApQ8//PAFDalXr9f/D8A1LX397MM+7HNmP8yzgcFgNBvvvvvuGACX6PX6F9q1a7dv/vz5QwFEHjlyxLxixYpT06dPLwHQG4AOwPHzzz9/b25urvHQoUN9AYQDsALIBpAPoCsAE4DF999/f8n8+fPNAEZrx3gsFsvaa6+9tuizzz5rD2CAJsKpbt26rbvgggtkr0wrV66M37t3bz8AUQDKrr/++r8XL16slJaWjgIgAHACWHH//feXB7qm0tJS3RdffJGq1UEAZHXv3n17TEwM/v77724AOkH1GtuemZk5GMCkr7/+Wr969eqNAHYC6A+gjXbMnvvvv3/v/PnzCYDzASSXlpYq2nUyGAwGo5Xx2WefDbXb7VcC+KBfv36b3nnnnUEABEVRImbMmFFRWlq6GcBYqGO8PT4+fv3w4cNtixYt6gygg7bdBeAkgBgAIoBtV111VfratWv1+fn5QwHEQQ11Xn///fdnvfXWW0mU0lGaCB6j0fjzXXfd5fOWy8nJMX3//fe9AHQE4OzTp89+k8l0fNOmTT21OhUA266++urMYNf11ltvxVFKz9PkqzSZTCtuuOEG5yeffBIPYBgAI4CC7du3lwKYuGPHDmX+/PkUwG4AkVCf0WEAjk2ZMmV3TEyMa/78+cMApAGwK4piOb2WZzAYZyPM2MBgMJqN/Px8KwCToihhR44ciZ4/f/6FANq1bdt22dChQ8seeOABacCAAbGCIJhXrFjR5a233sLGjRvLv/zyy/8DcBhACYBJALb861//Knv77beHuN1ucvfdd3/9wAMPXEUISXrsscdsL774oiCKYrexY8e+9cADD1yblJRkHDNmTP6CBQsct9xyC+c1NixdujTsySefvHzr1q1trr/++oL169fzI0aM0D/77LMXHTlyZMDDDz98cv78+e0kSRLvueeeD2tej81mw9NPPx35xhtvXJ+SklJx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IiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInIrJhuIiIiIiIiIyK2YbCAiIiIiIiIit2KygYiIiIiIiIjciskGIiIiIiIiInKr/wfVjkNGAn6GtwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(15, 15))\n", - "plt.imshow(plt.imread(\"dqn_tdlambda.png\"))\n", - "plt.tight_layout()\n", - "plt.axis('off')" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "# save results\n", - "torch.save({\n", - " \"frames\": frames,\n", - " \"evals\": evals,\n", - " \"mavgs\": mavgs,\n", - " \"losses\": losses,\n", - " \"values\": values,\n", - " \"grad_vals\": grad_vals,\n", - " \"traj_lengths_training\": traj_lengths,\n", - " \"traj_count\": traj_count,\n", - " \"weights\": (params, buffers),\n", - "}, \"saved_results_tdlambda.pt\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Let's compare the results on a single plot.\n", - "Because the TD(lambda) version works better, we'll have fewer episodes collected for a given number of frames (as there are more frames per episode)." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA38AAANcCAYAAADvjxYXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOydeZxcVZmwn1NVvac7SyeBkEAWCAmQsIYlRjDsKMoiCKKjMIoLisPnKAo6jjIqo6OjIygiCIICsu8ihEBCFhKyJ2RfO0l3Op3eqveu7Z7vj3ur6lbVrbWrekne5/dLuu69555z6lbVec97zrsorTWCIAiCIAiCIAjC4Y1roDsgCIIgCIIgCIIgFB5R/gRBEARBEARBEI4ARPkTBEEQBEEQBEE4AhDlTxAEQRAEQRAE4QhAlD9BEARBEARBEIQjAM9Ad6AvjB49Wk+aNGmguyEIgiD0A6tXr27SWo8Z6H4MFURGCoIgHBlkIx+HtPI3adIkVq1aNdDdEARBEPoBpdTege7DUEJkpCAIwpFBNvJRzD4FQRAEQRAEQRCOAET5EwRBEARBEARBOAIQ5U8QBEEQBEEQBOEIYEj7/AmCIAiCkDmBQIDa2lp6e3sHuivCAFNaWsqECRMoKioa6K4IgtCPiPInCIIgCEcItbW1VFZWMmnSJJRSA90dYYDQWtPc3ExtbS2TJ08e6O4IgtCPiNmnIAiCIBwh9Pb2Ul1dLYrfEY5SiurqatkBFoQjkIIqf0qpGqXUh0qpdUqpVda5UUqpt5VSO6y/I63zSil1n1Jqp1Jqg1LqzEL2TRAEQRAGkoGSkaL4CSDfA0E4UumPnb8Ltdana61nWcd3Ae9oracC71jHAB8Hplr/vgr8sR/6JgiCIAgDichIQRAEod8YCLPPq4HHrdePA9fYzv9VmywHRiilxg1A/wRByBcteyDQk9/6/N35q08QBh8iIwXhSKW9HrpbnK/5OsC7v3/7IxyWFFr508A8pdRqpdRXrXNHaa3rrdcHgaOs1+MB+7e61joXg1Lqq0qpVUqpVY2NjYXqtyAIfSXog/VPw4fP56c+I2TWt+GZ/NQnCAOPyMgkeL1eHnjggYK2sXbtWr785S8DsHDhQt5///2kZYcNGxZ5/fjjjzN16lSmTp3K448/Hjl/ySWX0NraWrgOC4c/qx+DD/7kfG3ln2HtE/3aHeHwpNDK30e11mdimqt8Uyl1gf2i1lpjCr+M0Vo/pLWepbWeNWbMmDx2VRCEvGKEzL/dTfmpTxvm36481ScIA88RLSO11hiG4XgtV+UvFAplXPbee+/l3/7t34D0yl+YlpYW7rnnHj744ANWrFjBPffcE1H4vvCFLxRcYRWOYAISnEfIDwVN9aC1rrP+HlJKvQScAzQopcZprestk5VDVvE64Fjb7ROsc4IgCIJw2DHQMnLhtkM0dvj6UkUCYypLmDttbNLrNTU1XH755Zx77rmsXr2aN954g2effZZnn30Wn8/Htddeyz333MNdd93Frl27OP3007n00ku58sor+fWvf83rr78OwO23386sWbO45ZZbmDRpEjfeeCNvv/023/ve97jrrru4+eabee211wgEAjz33HNMnz49ph8dHR1s2LCB0047jZqaGh588EHcbjdPPPEE999/PxMmTOBzn/scnZ2dXH311ZH73nrrLS699FJGjRoFwKWXXsqbb77JTTfdxFVXXcX555/PD3/4w7w+U0EQhHxSsJ0/pVSFUqoy/Bq4DNgIvArcbBW7GXjFev0q8EUrotl5QJvN9EUQBEEQDhuOZBm5Y8cOvvGNb7Bp0ya2bdvGjh07WLFiBevWrWP16tUsWrSIX/ziFxx//PGsW7eOX/3qV2nrrK6uZs2aNXz2s58FYPTo0axZs4bbbruNX//61wnlV61axYwZMwCYNGkSX//61/n2t7/NunXrOP/887njjju47bbb+PDDDxk3LupaWVdXx7HHRnXwCRMmUFdn6uAjR47E5/PR3Nzcp+cjCIJQSAq583cU8JIVStgDPKW1flMptRJ4Vin1ZWAvcINV/g3gE8BOoBv41wL2TRAEQRAGkgGXkal26ArJxIkTOe+88wCYN28e8+bN44wzzgCgs7OTHTt2cNxxx2VV54033hhz/OlPfxqAs846ixdffDGhfH19PanMYpcuXcoLL7wAmOac3//+9zPqx9ixYzlw4ADV1dWZdl0QBKFfKZjyp7XeDZzmcL4ZuNjhvAa+Waj+CIIgCMJg4UiWkRUVFZHXWmvuvvtuvva1r8WUqampiTn2eDwx/oHxycntdQKUlJQA4Ha7CQaDCX0oKytLm+DcKQ/e+PHjWbhwYeS4traWuXPnxvSrrKwsZb2CIAgDyUCkehAEQRAEQeDyyy/n0UcfpbOz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ROorVqxg9uzZnHHGGXzkIx9h27ZtAJx33nls2rQpUt/cuXNZtWoVjY2NXHrppZxyyinceuutTJw40XFn7sknn+Tqq68G4K677mLXrl2cfvrp3HnnnWituf3225k2bRqXXHIJhw4dcrwvnmuuuYazzjqLU045hYceeihyftiwYdx5552ccsopXHLJJaxYsYK5c+cyZcoUXn311Ui5/fv3M3fuXKZOnco999wTOf/zn/+cE088kY9+9KOR9w/w8MMPc/bZZ3Paaadx3XXX0d3dDUB5eTmTJk2KPMOJEyfS3NzMwYMHM/x0BEE4Ekib508pNQf4CTDRKq8ArbVOufyltb4buNuqYy7wXa3155VSzwHXYwq8m4FXrFtetY6XWdff1Vr2kQVBOIIR5e6wZLDIx4P33otvy9a+VhNDyUnTOfoHP0hZZufOnTz33HM8+uijnH322Tz11FMsWbKEV199lXvvvZeXX36Z6dOns3jxYjweD/Pnz+cHP/gBL7zwAjfeeCPPPvss99xzD/X19dTX1zNr1ixuv/12LrroIu6++27efPNNHnnkEce2ly5dyp/+9CcAfvGLX7Bx40bWrVsHwIsvvsi2bdvYvHkzDQ0NnHzyyXzpS1+K3HfTTTc51vnoo48yatQoenp6OPvss7nuuuuorq6mq6uLiy66iF/96ldce+21/Md//Advv/02mzdv5uabb+aqq64CTEV348aNlJeXc/bZZ3PllVeilOLpp59m3bp1BINBzjzzTM466ywAPv3pT/OVr3wFgP/4j//gkUce4Vvf+hYAs2bNYvHixZxzzjkAnHnmmSxdupTrrrsu049Q6HcyGOf7dToscudwJ5Mk748A3wZWA6E8tPl94Gml1M+AtVb94Xb+ppTaCbQAn81DW4Ig5AURBgOCrH8daRwR8nHy5MnMnDkTgFNOOYWLL74YpRQzZ86kpqYGgLa2Nm6++WZ27NiBUopAIACYCdovu+wy7rnnHp599lmuv/56AJYsWcJLL70EwBVXXMHIkSMd225paaGystLx2qJFi7jppptwu90cc8wxXHTRRZFr9fX1JNtJve+++yJt79+/nx07dlBdXU1xcTFXXHEFADNnzqSkpISioqKY9wlmovjqatOF89Of/jRLliwB4Nprr6W8vBwgoigCbNy4kf/4j//A6/XS2dnJ5ZdfHrk2duxYtm7dGnN84EBSDx1BEI5AMlH+2rTW/+xLI1rrhcBC6/Vu4ByHMr3AZ/rSjiAIhzGiCAmHIQMpH9Pt0BWKkpKSyGuXyxU5drlcBINmvJsf/ehHXHjhhbz00kvU1NQwd+5cAMaPH091dTUbNmzgmWee4cEHH8yqbY/Hg2EYuFzZZboqKyujtzcxz+nChQuZP38+y5Yto7y8nLlz50bKFRUVEQ7Kmux9AsQHblVKkWpj95ZbbuHll1/mtNNO47HHHmPhwoWRa729vZSVlSU9FgRByGT0W6CU+pVSarZS6szwv4L3TBAEQRCEI5K2tjbGjzeDnT722GMx12688Ub+53/+h7a2Nk499VQA5syZw7PPPgvAvHnzaG1tdax32rRpkYidlZWVdHR0RK5dcMEFPPPMM4RCIerr61mwYEHk2kknncTOnYlhDtra2hg5ciTl5eVs3bqV5cuXZ/1e3377bVpaWujp6eHll19mzpw5XHDBBbz88sv09PTQ0dHBa6+9Finf0dHBuHHjCAQCPPnkkzF1bd++nRkzZiQ9FgYjh8HCprgoDCkyUf7OBWYB9wL/a/1LHW9YEARB6D9kV1Q4zPje977H3XffzRlnnBGzSwZmyoWnn36aG264IXLuxz/+MfPmzWPGjBk899xzHH300Y7mnVdeeWVkp6y6upo5c+YwY8YM7rzzTq699lqmTp3KySefzBe/+EVmz57teJ+dK664gmAwyEknncRdd93Feeedl/V7Peecc7juuus49dRTue6665g1axZnnnkmN954I6eddhof//jHOfvssyPlf/rTn3LuuecyZ84cpk+fHlPX0qVLufTSSwEIBALs3LmTWbNmZd0nQRAOX1KafSql3MCrWuvf9lN/BEEY1IiSIQhC7kyaNImNG6PBxO27evZrs2fPZvv27ZFrP/vZzyKvjzrqqASFcPjw4bz11lt4PB6WLVvGypUrY8xLw9x666188Ytf5NZbbwXgqaeeirn++9//3rHf119/PRdeeCH33HMPbrc7xmfvn/909ozp7OyMvP7JT37ieO2WW27hlltucbz/hz/8IT/84Q8Tzt92223cdtttCefXrl3LKaecEvEffP3117n++uvxeDLx8BEGDtk1E/qXlCOC1jqklLoJEOVPEARBiLLpJRh7Cow5caB7Igjs27ePG264AcMwKC4u5uGHH3YsN27cOL7y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JO3bt6d169aMGjWKF198kZEjR1K9enXbfQcY18t//vkHgMGDB9O7d29eeeUVlFL07t2b3377jcsuuyzQX68QogwIR83fl4BrW7vJQButdTtgLfAYgFKqFXAF0Nrc5wOlVLxSKh54HzgHaAVcaaYtdebPn89PP/3EkiVL+P3331mwYIHT9ry8PBYsWMCDDz5I9+7dmTNnDosWLeKKK66w/cN/9tln6d69OytWrODCCy9k69atbseZNGkS69atY968eSxevJiFCxcyffp0ANatW8edd97JihUrqFSpEj/99BOXXHIJWVlZjBo1isWLFzsFflYFBQXMmzePt99+23YhfP/991FKsWzZMr799lsGDx5sG23rv//+Y8yYMUybNg2A5cuXM3bsWObPn88TTzxBWloaixYtomvXrramnY5mzpxpu0C5lk8pxS233MKvv/7KwoUL2bVrl22/HTt2UK9ePdv7unXrsmPHDgCysrKYMWNGgL8tIYQQxWnVqlV8//33zJw5k8WLFxMfH8+oUaMAOH78OFlZWaxYsYJevXq5BWT79+/n559/ZsWKFSxdupQnn3wSgLvvvpvBgwezdOlSrr76au655x4A7r33Xm6//XaWLVtGrVq1bPn4un6GUuYuXbqwZMkSevbsySeffGI79r333suyZcuoW7euLa9hw4bRo0cPFi9ezP333w/A4sWL+f7771m2bBnff/8927ZtcyuD4/Vy2LBhpKamsnjxYkaNGsXChQv57rvvWLx4MRMnTmT+/Pm2/Xbv3m377DVr1mT37t22bXK9FCI2FbnmT2s9XSmV6bJuksPbOcAl5vIg4DutdS6wSSm1Huhsbluvtd4IoJT6zky7sihl8/f0MRJmzpzJoEGDSElJISUlhfPPP99p++WXX25b3r59O5dffjnZ2dnk5eXZ5q6ZPn06Y8eOBYymGZUrV3Y7zqRJk5g0aRIdOnQA4NixY6xbt4769evTsGFD2rdvD0CnTp3YvHlzQGW/6KKL3Pb5999/ufvuuwFo0aIFDRo0YO3atQCceeaZTrV5ffr0oUKFClSoUIH09HTbZ2/bti1Lly51O152djYtW7b0WJbVq1fTsGFDmjZtCsA111zDiBEj/H6G6tWrl7h+jUIIURJF4xo5ZcoUFi5cyKmnngrAyZMnqV69OgBxcXG2a+Q111xjuyZZpaenk5KSwk033cR5551n6wc+e/Zs2zXz2muv5ZFHHgGM6/FPP/1kW//oo48C3q+fPXv2DLrMSUlJtnJ06tSJyZMn28o0btw4AK666ioeeughr+ekb9++pKenA9CqVSu2bNni9IATjOtlRkaGx/1nzJjBhRdeSFpaGgADBw70mE4p5TRiplwvhYhNxTHJ+43A9+ZyHYxg0Gq7uQ5gm8v60zxlppS6FbgVoH79+mEtaHEoV66cbfnuu+/mgQceYODAgfzzzz8MHTo04Hy01jz22GPcdtttTus3b95McnKy7X18fDwnT54MKE/rfvHx8QH143P8LI77g3ERt76Pi4vzmF9qampIc/bUqVPH6cno9u3bqVPH+Brl5OR4rNUUQggRfVprBg8ezMsvv+w3revQ/gkJCcybN48pU6YwZswYhg8fztSpU4PKw1oGT9fPUMqcmJhoO0ag105XrtfscF4va9SoYesWkZ2dbQtaQa6XQsSqiA74opR6AigARoUrT631CK11ltY6y9tTsGjq1q0bv/76Kzk5ORw7dozffvvNa9rDhw/bgpaRI0fa1vfs2dPWIfz333+3jc7lqH///nz++ee2/n87duxgz549PstWoUIFjh49GtTn6dGjh615y9q1a9m6dSvNmzcPKg9vWrZsyfr16z2Wr0WLFmzevJkNGzYA8O2339rSDRw4kK+++gqtNXPmzCE9Pd3WrGXt2rW0adMmLOUTQggRXn379mXMmDG269WBAwfYsmULABaLhTFjxgAwevRop77eYNTQHT58mHPPPZe33nqLJUuWAMYo2N999x1g9I3r0aMHYFyPHddbBXv99FVmb7p06WKrdbSWAUK7DoP79TIxMZH8/HzAuGcYN24cJ0+e5OjRo/z666+2dAMHDrTdX4wcOdKp76NcL4WITREL/pRS12MMBHO1to9YsgNwbMtQ11znbX2pc+qppzJw4EDatWv3//bOM0yKYmvAb+0uLEkBSaKIYESRIGDAiGJCDJizoH56Tdd01YvhKmaMmAMKYkAMiAlFJYgERYLknJYkObOwaaa+H90zO6FnpnumJ+2c93nmmQ7VVad7eqrq1Dl1im7dutGmTRu/O0coffr04bLLLqNjx440bNjQf/zxxx9n3LhxtG7dmmHDhllaOM866yyuvvpqOnfuTJs2bbj00ktjNii9evXi1ltvpX379ratgbfffjter5c2bdpwxRVXMGjQoKBRykTo1q1b0DyLQPm01vTv35/u3bvToUOHoNHKc889l4MOOohDDjmEm2++mbffftt/7rfffqN79+6uyCcIgiC4y5FHHsnTTz/NWWedRdu2bTnzzDNZu3YtYHiTTJ48maOOOooxY8aELUWwc+dOzjvvPNq2bctJJ53EK6+8AsAbb7zBhx9+SNu2bfnkk0947bXXAHjttdd46623aNOmjX9eODhvP6PJHIlXX32VV155hbZt27JkyRJ/P6Bt27bk5+fTrl07+vXrZ/u5de/e3R+4BeCWW26hbdu2XHPNNXTo0IErrriCdu3a0a1bN797KhjBYUaOHMmhhx7KqFGj6N27t/+ctJeCkKNorRP+AC2AOQH752DM12sUkq41MBMoBFoCyzCiexaY2y2B6maa1rHK7dixow5l3rx5YcdSzc6dO7XWWhcXF+uOHTvqadOmpVmizKVHjx560aJFruV38skn6y1btriWX6rIhPdWCOHxvY2PkDEAU7ULbVaufDK1jYxE7dq10y2CaxQXF2uv16u11nrIkCH6ggsuSCi/3bt36+OOO05XVFS4IZ5et26dPv30013JK5Vk8vubEN/dabQ3Uz9MtyRCluKkfXRjqYchQBegoVJqNfA4RnTPQmCk6Qs/SWt9q9Z6rlLqS1MxrADu0Fp7zHzuBH4xlcGBWuu5icqWLm655RbmzZtHSUkJPXv2pEOHDukWKWPp27cva9eu9Qd2SYSNGzdy3333WQbIEYSUsn4u1G8B1WvHTCoIQtVj2rRp3HnnnWitqVevHgMHDkwov5o1a/LEE0+wZs0aV+IdrFy5kpdffjnhfASXCFjSSxCSjRvRPq+yODwgSvpngGcsjv8E/JSoPJlAPAu45iqHH364a3MIGzVqRI8ePVzJSxDiprwE3jkBDjkTrh2abmkEIWvwzcGrCpx88sn+OYlucfbZZ7uWV6BrqCAIuUVSA74IgiDkHF4jCAMr/0yvHIIgCEJ2YBGVVhCShSh/giAIyUDceARBEARByDBE+RMEQRAEQRAEQcgBRPkTBEFIBqFuPGtniTVQEARBEIS0IspfFtCiRQs2bdoEGIvZxsugQYP4559/3BLLFV599VU+/vhjILp8Y8eO5bzzzvPvf/vttzz55JOAsV7iSy+95Io8derUiZmmqKgo5sK4Gzdu5JxzzvHvz549m169eiUqnpCtzPse3jsZZksAGEFwymOPPcaoUaMSzsdO/R5IYNvrFkVFRUFB4QYNGsSdd95p69pLL72UZcuWAfDss89GTBfaJt5zzz3+NXW7dOnC1KlT4xE9iNA2ORJ27m/48OFBazq++eabCUdHFQQhMqL8pYmKioq4rvvjjz/iLjNZyl+891JRUcHAgQO5+uqrAWfyvfDCC9x+++1xlZsKGjVqRNOmTZk4cSIAbdq0YfXq1axcuTLNkglpYdNC43vj/PTKIQhZyJNPPskZZ5yRbjFcIVT5s8vcuXPxeDwcdNBBQHTlL5DNmzczadIkTjnlFMdlporu3bvzww8/sHv3bgBuvPFG3njjjTRLJQhVl4SXeshoRvSGdbPdzXPfNtCtb9QkTz31FJ9++imNGjXigAMOoGPHjtx///106dKF9u3bM2HCBK666ioOO+wwnn76acrKymjQoAGDBw+mSZMmbN68mauuuoo1a9bQuXNndICrWJ06dfzhsF988UW+/PJLSktLueiii3jiiScoKiqiW7dunHTSSfzxxx/sv//+fPfdd/z4449MnTqVa665hpo1a/Lnn39Ss2ZNf75dunThuOOO47fffmPbtm0MGDCAk08+mZKSEm677TamTp1KQUEBr7zyCqeddhqDBg1i2LBh7Nq1C4/Hww033MC3335LcXExixcv5v7776esrIxPPvmEwsJCfvrpJ/bZZ5+g5zRmzBg6dOhAQUEBQ4cODZPv999/55577qFWrVqcdNJJ/usWLVpEYWEhDRs2DHv277//Pv3796esrIxDDjmETz75hFq1atGrVy9q1qzJ9OnT2bBhAwMHDuTjjz/mzz//5LjjjmPQoEH+PO69915+/fVX9t13Xz7//HMaNWrEtGnTuPHGGwE466yz/GmLioq47rrrKC4uBowRS591tkePHgwePJgTTzwRgPPPP5/PP/+cBx98MOr7I1QRrFw8xe1TyCTS1EZ++umnvP7665SVlXHcccfx9ttvk5+fT506dbj55pvD6t9evXpx3nnncemll9K7d2++//57CgoKOOuss3jppZcoKirixhtvZNOmTTRq1IgPP/yQ5s2bs3z5cq6++mp27drFhRdeGCSDVfsZr8x33303w4cPp2bNmnz33Xc0adKEpUuXcs0111BcXMyFF17Iq6++yq5du+jduzfz58+nffv29OzZk/r16/PPP/9wzjnnsHTpUi666CJeeOGFsPIHDx7sv4fevXuzZ88e2rdvT+vWrRk8eDDPPPMMH330EY0bN/b3OwC+/vrrIC+UQG677TamTJnCnj17uPTSS/3PoEWLFlx11VWMGDGCgoIC+vfvz0MPPcSSJUt44IEHuPXWWwHYsWMH3bt3Z8mSJZx22mm8/fbb5OXl8eGHH/Lcc89Rr1492rVrR2FhIQA//PCDZZ9HKUWXLl0YPnw4l19+ObVq1aJFixZMnjyZY489NurvIgiCc8Ty5zJTpkzh66+/ZubMmYwYMSLMvaKsrIypU6fyn//8h5NOOolJkyYxffp0rrzySn+F/8QTT3DSSScxd+5cLrroIktr0a+//srixYuZPHkyM2bMYNq0aX63jsWLF3PHHXcwd+5c6tWrx9dff82ll15Kp06dGDx4MDNmzAhS/HxUVFQwefJkXn31VX8j8NZbb6GUYvbs2QwZMoSePXtSUlICwN9//83QoUP5/fffAZgzZw7Dhg1jypQpPPLII9SqVYvp06fTuXNnv2tnIBMnTvQ3UKHyKaW4+eab+eGHH5g2bRrr1q0Luq5Dhw6Wz//iiy9mypQpzJw5kyOOOIIBAyqXnNy6dSt//vkn/fr144ILLuDee+9l7ty5zJ49mxkzZgBQXFxMp06dmDt3Lqeeeqr/Odxwww288cYbYes2NW7cmJEjR/L333/zxRdfcNddd/nPderUifHjx0fcF3IJCeMtCADz58/niy++YOLEicyYMYP8/HwGDx4MRK5/fWzevJlvvvmGuXPnMmvWLB599FEA/v3vf9OzZ09mzZrFNddc46+H7777bm677TZmz55N06ZN/flEaz/jkfn4449n5syZnHLKKbz//vv+su+++25mz55Ns2bN/Hn17duXk08+mRkzZnDvvfcCMGPGDL744gtmz57NF198wapVq8JkCGwv+/btS82aNZkxYwaDBw9m2rRpfP7558yYMYOffvqJKVOmWF4XyjPPPMPUqVOZNWsWv//+O7NmzfKfa968OTNmzODkk0+mV69eDB06lEmTJvH444/700yePJk33niDefPmsXTpUoYNG8batWt5/PHHmThxIhMmTGDevHn+9JH6PCDtpQwMCqmkalv+Yow+JoOJEydy4YUXUqNGDWrUqMH5558fdP6KK67wb69evZorrriCtWvXUlZWRsuWLQEYN24cw4YNAwx3iPr164eV8+uvv/Lrr79y9NFHA8biuIsXL6Z58+a0bNmS9u3bA9CxY0eKiopsyX7xxReHXTNhwgT+/e9/A9CqVSsOPPBAFi1aBMCZZ54ZZM077bTT2Guvvdhrr72oW7eu/97btGkT1Kj4WLt2LUcccYSlLAsWLKBly5YceuihAFx77bX079/ff12jRo0sr5szZw6PPvoo27ZtY9euXUGL4p5//vkopWjTpg1NmjShTZs2ALRu3ZqioiLat29PXl6e/ze69tprufjii9m2bRvbtm3zu81cd911jBgxAoDy8nLuvPNOf4fA92zAUAwD3VhD9wVBENJKGtrI0aNHM23aNP8i43v27KFx48YAlvVvIHXr1qVGjRrcdNNNnHfeef45Z3/++ae/zbzuuuv83hUTJ07k66+/9h//73//C0RuPyO5RkaTuXr16n45OnbsyMiRI/0yffvttwBcffXV3H///RGfSdeuXalbty4ARx55JCtWrOCAAw4IShOt3Rs/fjwXXXQRtWrVAuCCCy6wdd2XX35J//79qaioYO3atcybN4+2bdsG5dGmTRt27drlb9sLCwvZtm0bAMcee6zfDfWqq65iwoQJFBQU0KVLF3+ZV1xxhb9djNTnAev2csGCBRGfmSAI8VO1lb8MpHbt2v7tf//739x3331ccMEFjB07lj59+tjOR2vNQw89xL/+9a+g40VFRX4XC4D8/Hz27NljK0/fdfn5+bbm8QXeS+D1YDTivv28vDzL/GrWrOm3IjqhZs2abN++3fJcr169+Pbbb2nXrh2DBg1i7NixYfIFyhZNPgAVY+HVfv360aRJE2bOnInX66VGjRr+cyUlJUEW1tB9oaoiVj5BiITWmp49e/Lcc8/FTBta/xYUFDB58mRGjx7N0KFDefPNNxkzZoyjPHwyWLWf8chcrVo1fxl2285QQttst9tLq+uWL1/OSy+9xJQpU6hfvz69evUKSmenvQx9trHay2h9npxvL2WRdyGFiNuny5x44on88MMPlJSUsGvXLoYPHx4x7fbt29l///0B+Oijj/zHTznlFP+E8BEjRrB169awa88++2wGDhzon/+3Zs0aNmzYEFW2vfbai507dzq6n5NPPtnv3rJo0SJWrlzJ4Ycf7iiPSBxxxBEsWbLEUr5WrVpR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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "load_td0 = torch.load(\"saved_results_td0.pt\")\n", - "load_tdlambda = torch.load(\"saved_results_tdlambda.pt\")\n", - "frames_td0 = load_td0[\"frames\"]\n", - "frames_tdlambda = load_tdlambda[\"frames\"]\n", - "evals_td0 = load_td0[\"evals\"]\n", - "evals_tdlambda = load_tdlambda[\"evals\"]\n", - "mavgs_td0 = load_td0[\"mavgs\"]\n", - "mavgs_tdlambda = load_tdlambda[\"mavgs\"]\n", - "losses_td0 = load_td0[\"losses\"]\n", - "losses_tdlambda = load_tdlambda[\"losses\"]\n", - "values_td0 = load_td0[\"values\"]\n", - "values_tdlambda = load_tdlambda[\"values\"]\n", - "grad_vals_td0 = load_td0[\"grad_vals\"]\n", - "grad_vals_tdlambda = load_tdlambda[\"grad_vals\"]\n", - "traj_lengths_td0 = load_td0[\"traj_lengths_training\"]\n", - "traj_lengths_tdlambda = load_tdlambda[\"traj_lengths_training\"]\n", - "traj_count_td0 = load_td0[\"traj_count\"]\n", - "traj_count_tdlambda = load_tdlambda[\"traj_count\"]\n", - "\n", - "plt.figure(figsize=(15, 15))\n", - "plt.subplot(3,2,1)\n", - "plt.plot(frames[-len(evals_td0):], evals_td0, label=\"return (td0)\", alpha=0.5)\n", - "plt.plot(frames[-len(evals_tdlambda):], evals_tdlambda, label=\"return (td(lambda))\", alpha=0.5)\n", - "plt.plot(frames[-len(mavgs_td0):], mavgs_td0, label=\"mavg (td0)\")\n", - "plt.plot(frames[-len(mavgs_tdlambda):], mavgs_tdlambda, label=\"mavg (td(lambda))\")\n", - "plt.xlabel(\"frames collected\")\n", - "plt.ylabel(\"trajectory length (= return)\")\n", - "plt.subplot(3,2,2)\n", - "plt.plot(traj_count_td0[-len(evals_td0):], evals_td0, label=\"return (td0)\", alpha=0.5)\n", - "plt.plot(traj_count_tdlambda[-len(evals_tdlambda):], evals_tdlambda, label=\"return (td(lambda))\", alpha=0.5)\n", - "plt.plot(traj_count_td0[-len(mavgs_td0):], mavgs_td0, label=\"mavg (td0)\")\n", - "plt.plot(traj_count_tdlambda[-len(mavgs_tdlambda):], mavgs_tdlambda, label=\"mavg (td(lambda))\")\n", - "plt.xlabel(\"trajectories collected\")\n", - "plt.legend()\n", - "plt.subplot(3,2,3)\n", - "plt.plot(frames[-len(losses_td0):], losses_td0, label=\"loss (td0)\")\n", - "plt.plot(frames[-len(losses_tdlambda):], losses_tdlambda, label=\"loss (td(lambda))\")\n", - "plt.xlabel(\"frames collected\")\n", - "plt.title(\"loss\")\n", - "plt.legend()\n", - "plt.subplot(3,2,4)\n", - "plt.plot(frames[-len(values_td0):], values_td0, label=\"values (td0)\")\n", - "plt.plot(frames[-len(values_tdlambda):], values_tdlambda, label=\"values (td(lambda))\")\n", - "plt.xlabel(\"frames collected\")\n", - "plt.title(\"value\")\n", - "plt.legend()\n", - "plt.subplot(3,2,5)\n", - "plt.plot(frames[-len(grad_vals_td0):], grad_vals_td0, label=\"gradient norm (td0)\")\n", - "plt.plot(frames[-len(grad_vals_tdlambda):], grad_vals_tdlambda, label=\"gradient norm (td(lambda))\")\n", - "plt.xlabel(\"frames collected\")\n", - "plt.title(\"grad norm\")\n", - "plt.legend()\n", - "if len(traj_lengths):\n", - " plt.subplot(3,2,6)\n", - " plt.plot(traj_lengths_td0, label=\"episode length (td0)\")\n", - " plt.plot(traj_lengths_tdlambda, label=\"episode length (td(lambda))\")\n", - " plt.xlabel(\"batches\")\n", - " plt.legend()\n", - " plt.title(\"episode length (training)\")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Finally, we generate a new video to check what the algorithm has learnt. If all goes well, the duration should be significantly longer than with the initial, random rollout." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([249, 2]), dtype=torch.int64),\n", - " action_value: Tensor(torch.Size([249, 2]), dtype=torch.float32),\n", - " chosen_action_value: Tensor(torch.Size([249, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([249, 1]), dtype=torch.bool),\n", - " next_pixels: Tensor(torch.Size([249, 4, 64, 64]), dtype=torch.float32),\n", - " next_pixels_save: Tensor(torch.Size([249, 400, 600, 3]), dtype=torch.uint8),\n", - " pixels: Tensor(torch.Size([249, 4, 64, 64]), dtype=torch.float32),\n", - " pixels_save: Tensor(torch.Size([249, 400, 600, 3]), dtype=torch.uint8),\n", - " reward: Tensor(torch.Size([249, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([249]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dummy_env.transform.insert(0, CatTensors([\"next_pixels\"], \"next_pixels_save\", del_keys=False))\n", - "eval_rollout = dummy_env.rollout(max_steps=10000, policy=actor, auto_reset=True).cpu()\n", - "eval_rollout" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "IMAGEIO FFMPEG_WRITER WARNING: input image is not divisible by macro_block_size=16, resizing from (600, 400) to (608, 400) to ensure video compatibility with most codecs and players. To prevent resizing, make your input image divisible by the macro_block_size or set the macro_block_size to 1 (risking incompatibility).\n", - "[swscaler @ 0x555d300] Warning: data is not aligned! This can lead to a speed loss\n" - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import imageio; \n", - "from IPython.display import Video; \n", - "imageio.mimwrite('cartpole.mp4', eval_rollout[\"next_pixels_save\"].numpy(), fps=30); \n", - "Video('cartpole.mp4', width=480, height=360) #the width and height option as additional thing new in Ipython 7.6.1" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## Conclusion and possible improvements\n", - "\n", - "We have seen that using TD(lambda) greatly improved the performance of our algorithm.\n", - "Other possible improvements could include:\n", - "- using the Multi-Step post-processing. Multi-step will project an action to the nth following step, and create a discounted sum of the rewards in between. This trick can make the algorithm noticebly less myopic. To use this, simply create the collector with\n", - " \n", - " ```python\n", - " from torchrl.data.postprocs.postprocs import MultiStep\n", - " collector = CollectorClass(..., postproc=MultiStep(gamma, n))\n", - " ```\n", - " \n", - " where `n` is the number of looking-forward steps.\n", - " Pay attention to the fact that the `gamma` factor has to be corrected by the number of steps till the next observation when being passed to vec_td_lambda_advantage_estimate:\n", - " \n", - " ```python\n", - " gamma = gamma ** tensordict[\"steps_to_next_obs\"]\n", - " ```\n", - "- A prioritized replay buffer could also be used. This will give a higher priority to samples that have the worst value accuracy.\n", - "- A distributional loss (see `torchrl.objectives.DistributionalDQNLoss` for more information).\n", - "- More fancy exploration techniques, such as NoisyLinear layers and such (check `torchrl.modules.NoisyLinear`, which is fully compatible with the `MLP` class used in our Dueling DQN)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.6.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/demo.ipynb b/tutorials/demo.ipynb deleted file mode 100644 index 64c47c649c9..00000000000 --- a/tutorials/demo.ipynb +++ /dev/null @@ -1,2050 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "308f4833-c7ec-4040-b724-df01d437ce44", - "metadata": {}, - "source": [ - "[](https://colab.research.google.com/github/pytorch/rl/blob/main/tutorials/demo.ipynb)\n", - "\n", - "# TorchRL Demo\n", - "\n", - "___\n", - "This demo was presented at ICML 2022 on the industry demo day.\n", - "\n", - "It gives a good overview of TorchRL functionalities.\n", - "\n", - "Feel free to reach out to vmoens@fb.com or submit issues if you have questions or comments about it.\n", - "___\n", - "\n", - "TorchRL is an open-source Reinforcement Learning (RL) library for PyTorch.\n", - "\n", - "https://github.com/pytorch/rl\n", - "\n", - "The PyTorch ecosystem team (Meta) has decided to invest in that library to provide a leading platform to develop RL solutions in research settings.\n", - "\n", - "It provides pytorch and **python-first**, low and high level **abstractions** for RL that are intended to be efficient, documented and properly tested. The code is aimed at supporting research in RL. Most of it is written in python in a highly modular way, such that researchers can easily swap components, transform them or write new ones with little effort.\n", - "\n", - "This repo attempts to align with the existing pytorch ecosystem libraries in that it has a dataset pillar (torchrl/envs), transforms, models, data utilities (e.g. collectors and containers), etc. TorchRL aims at having as few dependencies as possible (python standard library, numpy and pytorch). Common environment libraries (e.g. OpenAI gym) are only optional.\n", - "\n", - "Content:\n", - "\n", - "```\n", - "torchrl\n", - "│\n", - "└───collectors\n", - "│ collectors.py\n", - "│ \n", - "└───data\n", - "│ │ tensor_specs.py\n", - "│ └───postprocs\n", - "│ │ postprocs.py\n", - "│ └───replay_buffers\n", - "│ │ replay_buffers.py\n", - "│ │ storages.py\n", - "│ └───tensordict\n", - "│ memmap.py\n", - "│ metatensor.py\n", - "│ tensordict.py\n", - "└───envs\n", - "│ │ common.py\n", - "│ │ env_creator.py\n", - "│ │ gym_like.py\n", - "│ │ vec_env.py\n", - "│ └───libs\n", - "│ │ dm_control.py\n", - "│ │ gym.py\n", - "│ └───transforms\n", - "│ functional.py\n", - "│ transforms.py\n", - "└───modules\n", - "│ └───distributions\n", - "│ │ continuous.py\n", - "│ │ discrete.py\n", - "│ └───models\n", - "│ │ models.py\n", - "│ │ exploration.py\n", - "│ └───tensordict_module\n", - "│ actors.py\n", - "│ common.py\n", - "│ exploration.py\n", - "│ probabilistic.py\n", - "│ sequence.py\n", - "└───objectives\n", - "│ │ common.py\n", - "│ │ ddpg.py\n", - "│ │ dqn.py\n", - "│ │ functional.py\n", - "│ │ ppo.py\n", - "│ │ redq.py\n", - "│ │ reinforce.py\n", - "│ │ sac.py\n", - "│ │ utils.py\n", - "│ └───value\n", - "│ advantages.py\n", - "│ functional.py\n", - "│ pg.py\n", - "│ returns.py\n", - "│ utils.py\n", - "│ vtrace.py\n", - "└───record\n", - "└───trainers\n", - " │ loggers.py\n", - " │ trainers.py\n", - " └───helpers\n", - " collectors.py\n", - " envs.py\n", - " losses.py\n", - " models.py\n", - " recorder.py\n", - " replay_buffer.py\n", - " trainers.py\n", - "\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "d38be66d-a807-4a53-956f-d53eb99cc801", - "metadata": {}, - "source": [ - "Unlike other domains, RL is less about media than _algorithms_. As such, it is harder to make truly independent components.\n", - "\n", - "What TorchRL is not:\n", - "- a collection of algorithms: we do not intend to provide SOTA implementations of RL algorithms, but we provide these algorithms only as examples of how to use the library.\n", - "- a research framework\n", - "\n", - "TorchRL has very few core dependencies, mostly PyTorch and functorch. All other dependencies (gym, torchvision, wandb / tensorboard) are optional." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0ce9584b", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install functorch\n", - "!pip install \"gym[classic_control]\"\n", - "!pip install torchrl" - ] - }, - { - "cell_type": "markdown", - "id": "1af6372c-de8b-4435-92b4-53f95f4e5db5", - "metadata": { - "tags": [] - }, - "source": [ - "## Data\n", - "### TensorDict" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "8a66580d-4ab5-4c64-a3c0-7af171603bbd", - "metadata": {}, - "outputs": [], - "source": [ - "import torch\n", - "from torchrl.data import TensorDict" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "99bb0b39-fc81-4fcf-8de4-b115b1a49724", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " key 1: Tensor(torch.Size([5, 3]), dtype=torch.float32),\n", - " key 2: Tensor(torch.Size([5, 5, 6]), dtype=torch.bool)},\n", - " batch_size=torch.Size([5]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "# Creating a TensorDict\n", - "batch_size = 5\n", - "tensordict = TensorDict(source={\n", - " \"key 1\": torch.zeros(batch_size, 3),\n", - " \"key 2\": torch.zeros(batch_size, 5, 6, dtype=torch.bool)\n", - "}, batch_size = [batch_size])\n", - "print(tensordict)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "8ef9a4f1-4682-41cb-b024-37770740d389", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " key 1: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " key 2: Tensor(torch.Size([5, 6]), dtype=torch.bool)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# indexing\n", - "tensordict[2]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "7e0c8f4a-29c8-4194-acf8-fce33eb21d3e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# querying keys\n", - "tensordict[\"key 1\"] is tensordict.get(\"key 1\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "40aab986-6949-4b21-990c-1afa56eea914", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(torch.Size([2, 5]),\n", - " tensor([[[0.],\n", - " [0.],\n", - " [0.],\n", - " [0.],\n", - " [0.]],\n", - " \n", - " [[1.],\n", - " [1.],\n", - " [1.],\n", - " [1.],\n", - " [1.]]]))" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Stacking tensordicts\n", - "\n", - "tensordict1 = TensorDict(source={\n", - " \"key 1\": torch.zeros(batch_size, 1),\n", - " \"key 2\": torch.zeros(batch_size, 5, 6, dtype=torch.bool)\n", - "}, batch_size = [batch_size])\n", - "\n", - "tensordict2 = TensorDict(source={\n", - " \"key 1\": torch.ones(batch_size, 1),\n", - " \"key 2\": torch.ones(batch_size, 5, 6, dtype=torch.bool)\n", - "}, batch_size = [batch_size])\n", - "\n", - "tensordict = torch.stack([tensordict1, tensordict2], 0)\n", - "tensordict.batch_size, tensordict[\"key 1\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "117ad9cb-9eec-4e50-9f26-03fe1f58ebf2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "view(-1): torch.Size([10]) torch.Size([10, 1])\n", - "to device: LazyStackedTensorDict(\n", - " fields={\n", - " key 1: Tensor(torch.Size([2, 5, 1]), dtype=torch.float32),\n", - " key 2: Tensor(torch.Size([2, 5, 5, 6]), dtype=torch.bool)},\n", - " batch_size=torch.Size([2, 5]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "share memory: LazyStackedTensorDict(\n", - " fields={\n", - " key 1: Tensor(torch.Size([2, 5, 1]), dtype=torch.float32),\n", - " key 2: Tensor(torch.Size([2, 5, 5, 6]), dtype=torch.bool)},\n", - " batch_size=torch.Size([2, 5]),\n", - " device=cpu,\n", - " is_shared=True)\n", - "permute(1, 0): torch.Size([5, 2]) torch.Size([5, 2, 1])\n", - "expand: torch.Size([3, 2, 5]) torch.Size([3, 2, 5, 1])\n" - ] - } - ], - "source": [ - "# Other functionalities\n", - "print(\"view(-1): \", tensordict.view(-1).batch_size, tensordict.view(-1).get(\"key 1\").shape)\n", - "\n", - "print(\"to device: \", tensordict.to(\"cpu\"))\n", - "\n", - "# print(\"pin_memory: \", tensordict.pin_memory())\n", - "\n", - "print(\"share memory: \", tensordict.share_memory_())\n", - "\n", - "print(\"permute(1, 0): \", \n", - " tensordict.permute(1, 0).batch_size, \n", - " tensordict.permute(1, 0).get(\"key 1\").shape)\n", - "\n", - "print(\"expand: \", \n", - " tensordict.expand(3, *tensordict.batch_size).batch_size, \n", - " tensordict.expand(3, *tensordict.batch_size).get(\"key 1\").shape)" - ] - }, - { - "cell_type": "markdown", - "id": "4bb26d8d-399f-498f-af7a-cf16597636d1", - "metadata": {}, - "source": [ - "#### Nested tensordict" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "ac43369a-5bb7-45e8-afc0-8df76be1450e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " key 1: Tensor(torch.Size([5, 3]), dtype=torch.float32),\n", - " key 2: TensorDict(\n", - " fields={\n", - " sub-key 1: Tensor(torch.Size([5, 2, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([5, 2]),\n", - " device=cpu,\n", - " is_shared=False)},\n", - " batch_size=torch.Size([5]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict = TensorDict(source={\n", - " \"key 1\": torch.zeros(batch_size, 3),\n", - " \"key 2\": TensorDict(source={\n", - " \"sub-key 1\": torch.zeros(batch_size, 2, 1)\n", - " }, batch_size=[batch_size, 2])\n", - "}, batch_size = [batch_size])\n", - "tensordict" - ] - }, - { - "cell_type": "markdown", - "id": "e94f6a8d-2429-45c8-9d50-abebef682836", - "metadata": {}, - "source": [ - "### Replay buffers" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "f123c7f1-fa92-491d-97c8-c5d82f556003", - "metadata": {}, - "outputs": [], - "source": [ - "from torchrl.data import ReplayBuffer, PrioritizedReplayBuffer" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "ddbdd51d-a36f-4b07-b3c4-6699ca813835", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rb = ReplayBuffer(100, collate_fn=lambda x: x)\n", - "rb.add(1)\n", - "rb.sample(1)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "d5254dd2-a2be-42cb-8304-a14324a51a2c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[2, 1, 2]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rb.extend([2, 3])\n", - "rb.sample(3)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "e607eb52-b55e-4416-93fc-a4aa400c47cc", - "metadata": {}, - "outputs": [], - "source": [ - "rb = PrioritizedReplayBuffer(100, alpha=0.7, beta=1.1, collate_fn=lambda x: x)\n", - "rb.add(1)\n", - "rb.sample(1)\n", - "rb.update_priority(1, 0.5)" - ] - }, - { - "cell_type": "markdown", - "id": "50f43a07-d7bb-4bfc-8c11-c5eb4ae0caf7", - "metadata": {}, - "source": [ - "#### working with tensordicts" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "8ec9461d-afa4-4d35-ab04-6f66ac0e4036", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "collate_fn = torch.stack\n", - "rb = ReplayBuffer(100, collate_fn=collate_fn)\n", - "rb.add(TensorDict({\"a\": torch.randn(3)}, batch_size=[]))\n", - "len(rb)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "68d94666-3724-41a4-b888-e8d4bd75f853", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rb.extend(TensorDict({\"a\": torch.randn(2, 3)}, batch_size=[2]))\n", - "len(rb)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "6a808673-0682-48f0-bf27-749c2bff753c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([10, 3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([10]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rb.sample(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "e79c254c-44d4-451b-ac76-733b38dd095e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([2, 3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rb.sample(2).contiguous()" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "eb833a0f-01b9-4222-8239-cc8a7698b66d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([2, 3]), dtype=torch.float32),\n", - " index: Tensor(torch.Size([2, 1]), dtype=torch.int32)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "torch.manual_seed(0)\n", - "from torchrl.data import TensorDictPrioritizedReplayBuffer\n", - "rb = TensorDictPrioritizedReplayBuffer(100, alpha=0.7, beta=1.1, priority_key=\"td_error\")\n", - "rb.extend(TensorDict({\"a\": torch.randn(2, 3)}, batch_size=[2]))\n", - "tensordict_sample = rb.sample(2).contiguous()\n", - "tensordict_sample" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "1e029dc1-e5d0-4b7f-99fe-7f416725bdf2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tensor([[1],\n", - " [0]], dtype=torch.int32)" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict_sample[\"index\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "70017242-5396-4319-905b-40e483b0f96f", - "metadata": {}, - "outputs": [], - "source": [ - "tensordict_sample[\"td_error\"] = torch.rand(2)\n", - "rb.update_priority(tensordict_sample)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "6e64849c-f1c7-42d1-8d31-6fc7bece6e30", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 0.28791671991348267\n", - "1 0.06984968483448029\n", - "2 0.0\n" - ] - } - ], - "source": [ - "for i, val in enumerate(rb._sum_tree):\n", - " print(i, val)\n", - " if i == len(rb):\n", - " break" - ] - }, - { - "cell_type": "markdown", - "id": "c1a6d60d-3de1-43f9-a498-337abb98de1d", - "metadata": {}, - "source": [ - "## Envs" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "2bde26db-1880-4fcb-bd1d-f90420317b3d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "from torchrl.envs.libs.gym import GymWrapper, GymEnv\n", - "import gym\n", - "\n", - "gym_env = gym.make(\"Pendulum-v1\")\n", - "env = GymWrapper(gym_env)\n", - "env = GymEnv(\"Pendulum-v1\")" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "92441513-0e7e-424c-bd92-348febfb6875", - "metadata": {}, - "outputs": [], - "source": [ - "tensordict = env.reset()" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "ba2264a4-0cad-4f68-93bb-841365e468f1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "env.rand_step(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "1b01aebe-3517-41bf-9247-bc5f7bc44b7a", - "metadata": {}, - "source": [ - "### changing environments config" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "8296f4f9-9947-4053-a681-064eca21c2d9", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - }, - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([500, 500, 3]), dtype=torch.uint8),\n", - " state: Tensor(torch.Size([3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "env = GymEnv(\"Pendulum-v1\", frame_skip=3, from_pixels=True, pixels_only=False)\n", - "env.reset()" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "bb91ba2f-158e-4bcd-bc37-c8601da92384", - "metadata": {}, - "outputs": [], - "source": [ - "env.close()\n", - "del env" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "05d14d70-3307-40df-a190-3c48b767feca", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "from torchrl.envs import Compose, ObservationNorm, ToTensorImage, NoopResetEnv, TransformedEnv\n", - "base_env = GymEnv(\"Pendulum-v1\", frame_skip=3, from_pixels=True, pixels_only=False)\n", - "env = TransformedEnv(base_env, Compose(NoopResetEnv(3), ToTensorImage()))\n", - "env.append_transform(ObservationNorm(in_keys=[\"next_pixels\"], loc=2, scale=1))" - ] - }, - { - "cell_type": "markdown", - "id": "a9509c09-b6a9-426a-a799-9766a195156b", - "metadata": {}, - "source": [ - "### Transforms" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "fb96959d-c587-4f72-af17-86171d1ad952", - "metadata": {}, - "outputs": [], - "source": [ - "from torchrl.envs import Compose, ObservationNorm, ToTensorImage, NoopResetEnv, TransformedEnv\n", - "base_env = GymEnv(\"Pendulum-v1\", frame_skip=3, from_pixels=True, pixels_only=False)\n", - "env = TransformedEnv(base_env, Compose(NoopResetEnv(3), ToTensorImage()))\n", - "env.append_transform(ObservationNorm(in_keys=[\"next_pixels\"], loc=2, scale=1))" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "f50a7a63-d156-4eac-94db-69395f799865", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([3, 500, 500]), dtype=torch.float32),\n", - " state: Tensor(torch.Size([3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "env.reset()" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "883a438f-1f78-4759-a47d-77025cc24920", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "env: TransformedEnv(env=GymEnv(env=Pendulum-v1, batch_size=torch.Size([]), device=cpu), transform=Compose(\n", - " NoopResetEnv(noops=3, random=True),\n", - " ToTensorImage(keys=['next_pixels']),\n", - " ObservationNorm(loc=2.0000, scale=1.0000, keys=['next_pixels'])))\n", - "last transform parent: TransformedEnv(env=GymEnv(env=Pendulum-v1, batch_size=torch.Size([]), device=cpu), transform=Compose(\n", - " NoopResetEnv(noops=3, random=True),\n", - " ToTensorImage(keys=['next_pixels'])))\n" - ] - } - ], - "source": [ - "print(\"env: \", env)\n", - "print(\"last transform parent: \", env.transform[2].parent)" - ] - }, - { - "cell_type": "markdown", - "id": "20f3160c-34e9-40a8-8ace-141a050111a2", - "metadata": {}, - "source": [ - "### Vectorized environments" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "64137b0a-0267-4e6f-b08b-4b947ad98823", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - }, - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([4, 1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([4, 3, 500, 500]), dtype=torch.float32),\n", - " state: Tensor(torch.Size([4, 3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([4]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from torchrl.envs import ParallelEnv\n", - "base_env = ParallelEnv(4, lambda: GymEnv(\"Pendulum-v1\", frame_skip=3, from_pixels=True, pixels_only=False))\n", - "env = TransformedEnv(base_env, Compose(NoopResetEnv(3), ToTensorImage())) # applies transforms on batch of envs\n", - "env.append_transform(ObservationNorm(in_keys=[\"next_pixels\"], loc=2, scale=1))\n", - "env.reset()" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "93fc6dd6-1ed5-412f-8f4b-4099b30b969d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "NdBoundedTensorSpec(\n", - " shape=torch.Size([1]), space=ContinuousBox(minimum=tensor([-2.]), maximum=tensor([2.])), device=cpu, dtype=torch.float32, domain=continuous)" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "env.action_spec" - ] - }, - { - "cell_type": "markdown", - "id": "a4b72279-24e4-486a-beca-e7c130164ed6", - "metadata": {}, - "source": [ - "## Modules" - ] - }, - { - "cell_type": "markdown", - "id": "af6cb397-cbd6-4caf-bc1e-2f5388cd4c64", - "metadata": {}, - "source": [ - "### Models\n", - "#### MLP" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "cb115026-b9ca-49c0-afd4-99795563e86b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MLP(\n", - " (0): LazyLinear(in_features=0, out_features=32, bias=True)\n", - " (1): ELU(alpha=1.0)\n", - " (2): Linear(in_features=32, out_features=64, bias=True)\n", - " (3): ELU(alpha=1.0)\n", - " (4): Linear(in_features=64, out_features=4, bias=True)\n", - ")\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/vmoens/venv/rl/lib/python3.8/site-packages/torch/nn/modules/lazy.py:180: UserWarning: Lazy modules are a new feature under heavy development so changes to the API or functionality can happen at any moment.\n", - " warnings.warn('Lazy modules are a new feature under heavy development '\n" - ] - } - ], - "source": [ - "from torchrl.modules import MLP, ConvNet\n", - "from torchrl.modules.models.utils import SquashDims\n", - "from torch import nn\n", - "net = MLP(num_cells=[32, 64], out_features=4, activation_class=nn.ELU)\n", - "print(net)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "f6007bbe-df30-4762-97f5-26676647a40e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "torch.Size([10, 4])" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "net(torch.randn(10, 3)).shape" - ] - }, - { - "cell_type": "markdown", - "id": "9a444a92-7b7d-42fc-a3d3-2bad7bc32880", - "metadata": {}, - "source": [ - "#### CNN" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "9facfc1d-f207-43b2-8fd5-92fa6b32fb18", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ConvNet(\n", - " (0): LazyConv2d(0, 32, kernel_size=(8, 8), stride=(2, 2))\n", - " (1): ELU(alpha=1.0)\n", - " (2): Conv2d(32, 64, kernel_size=(4, 4), stride=(1, 1))\n", - " (3): ELU(alpha=1.0)\n", - " (4): SquashDims()\n", - ")\n" - ] - } - ], - "source": [ - "cnn = ConvNet(num_cells=[32, 64], kernel_sizes=[8, 4], strides=[2, 1], aggregator_class=SquashDims)\n", - "print(cnn)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "cd9d9eb1-ec44-4113-a3a1-5291f388e274", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "torch.Size([10, 6400])" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "cnn(torch.randn(10, 3, 32, 32)).shape # last tensor is squashed" - ] - }, - { - "cell_type": "markdown", - "id": "ab751e1c-3fbc-4209-9339-a0dea73664e5", - "metadata": {}, - "source": [ - "### TensorDictModules" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "0144b74a-2230-4d78-9b07-ad29a4f39402", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " key 1: Tensor(torch.Size([10, 3]), dtype=torch.float32),\n", - " key 2: Tensor(torch.Size([10, 4]), dtype=torch.float32)},\n", - " batch_size=torch.Size([10]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "from torchrl.modules import TensorDictModule\n", - "tensordict = TensorDict({\"key 1\": torch.randn(10, 3)}, batch_size=[10])\n", - "module = nn.Linear(3, 4)\n", - "td_module = TensorDictModule(module, in_keys=[\"key 1\"], out_keys=[\"key 2\"])\n", - "td_module(tensordict)\n", - "print(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "819ab5df-d29c-44f4-8cc8-c15a2d553285", - "metadata": {}, - "source": [ - "### Sequences of modules" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "e0e3e3ff-074a-4984-8e10-85fdd9d2328f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDictSequential(\n", - " module=ModuleList(\n", - " (0): TensorDictModule(\n", - " module=Linear(in_features=5, out_features=3, bias=True), \n", - " device=cpu, \n", - " in_keys=['observation'], \n", - " out_keys=['hidden'])\n", - " (1): TensorDictModule(\n", - " module=Linear(in_features=3, out_features=4, bias=True), \n", - " device=cpu, \n", - " in_keys=['hidden'], \n", - " out_keys=['action'])\n", - " (2): TensorDictModule(\n", - " module=MLP(\n", - " (0): LazyLinear(in_features=0, out_features=4, bias=True)\n", - " (1): Tanh()\n", - " (2): Linear(in_features=4, out_features=5, bias=True)\n", - " (3): Tanh()\n", - " (4): Linear(in_features=5, out_features=1, bias=True)\n", - " ), \n", - " device=cpu, \n", - " in_keys=['hidden', 'action'], \n", - " out_keys=['value'])\n", - " ), \n", - " device=cpu, \n", - " in_keys=['observation'], \n", - " out_keys=['hidden', 'action', 'value'])\n" - ] - } - ], - "source": [ - "from torchrl.modules import TensorDictSequential\n", - "backbone_module = nn.Linear(5, 3)\n", - "backbone = TensorDictModule(backbone_module, in_keys=[\"observation\"], out_keys=[\"hidden\"])\n", - "actor_module = nn.Linear(3, 4)\n", - "actor = TensorDictModule(actor_module, in_keys=[\"hidden\"], out_keys=[\"action\"])\n", - "value_module = MLP(out_features=1, num_cells=[4, 5])\n", - "value = TensorDictModule(value_module, in_keys=[\"hidden\", \"action\"], out_keys=[\"value\"])\n", - "\n", - "sequence = TensorDictSequential(backbone, actor, value)\n", - "print(sequence)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "6e7980e8-7286-403e-82f7-8386021a6c85", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['observation'] ['hidden', 'action', 'value']\n" - ] - } - ], - "source": [ - "print(sequence.in_keys, sequence.out_keys)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "b9be6bff-d543-45bc-975e-d820b9db6ce8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([3, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 5]), dtype=torch.float32),\n", - " value: Tensor(torch.Size([3, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict = TensorDict(\n", - " {\"observation\": torch.randn(3, 5)}, [3],\n", - ")\n", - "backbone(tensordict)\n", - "actor(tensordict)\n", - "value(tensordict)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "315d7d77-314e-4ffc-b9aa-e3651937dc98", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([3, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 5]), dtype=torch.float32),\n", - " value: Tensor(torch.Size([3, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "tensordict = TensorDict(\n", - " {\"observation\": torch.randn(3, 5)}, [3],\n", - ")\n", - "sequence(tensordict)\n", - "print(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "a62cd71d-a33c-41dd-aa75-eb4cefef8c50", - "metadata": {}, - "source": [ - "### Functional programming (ensembling / meta-RL)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "f3496472-b697-4c78-9b77-972b74573884", - "metadata": {}, - "outputs": [], - "source": [ - "fsequence, (params, buffers) = sequence.make_functional_with_buffers()" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "id": "1577590f-5156-439f-a2f1-f8cba1fa3e78", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(list(fsequence.parameters())) # functional modules have no parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "id": "971618a2-9c4c-4af6-b170-082cdea4a756", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([3, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 5]), dtype=torch.float32),\n", - " value: Tensor(torch.Size([3, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fsequence(tensordict, params=params, buffers=buffers)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "id": "ad98c6dc-918e-450a-9f3c-feb738e36d35", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([4, 3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([4, 3, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([4, 3, 5]), dtype=torch.float32),\n", - " value: Tensor(torch.Size([4, 3, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([4, 3]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "params_expand = [p.expand(4, *p.shape) for p in params]\n", - "buffers_expand = [b.expand(4, *b.shape) for b in buffers]\n", - "tensordict_exp = fsequence(tensordict, params=params_expand, buffers=buffers, vmap=(0, 0, None))\n", - "print(tensordict_exp)" - ] - }, - { - "cell_type": "markdown", - "id": "14084eb3-36e6-4729-8383-7ef4471fea5f", - "metadata": {}, - "source": [ - "### Specialized classes" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "id": "9c3f6d96-f213-4ef5-b700-133f40bf52f9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tensor([-0.0137, 0.1524, -0.0641], grad_fn=)" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "torch.manual_seed(0)\n", - "from torchrl.data import NdBoundedTensorSpec\n", - "spec = NdBoundedTensorSpec(-torch.ones(3), torch.ones(3))\n", - "base_module = nn.Linear(5, 3)\n", - "module = TensorDictModule(module=base_module, spec=spec, in_keys=[\"obs\"], out_keys=[\"action\"], safe=True)\n", - "tensordict = TensorDict({\"obs\": torch.randn(5)}, batch_size=[])\n", - "module(tensordict)[\"action\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "id": "441a1de4-e5e5-4ccf-a4a4-c7bb10e3ccc0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tensor([-1., 1., -1.], grad_fn=)" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict = TensorDict({\"obs\": torch.randn(5)*100}, batch_size=[])\n", - "module(tensordict)[\"action\"] # safe=True projects the result within the set" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "id": "9ca25cc1-56bc-4e77-9feb-9298435042b9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " obs: Tensor(torch.Size([5]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from torchrl.modules import Actor\n", - "base_module = nn.Linear(5, 3)\n", - "actor = Actor(base_module, in_keys=[\"obs\"])\n", - "tensordict = TensorDict({\"obs\": torch.randn(5)}, batch_size=[])\n", - "actor(tensordict) # action is the default value" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "id": "0ba0507a-ff43-42d5-bd4f-c25fd006c00f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 2]), dtype=torch.float32),\n", - " input: Tensor(torch.Size([3, 5]), dtype=torch.float32),\n", - " loc: Tensor(torch.Size([3, 2]), dtype=torch.float32),\n", - " scale: Tensor(torch.Size([3, 2]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "# Probabilistic modules\n", - "from torchrl.modules import ProbabilisticTensorDictModule\n", - "from torchrl.data import TensorDict\n", - "from torchrl.modules import TanhNormal, NormalParamWrapper\n", - "td = TensorDict({\"input\": torch.randn(3, 5)}, [3,])\n", - "net = NormalParamWrapper(nn.Linear(5, 4)) # splits the output in loc and scale\n", - "module = TensorDictModule(net, in_keys=[\"input\"], out_keys=[\"loc\", \"scale\"])\n", - "td_module = ProbabilisticTensorDictModule(\n", - " module=module,\n", - " dist_in_keys=[\"loc\", \"scale\"],\n", - " sample_out_key=[\"action\"],\n", - " distribution_class=TanhNormal,\n", - " return_log_prob=False,\n", - ")\n", - "td_module(td)\n", - "print(td)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "id": "a0a6dc50-a11c-408f-ae06-7c83795a8353", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 2]), dtype=torch.float32),\n", - " input: Tensor(torch.Size([3, 5]), dtype=torch.float32),\n", - " loc: Tensor(torch.Size([3, 2]), dtype=torch.float32),\n", - " sample_log_prob: Tensor(torch.Size([3, 1]), dtype=torch.float32),\n", - " scale: Tensor(torch.Size([3, 2]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "# returning the log-probability\n", - "td = TensorDict({\"input\": torch.randn(3, 5)}, [3,])\n", - "td_module = ProbabilisticTensorDictModule(\n", - " module=module,\n", - " dist_in_keys=[\"loc\", \"scale\"],\n", - " sample_out_key=[\"action\"],\n", - " distribution_class=TanhNormal,\n", - " return_log_prob=True,\n", - ")\n", - "td_module(td)\n", - "print(td)" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "id": "a84857c9-8a00-4526-92e4-8b6a05646bd5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "random: tensor([[ 0.8728, -0.1335],\n", - " [-0.9833, 0.3497],\n", - " [-0.6889, -0.6433]], grad_fn=)\n", - "mode: tensor([[-0.1131, 0.1761],\n", - " [-0.3425, -0.2665],\n", - " [ 0.2915, 0.6207]], grad_fn=)\n", - "mean: tensor([[-0.1131, 0.1441],\n", - " [-0.2375, -0.1242],\n", - " [ 0.1372, 0.3810]], grad_fn=)\n" - ] - } - ], - "source": [ - "# Sampling vs mode / mean\n", - "from torchrl.envs.utils import set_exploration_mode\n", - "td = TensorDict({\"input\": torch.randn(3, 5)}, [3,])\n", - "\n", - "torch.manual_seed(0)\n", - "with set_exploration_mode(\"random\"):\n", - " td_module(td)\n", - " print(\"random:\", td[\"action\"])\n", - " \n", - "with set_exploration_mode(\"mode\"):\n", - " td_module(td)\n", - " print(\"mode:\", td[\"action\"])\n", - "\n", - "with set_exploration_mode(\"mean\"):\n", - " td_module(td)\n", - " print(\"mean:\", td[\"action\"])\n", - "\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "141a232e-1472-4b7e-9d88-dfd0a19b8adf", - "metadata": {}, - "source": [ - "## Using environments and modules" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "id": "384a8372-3096-4897-b03d-af638b17e452", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "total steps: 99\n", - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([100, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([100, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([100, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([100, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([100, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([100]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "from torchrl.envs.utils import step_mdp\n", - "env = GymEnv(\"Pendulum-v1\")\n", - "\n", - "action_spec = env.action_spec\n", - "actor_module = nn.Linear(3, 1)\n", - "actor = TensorDictModule(actor_module, spec=action_spec, in_keys=[\"observation\"], out_keys=[\"action\"])\n", - "\n", - "torch.manual_seed(0)\n", - "env.set_seed(0)\n", - "\n", - "max_steps = 100\n", - "tensordict = env.reset()\n", - "tensordicts = TensorDict({}, [max_steps])\n", - "for i in range(max_steps):\n", - " actor(tensordict)\n", - " tensordicts[i] = env.step(tensordict)\n", - " tensordict = step_mdp(tensordict) # roughly equivalent to obs = next_obs\n", - " if env.is_done:\n", - " break\n", - "\n", - "tensordicts_prealloc = tensordicts.clone()\n", - "print(\"total steps:\", i)\n", - "print(tensordicts)" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "id": "71a2f7e7-815d-4e1c-bd8c-4b4942f3de7d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total steps: 99\n", - "LazyStackedTensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([100, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([100, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([100, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([100, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([100, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([100]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "# equivalent\n", - "torch.manual_seed(0)\n", - "env.set_seed(0)\n", - "\n", - "max_steps = 100\n", - "tensordict = env.reset()\n", - "tensordicts = []\n", - "for i in range(max_steps):\n", - " actor(tensordict)\n", - " tensordicts.append(env.step(tensordict))\n", - " tensordict = step_mdp(tensordict) # roughly equivalent to obs = next_obs\n", - " if env.is_done:\n", - " break\n", - "tensordicts_stack = torch.stack(tensordicts, 0)\n", - "print(\"total steps:\", i)\n", - "print(tensordicts_stack)" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "id": "5380a357-dcb9-43a8-8a2e-f4be939db91f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(tensordicts_stack == tensordicts_prealloc).all()" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "ac59466c-1e39-4ecd-a840-72d5ec204b2d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([100, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([100, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([100, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([100, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([100, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([100]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# helper\n", - "torch.manual_seed(0)\n", - "env.set_seed(0)\n", - "tensordict_rollout = env.rollout(policy=actor, max_steps=max_steps)\n", - "tensordict_rollout" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "7c7d8600-ecbb-4a55-b266-ed929f5d38c8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 58, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(tensordict_rollout == tensordicts_prealloc).all()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a9f8ef53-4c35-44fe-8763-792d9c237440", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "a0ae640d-777a-4aed-9c1d-0638d933afc9", - "metadata": {}, - "source": [ - "## Collectors" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "02cfd1d3-150b-4430-8392-f8a629beb42d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "from torchrl.envs import ParallelEnv, EnvCreator\n", - "from torchrl.envs.libs.gym import GymEnv\n", - "from torchrl.modules import TensorDictModule\n", - "from torchrl.collectors import MultiSyncDataCollector, MultiaSyncDataCollector\n", - "from torch import nn\n", - "\n", - "# EnvCreator makes sure that we can send a lambda function from process to process\n", - "parallel_env = ParallelEnv(3, EnvCreator(lambda: GymEnv(\"Pendulum-v1\")))\n", - "create_env_fn=[parallel_env, parallel_env]\n", - "\n", - "actor_module = nn.Linear(3, 1)\n", - "actor = TensorDictModule(actor_module, in_keys=[\"observation\"], out_keys=[\"action\"])\n", - "\n", - "# Sync data collector\n", - "devices = [\"cpu\", \"cpu\"]\n", - "\n", - "collector = MultiSyncDataCollector(\n", - " create_env_fn=create_env_fn, # either a list of functions or a ParallelEnv\n", - " policy=actor,\n", - " total_frames=240,\n", - " max_frames_per_traj=-1, # envs are terminating, we don't need to stop them early \n", - " frames_per_batch=60, # we want 60 frames at a time (we have 3 envs per sub-collector)\n", - " passing_devices=devices, # len must match len of env created\n", - " devices=devices,\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "id": "fe6091f2-2b33-4834-b437-fb8860b166f8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([6, 10, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([6, 10, 1]), dtype=torch.bool),\n", - " mask: Tensor(torch.Size([6, 10, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([6, 10, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([6, 10, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([6, 10, 1]), dtype=torch.float32),\n", - " step_count: Tensor(torch.Size([6, 10, 1]), dtype=torch.int32),\n", - " traj_ids: Tensor(torch.Size([6, 10, 1]), dtype=torch.int64)},\n", - " batch_size=torch.Size([6, 10]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "3\n" - ] - } - ], - "source": [ - "for i, d in enumerate(collector):\n", - " if i == 0:\n", - " print(d) # trajectories are split automatically in [6 workers x 10 steps]\n", - " collector.update_policy_weights_() # make sure that our policies have the latest weights if working on multiple devices\n", - "print(i)" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "id": "b6a2e699-0d13-406e-84a4-62caf236f4ec", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 20, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([3, 20, 1]), dtype=torch.bool),\n", - " mask: Tensor(torch.Size([3, 20, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([3, 20, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 20, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([3, 20, 1]), dtype=torch.float32),\n", - " step_count: Tensor(torch.Size([3, 20, 1]), dtype=torch.int32),\n", - " traj_ids: Tensor(torch.Size([3, 20, 1]), dtype=torch.int64)},\n", - " batch_size=torch.Size([3, 20]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "3\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "\n", - "# async data collector: keeps working while you update your model\n", - "collector = MultiaSyncDataCollector(\n", - " create_env_fn=create_env_fn, # either a list of functions or a ParallelEnv\n", - " policy=actor,\n", - " total_frames=240,\n", - " max_frames_per_traj=-1, # envs are terminating, we don't need to stop them early \n", - " frames_per_batch=60, # we want 60 frames at a time (we have 3 envs per sub-collector)\n", - " passing_devices=devices, # len must match len of env created\n", - " devices=devices,\n", - ")\n", - "\n", - "for i, d in enumerate(collector):\n", - " if i == 0:\n", - " print(d) # trajectories are split automatically in [6 workers x 10 steps]\n", - " collector.update_policy_weights_() # make sure that our policies have the latest weights if working on multiple devices\n", - "print(i)\n", - "del collector" - ] - }, - { - "cell_type": "markdown", - "id": "2cb3140a-d335-4a03-835a-0feba8b2581c", - "metadata": {}, - "source": [ - "## Objectives" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "id": "39794b46-f82d-4cd0-9121-d8fee34d352d", - "metadata": {}, - "outputs": [], - "source": [ - "# TorchRL delivers meta-RL compatible loss functions\n", - "# Disclaimer: This APi may change in the future\n", - "\n", - "from torchrl.objectives import DDPGLoss\n", - "from torchrl.data import TensorDict\n", - "from torchrl.modules import TensorDictModule\n", - "import torch\n", - "from torch import nn\n", - "\n", - "actor_module = nn.Linear(3, 1)\n", - "actor = TensorDictModule(actor_module, in_keys=[\"observation\"], out_keys=[\"action\"])\n", - "\n", - "class ConcatModule(nn.Linear):\n", - " def forward(self, obs, action):\n", - " return super().forward(torch.cat([obs, action], -1))\n", - "\n", - "value_module = ConcatModule(4, 1)\n", - "value = TensorDictModule(value_module, in_keys=[\"observation\", \"action\"], out_keys=[\"state_action_value\"])\n", - "\n", - "loss_fn = DDPGLoss(actor, value, gamma=0.99)" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "id": "78b5e1ea-eed0-48d7-b979-4e88efc4ff67", - "metadata": {}, - "outputs": [], - "source": [ - "tensordict = TensorDict({\n", - " \"observation\": torch.randn(10, 3), \n", - " \"next_observation\": torch.randn(10, 3),\n", - " \"reward\": torch.randn(10, 1),\n", - " \"action\": torch.randn(10, 1),\n", - " \"done\": torch.zeros(10, 1, dtype=torch.bool),\n", - "}, batch_size=[10])\n", - "loss_td = loss_fn(tensordict)" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "ca1ac32e-f948-432b-a40a-ff5927758377", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " loss_actor: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " loss_value: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " pred_value: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " pred_value_max: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " target_value: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " target_value_max: Tensor(torch.Size([1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loss_td" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "id": "eeacc666-42ca-4cee-9f23-c3082280dc47", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([10, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([10, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([10, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([10, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([10, 1]), dtype=torch.float32),\n", - " td_error: Tensor(torch.Size([10, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([10]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 65, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3342145c-5a99-42b5-9564-f80f9cd14d41", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "500c3fbc-c6e6-448f-ba1a-8cb7916a12a0", - "metadata": {}, - "source": [ - "## State of the library\n", - "\n", - "TorchRL is currently an **alpha-release**: there may be bugs and there is no guarantee about BC-breaking changes.\n", - "We should be able to move to a beta-release by the end of the year. Our roadmap to get there comprises:\n", - "- Distributed solutions\n", - "- Offline RL\n", - "- Greater support for meta-RL\n", - "- Multi-task and hierarchical RL\n", - "\n", - "## Contributing:\n", - "We are actively looking for contributors and early users. If you're working in RL (or just curious), try it! Give us feedback: what will make the success of TorchRL is how well it covers researchers needs. To do that, we need their input! Since the library is nascent, it is a great time for you to shape it the way you want!\n", - "\n", - "## Installing the library\n", - "The library is on PyPI: \n", - "```\n", - "pip install torchrl\n", - "```" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/envs.ipynb b/tutorials/envs.ipynb deleted file mode 100644 index 407babe270a..00000000000 --- a/tutorials/envs.ipynb +++ /dev/null @@ -1,1935 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e8966967-97bc-406e-a2f4-4a62d8f9e895", - "metadata": {}, - "source": [ - "[](https://colab.research.google.com/github/pytorch/rl/blob/main/tutorials/envs.ipynb)\n", - "\n", - "# TorchRL envs (`torchrl.envs`)\n", - "\n", - "Environments play a crucial role in RL settings, often somewhat similar to datasets in supervised and unsupervised settings.\n", - "The RL community has become quite familiar with OpenAI gym API which offers a flexible way of building environments, initializing them and interacting with them. \n", - "However, many other libraries exist, and the way one interacts with them can be quite different from what is expected with gym.\n", - "\n", - "Let us start by describing how TorchRL interacts with gym, which will serve as an introduction to other frameworks." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8b331338", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install functorch torchvision\n", - "!pip install \"gym[classic_control]\"\n", - "!pip install dm_control matplotlib\n", - "!pip install torchrl" - ] - }, - { - "cell_type": "markdown", - "id": "f461815d-dfd2-4d48-8d9b-21cc25f55464", - "metadata": {}, - "source": [ - "## Gym environments\n", - "\n", - "To run this part of the tutorial, you will need to have a recent version of the gym library installed, as well as the atari suite.\n", - "You can get this installed by installing the following packages:\n", - "\n", - "```\n", - "pip install gym atari-py ale-py gym[accept-rom-license] pygame\n", - "```\n", - "\n", - "To unify all frameworks, torchrl environments are built inside the `__init__` method with a private method called `_build_env` that will pass the arguments and keyword arguments to the root library builder.\n", - "\n", - "With gym, it means that building an environment is as easy as:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "09a90ffb-eba0-458e-912d-568ea006e15c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "from torchrl.envs.libs.gym import GymEnv\n", - "from matplotlib import pyplot as plt\n", - "from torchrl.data import TensorDict\n", - "import torch\n", - "env = GymEnv(\"Pendulum-v1\")" - ] - }, - { - "cell_type": "markdown", - "id": "b508f501-20a0-4e44-b928-17410cf27eb6", - "metadata": {}, - "source": [ - "The list of available environment can be accessed through this command:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "a2b3c152-be95-4140-ab2e-92c9df1c40bc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['ALE/Adventure-ram-v5',\n", - " 'ALE/Adventure-v5',\n", - " 'ALE/AirRaid-ram-v5',\n", - " 'ALE/AirRaid-v5',\n", - " 'ALE/Alien-ram-v5',\n", - " 'ALE/Alien-v5',\n", - " 'ALE/Amidar-ram-v5',\n", - " 'ALE/Amidar-v5',\n", - " 'ALE/Assault-ram-v5',\n", - " 'ALE/Assault-v5']" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "GymEnv.available_envs[:10]" - ] - }, - { - "cell_type": "markdown", - "id": "330e470a-ec2e-436c-b1f7-ff2e1f4704c8", - "metadata": {}, - "source": [ - "### Env specs\n", - "\n", - "Like other frameworks, TorchRL envs have attributes that indicate what space is for the observations, action and reward. \n", - "Because it often happens that more than one observation is retrieved, we expect the observation spec to be of type `CompositeSpec`. Reward and action do not have this restriction:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "36c1475f-c14a-4c76-ac0f-9fd9177ed5e1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Env observation_spec: \n", - " CompositeSpec(\n", - " next_observation: NdBoundedTensorSpec(\n", - " shape=torch.Size([3]), space=ContinuousBox(minimum=tensor([-1., -1., -8.]), maximum=tensor([1., 1., 8.])), device=cpu, dtype=torch.float32, domain=continuous))\n", - "Env action_spec: \n", - " NdBoundedTensorSpec(\n", - " shape=torch.Size([1]), space=ContinuousBox(minimum=tensor([-2.]), maximum=tensor([2.])), device=cpu, dtype=torch.float32, domain=continuous)\n", - "Env reward_spec: \n", - " UnboundedContinuousTensorSpec(\n", - " shape=torch.Size([1]), space=ContinuousBox(minimum=-inf, maximum=inf), device=cpu, dtype=torch.float32, domain=composite)\n" - ] - } - ], - "source": [ - "print(\"Env observation_spec: \\n\", env.observation_spec)\n", - "print(\"Env action_spec: \\n\", env.action_spec)\n", - "print(\"Env reward_spec: \\n\", env.reward_spec)" - ] - }, - { - "cell_type": "markdown", - "id": "ab3e1a6b-06a8-47e6-b43d-d9cb4b82150a", - "metadata": {}, - "source": [ - "Those spec come with a series of useful tools: one can assert whether a sample is in the defined space. We can also use some heuristic to project a sample in the space if it is out of space, and generate random (possibly uniformly distributed) numbers in that space:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "ad7d55fe-6dda-4757-ada8-5b8dddc41729", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "action is in bounds?\n", - " False\n", - "projected action: \n", - " tensor([2.])\n" - ] - } - ], - "source": [ - "action = torch.ones(1) * 3\n", - "print(\"action is in bounds?\\n\", bool(env.action_spec.is_in(action)))\n", - "print(\"projected action: \\n\", env.action_spec.project(action))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "fa103f09-c3a4-4c3e-b39c-6253599d0fec", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "random action: \n", - " tensor([-0.8754])\n" - ] - } - ], - "source": [ - "print(\"random action: \\n\", env.action_spec.rand())" - ] - }, - { - "cell_type": "markdown", - "id": "41045768-1c5b-46a9-9941-a5797bb3185f", - "metadata": {}, - "source": [ - "Envs are also packed with an `env.input_spec` attribute of type `CompositeSpec`. In brief, `input_spec` should contain all the specs of the inputs that are required for an env to exectute a step. For stateful envs (e.g. gym) this should include the action.\n", - "With stateless environments (e.g. Brax) this should also include a representation of the previous state. " - ] - }, - { - "cell_type": "markdown", - "id": "b4d99bce-99ef-44f5-8406-de7da52cb23f", - "metadata": {}, - "source": [ - "### Seeding, resetting and steps\n", - "\n", - "The basic operations on an environment are (1) `set_seed`, (2) `reset` and (3) `step`.\n", - "\n", - "Let's see how these methods work with TorchRL:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "0e8bff90-5046-4888-8750-cfc7f050167a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " observation: Tensor(torch.Size([3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "torch.manual_seed(0) # make sure that all torch code is also reproductible\n", - "env.set_seed(0)\n", - "tensordict = env.reset()\n", - "print(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "2936a240-8a03-4726-94fe-6151cc4f7f3e", - "metadata": {}, - "source": [ - "We can now execute a step in the environment. \n", - "Since we don't have a policy, we can just generate a random action:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "676c3ddc-3396-4e93-a474-2e0a403ec14d", - "metadata": {}, - "outputs": [], - "source": [ - "def policy(tensordict):\n", - " tensordict.set(\"action\", env.action_spec.rand())\n", - " return tensordict\n", - "policy(tensordict)\n", - "tensordict_out = env.step(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "c9a7364c-d8e9-44de-a9da-977e8d14c094", - "metadata": {}, - "source": [ - "By default, the tensordict returned by `step` is the same as the input..." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "903ad364-0843-4674-9625-11fdece3eb18", - "metadata": {}, - "outputs": [], - "source": [ - "assert tensordict_out is tensordict" - ] - }, - { - "cell_type": "markdown", - "id": "64aac817-a77d-4c8b-b6da-75a90f1ac1be", - "metadata": {}, - "source": [ - "... but with new keys" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "9cabe1d8-d904-4795-abc3-9b404ee9e9b4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict" - ] - }, - { - "cell_type": "markdown", - "id": "581b7ab6-f542-444f-970f-9755b18051cc", - "metadata": {}, - "source": [ - "What we just did (a random step using `action_spec.rand()`) can also be done via the simple shortcut" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "2c08ee82-8d0e-4735-ba80-5944f393340e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "env.rand_step()" - ] - }, - { - "cell_type": "markdown", - "id": "46b3e9c0-ad70-475b-90ae-11787b900ed3", - "metadata": {}, - "source": [ - "The new key `\"next_observation\"` (as all keys starting with `\"next_\"`) have a special role in TorchRL: they indicate that they come after the key with the same name but without the prefix.\n", - "\n", - "We provide a function `step_mdp` that executes a step in the tensordict: it returns a new tensordict updated such that $t <- t'$:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "ad697e31-ec9d-4607-942a-93f96b5f0e85", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " observation: Tensor(torch.Size([3]), dtype=torch.float32),\n", - " some other key: Tensor(torch.Size([1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "tensor(True)\n" - ] - } - ], - "source": [ - "from torchrl.envs.utils import step_mdp\n", - "tensordict.set(\"some other key\", torch.randn(1))\n", - "tensordict_tprime = step_mdp(tensordict)\n", - "print(tensordict_tprime)\n", - "print((tensordict_tprime.get(\"observation\") == tensordict.get(\"next_observation\")).all())" - ] - }, - { - "cell_type": "markdown", - "id": "21925dd8-6492-401c-a09b-60ad6a7774d8", - "metadata": {}, - "source": [ - "We can observe that `step_mdp` has removed all the time-dependent key-value pairs, but not `\"some other key\"`. Also, the new observation matches the previous one" - ] - }, - { - "cell_type": "markdown", - "id": "14d2951e-c263-4d06-903b-686191ecf97b", - "metadata": {}, - "source": [ - "Finally, note that the `env.reset` method also accepts a tensordict to update:" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "bc928092-ade0-46b3-836b-4f21caafc3a7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " observation: Tensor(torch.Size([3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict = TensorDict({}, [])\n", - "assert env.reset(tensordict) is tensordict\n", - "tensordict" - ] - }, - { - "cell_type": "markdown", - "id": "14ae176d-a7af-4c3d-82fa-bf69d375bae8", - "metadata": {}, - "source": [ - "### Rollouts\n", - "\n", - "The generic environment class provided by TorchRL allows you to run rollouts easily for a given number of steps:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "41d820f7-a063-4947-935d-6018f05c12ff", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([20, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([20, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([20, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([20, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([20, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([20]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "tensordict_rollout = env.rollout(max_steps=20, policy=policy)\n", - "print(tensordict_rollout)" - ] - }, - { - "cell_type": "markdown", - "id": "1e0bb1e5-8661-4187-b97b-69bf64389a71", - "metadata": {}, - "source": [ - "The resulting tensordict has a `batch_size` of `[20]`, which is the length of the trajectory. We can check that the observation match their next value:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "eb449dec-640b-43d8-8f46-70a2de3cf469", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tensor(True)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(tensordict_rollout.get(\"observation\")[1:] == tensordict_rollout.get(\"next_observation\")[:-1]).all()" - ] - }, - { - "cell_type": "markdown", - "id": "630dfdb7-d448-4c27-865f-4bb455d016b4", - "metadata": {}, - "source": [ - "### frame_skip\n", - "\n", - "In some instances, it is useful to use a `frame_skip` argument to use the same action for several consecutive frames.\n", - "\n", - "The resulting tensordict will contain only the last frame observed in the sequence, but the rewards will be summed over the number of frames. \n", - "\n", - "If the environment reaches a done state during this process, it'll stop and return the result of the truncated chain." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "6b2cb9da-d976-410e-92d3-19ad75bd228e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - }, - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " observation: Tensor(torch.Size([3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "env = GymEnv(\"Pendulum-v1\", frame_skip=4)\n", - "env.reset()" - ] - }, - { - "cell_type": "markdown", - "id": "be11c29c-1a68-4cd6-a8dd-4aebdf72785e", - "metadata": {}, - "source": [ - "### Rendering\n", - "\n", - "Rendering plays an important role in many RL settings, and this is why the generic environment class from torchrl provides a `from_pixels` keyword argument that allows the user to quickly ask for image-based environments:" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "19cf0c74-ab92-4a8a-9c0a-984282a295ea", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "env = GymEnv(\"Pendulum-v1\", from_pixels=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "8b914a63-1734-4fa8-96b6-c2a859f273d6", - "metadata": {}, - "outputs": [], - "source": [ - "tensordict = env.reset()\n", - "env.close()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "39500114-9f7b-4150-bc11-ecdb7d38c3ff", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.imshow(tensordict.get(\"pixels\").numpy())" - ] - }, - { - "cell_type": "markdown", - "id": "6f6d85ad-dcde-426f-b143-5e188c8c4afc", - "metadata": {}, - "source": [ - "Let's have a look at what the tensordict contains:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "899fa1c2-e59a-40c6-bb50-450545984e8b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([500, 500, 3]), dtype=torch.uint8)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict" - ] - }, - { - "cell_type": "markdown", - "id": "95654812-ccce-46be-bf96-17ff48abd65d", - "metadata": {}, - "source": [ - "We still have a `\"state\"` that describes what `\"observation\"` used to describe in the previous case (the naming difference comes from the fact that gym now returns a dictionary and TorchRL gets the names from the dictionary if it exists, otherwise it names the step output `\"observation\"`: in a few words, this is due to inconsistencies in the object type returned by gym environment step method).\n", - "\n", - "One can also discard this supplementary output by asking for the pixels only:" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "aee540c0-b51e-45df-be09-bf6a7549592a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "env = GymEnv(\"Pendulum-v1\", from_pixels=True, pixels_only=True)\n", - "env.reset()\n", - "env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "c9df9805-6e58-4c10-912d-a4bd228e9a11", - "metadata": {}, - "source": [ - "Some environments only come in image-based format" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "30fd300a-7b91-490c-a5d6-2d34ca4635f8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "from pixels: True\n", - "tensordict: TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([210, 160, 3]), dtype=torch.uint8)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "A.L.E: Arcade Learning Environment (version 0.8.0+919230b)\n", - "[Powered by Stella]\n" - ] - } - ], - "source": [ - "env = GymEnv(\"ALE/Pong-v5\")\n", - "print('from pixels: ', env.from_pixels)\n", - "print('tensordict: ', env.reset())\n", - "env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "f93140da-dc1c-4a09-94a9-626f5a1ff42d", - "metadata": {}, - "source": [ - "___\n", - "## DeepMind Control environments\n", - "\n", - "To run this part of the tutorial, make sure you have installed dm_control:\n", - "\n", - "```\n", - "pip install dm_control\n", - "```\n", - "\n", - "Make sure also to restart the notebook in between this demo and the previous, as gym and dm_control rendering can conflict.\n", - "\n", - "We also provide a wrapper for DM Control suite. Again, building an environment is easy: first let's look at what environments can be accessed. The `available_envs` now returns a dict of envs and possible tasks:" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "1060ddb7-3880-473e-ab81-30e02add0e4d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'acrobot': ['swingup', 'swingup_sparse'],\n", - " 'ball_in_cup': ['catch'],\n", - " 'cartpole': ['balance',\n", - " 'balance_sparse',\n", - " 'swingup',\n", - " 'swingup_sparse',\n", - " 'three_poles',\n", - " 'two_poles'],\n", - " 'cheetah': ['run'],\n", - " 'finger': ['spin', 'turn_easy', 'turn_hard'],\n", - " 'fish': ['upright', 'swim'],\n", - " 'hopper': ['stand', 'hop'],\n", - " 'humanoid': ['stand', 'walk', 'run', 'run_pure_state'],\n", - " 'manipulator': ['bring_ball', 'bring_peg', 'insert_ball', 'insert_peg'],\n", - " 'pendulum': ['swingup'],\n", - " 'point_mass': ['easy', 'hard'],\n", - " 'reacher': ['easy', 'hard'],\n", - " 'swimmer': ['swimmer6', 'swimmer15'],\n", - " 'walker': ['stand', 'walk', 'run'],\n", - " 'dog': ['fetch', 'run', 'stand', 'trot', 'walk'],\n", - " 'humanoid_CMU': ['run', 'stand'],\n", - " 'lqr': ['lqr_2_1', 'lqr_6_2'],\n", - " 'quadruped': ['escape', 'fetch', 'run', 'walk'],\n", - " 'stacker': ['stack_2', 'stack_4']}" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from torchrl.envs.libs.dm_control import DMControlEnv\n", - "from matplotlib import pyplot as plt\n", - "DMControlEnv.available_envs" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "bb712ed0-aad8-4718-9dda-6eac875c78a2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "result of reset: TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " orientations: Tensor(torch.Size([4]), dtype=torch.float64),\n", - " velocity: Tensor(torch.Size([2]), dtype=torch.float64)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "env = DMControlEnv('acrobot', 'swingup')\n", - "tensordict = env.reset()\n", - "print('result of reset: ', tensordict)\n", - "env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "f4f5f4d5-b3c0-401d-8934-0dc9ebd3d72a", - "metadata": {}, - "source": [ - "Of course we can also use pixel-based environments:" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "db64ab96-a5bc-4d77-990a-ab4b7357e291", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "result of reset: TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([240, 320, 3]), dtype=torch.uint8)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from torchrl.envs.libs.dm_control import DMControlEnv\n", - "env = DMControlEnv('acrobot', 'swingup', from_pixels=True, pixels_only=True)\n", - "tensordict = env.reset()\n", - "print('result of reset: ', tensordict)\n", - "plt.imshow(tensordict.get(\"pixels\").numpy())\n", - "env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "e0e93b95-fa48-48a3-9acc-9e8d8594103b", - "metadata": {}, - "source": [ - "___\n", - "## Transforming envs\n", - "\n", - "It is common to pre-process the output of an environment before having it read by the policy or stored in a buffer.\n", - "\n", - "In many instances, the RL community has adopted a wrapping scheme of the type\n", - "\n", - "```\n", - "env_transformed = wrapper1(wrapper2(env))\n", - "```\n", - "\n", - "to transform environments. This has numerous advantages: it makes accessing the environment specs obvious (the outer wrapper is the source of truth for the external world), and it makes it easy to interact with vectorized environment.\n", - "However it also makes it hard to access inner environments: say one wants to remove a wrapper (e.g. `wrapper2`) from the chain, this operation requires us to collect\n", - "```\n", - "env0 = env.env.env\n", - "env_transformed_bis = wrapper1(env0)\n", - "```\n", - "\n", - "TorchRL takes the stance of using sequences of transforms instead, as it is done in other pytorch domain libraries (e.g. `torchvision`). This approach is also similar to the way distributions are transformed in `torch.distribution`, where a `TransformedDistribution` object is built around a `base_dist` distribution and (a sequence of) `transforms`." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "cf9ae717-2f7a-4722-9ce1-01484d53b984", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "reset before transform: TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([240, 320, 3]), dtype=torch.uint8)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "reset after transform: TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([3, 240, 320]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "from torchrl.envs.libs.dm_control import DMControlEnv\n", - "import torch\n", - "from torchrl.envs.transforms import TransformedEnv, ToTensorImage\n", - "# ToTensorImage transforms a numpy-like image into a tensor one, \n", - "env = DMControlEnv('acrobot', 'swingup', from_pixels=True, pixels_only=True)\n", - "print('reset before transform: ', env.reset())\n", - "\n", - "env = TransformedEnv(env, ToTensorImage())\n", - "print('reset after transform: ', env.reset())\n", - "env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "f0fdb760-bd1b-4688-ba54-da156a63c36b", - "metadata": {}, - "source": [ - "To compose transforms, simply use the `Compose` class:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "f0a5081d-2afc-4f0a-ad8a-4df681cfc917", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([3, 32, 32]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from torchrl.envs.transforms import Compose, Resize\n", - "env = DMControlEnv('acrobot', 'swingup', from_pixels=True, pixels_only=True)\n", - "env = TransformedEnv(env, Compose(ToTensorImage(), Resize(32, 32)))\n", - "env.reset()" - ] - }, - { - "cell_type": "markdown", - "id": "566b0c94-6022-477a-9e2c-32f9009bcaaa", - "metadata": {}, - "source": [ - "Transforms can also be added one at a time:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "22da21c4-e9d6-44bc-996d-268bc37e4909", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([1, 32, 32]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from torchrl.envs.transforms import GrayScale\n", - "env.append_transform(GrayScale())\n", - "env.reset()" - ] - }, - { - "cell_type": "markdown", - "id": "ef5a2176-20d3-4270-b3ff-a1d8b5c75fcf", - "metadata": {}, - "source": [ - "As expected, the metadata get updated too:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "734c07ec-ff03-4df8-844e-acca466d19e6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "original obs spec: CompositeSpec(\n", - " next_pixels: NdUnboundedDiscreteTensorSpec(\n", - " shape=(240, 320, 3), space=ContinuousBox(minimum=tensor([[[0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " ...,\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0]],\n", - "\n", - " [[0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " ...,\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0]],\n", - "\n", - " [[0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " ...,\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0]],\n", - "\n", - " ...,\n", - "\n", - " [[0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " ...,\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0]],\n", - "\n", - " [[0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " ...,\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0]],\n", - "\n", - " [[0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " ...,\n", - " [0, 0, 0],\n", - " [0, 0, 0],\n", - " [0, 0, 0]]]), maximum=tensor([[[255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " ...,\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255]],\n", - "\n", - " [[255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " ...,\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255]],\n", - "\n", - " [[255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " ...,\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255]],\n", - "\n", - " ...,\n", - "\n", - " [[255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " ...,\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255]],\n", - "\n", - " [[255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " ...,\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255]],\n", - "\n", - " [[255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " ...,\n", - " [255, 255, 255],\n", - " [255, 255, 255],\n", - " [255, 255, 255]]])), device=cpu, dtype=torch.uint8, domain=continuous))\n" - ] - }, - { - "ename": "TypeError", - "evalue": "Input image tensor permitted channel values are [3], but found240", - "output_type": "error", - "traceback": [ - "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[0;31mTypeError\u001B[0m Traceback (most recent call last)", - "\u001B[0;32m/var/folders/zs/9lq15k8x61l1g0c_sf__63c80000gn/T/ipykernel_13887/2654911180.py\u001B[0m in \u001B[0;36m\u001B[0;34m\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[0mprint\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m'original obs spec: '\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0menv\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mbase_env\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mobservation_spec\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m----> 2\u001B[0;31m \u001B[0mprint\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m'current obs spec: '\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0menv\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mobservation_spec\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m", - "\u001B[0;32m~/Repos/RL/torch_rl/torchrl/envs/transforms/transforms.py\u001B[0m in \u001B[0;36mobservation_spec\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 338\u001B[0m \u001B[0;34m\"\"\"Observation spec of the transformed_in environment\"\"\"\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 339\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_observation_spec\u001B[0m \u001B[0;32mis\u001B[0m \u001B[0;32mNone\u001B[0m \u001B[0;32mor\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mcache_specs\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 340\u001B[0;31m observation_spec = self.transform.transform_observation_spec(\n\u001B[0m\u001B[1;32m 341\u001B[0m \u001B[0mdeepcopy\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mbase_env\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mobservation_spec\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 342\u001B[0m )\n", - "\u001B[0;32m~/Repos/RL/torch_rl/torchrl/envs/transforms/transforms.py\u001B[0m in \u001B[0;36mtransform_observation_spec\u001B[0;34m(self, observation_spec)\u001B[0m\n\u001B[1;32m 604\u001B[0m \u001B[0;32mdef\u001B[0m \u001B[0mtransform_observation_spec\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mobservation_spec\u001B[0m\u001B[0;34m:\u001B[0m \u001B[0mTensorSpec\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m->\u001B[0m \u001B[0mTensorSpec\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 605\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mt\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mtransforms\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 606\u001B[0;31m \u001B[0mobservation_spec\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mt\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mtransform_observation_spec\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mobservation_spec\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 607\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mobservation_spec\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 608\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Repos/RL/torch_rl/torchrl/envs/transforms/transforms.py\u001B[0m in \u001B[0;36mnew_fun\u001B[0;34m(self, observation_spec)\u001B[0m\n\u001B[1;32m 76\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mkey_in\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mkey_out\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mzip\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mkeys_in\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mkeys_out\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 77\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mkey_in\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mobservation_spec\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mkeys\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 78\u001B[0;31m \u001B[0md\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mkey_out\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mfunction\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mobservation_spec\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mkey_in\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 79\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mCompositeSpec\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m**\u001B[0m\u001B[0md\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 80\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Repos/RL/torch_rl/torchrl/envs/transforms/transforms.py\u001B[0m in \u001B[0;36mtransform_observation_spec\u001B[0;34m(self, observation_spec)\u001B[0m\n\u001B[1;32m 1204\u001B[0m \u001B[0mspace\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mobservation_spec\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mspace\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1205\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0misinstance\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mspace\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mContinuousBox\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1206\u001B[0;31m \u001B[0mspace\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mminimum\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_apply_transform\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mspace\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mminimum\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 1207\u001B[0m \u001B[0mspace\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmaximum\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_apply_transform\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mspace\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmaximum\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1208\u001B[0m \u001B[0mobservation_spec\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mshape\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mspace\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mminimum\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mshape\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Repos/RL/torch_rl/torchrl/envs/transforms/transforms.py\u001B[0m in \u001B[0;36m_apply_transform\u001B[0;34m(self, observation)\u001B[0m\n\u001B[1;32m 1197\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1198\u001B[0m \u001B[0;32mdef\u001B[0m \u001B[0m_apply_transform\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mobservation\u001B[0m\u001B[0;34m:\u001B[0m \u001B[0mtorch\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mTensor\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m->\u001B[0m \u001B[0mtorch\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mTensor\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1199\u001B[0;31m \u001B[0mobservation\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mF\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mrgb_to_grayscale\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mobservation\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 1200\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mobservation\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1201\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Repos/RL/torch_rl/torchrl/envs/transforms/functional.py\u001B[0m in \u001B[0;36mrgb_to_grayscale\u001B[0;34m(img, num_output_channels)\u001B[0m\n\u001B[1;32m 34\u001B[0m \u001B[0;34m\"{}\"\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mformat\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mimg\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mndim\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 35\u001B[0m )\n\u001B[0;32m---> 36\u001B[0;31m \u001B[0m_assert_channels\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mimg\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m[\u001B[0m\u001B[0;36m3\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 37\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 38\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mnum_output_channels\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0;32min\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0;36m1\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;36m3\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;32m~/Repos/RL/torch_rl/torchrl/envs/transforms/functional.py\u001B[0m in \u001B[0;36m_assert_channels\u001B[0;34m(img, permitted)\u001B[0m\n\u001B[1;32m 22\u001B[0m \u001B[0mc\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0m_get_image_num_channels\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mimg\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 23\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mc\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mpermitted\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 24\u001B[0;31m raise TypeError(\n\u001B[0m\u001B[1;32m 25\u001B[0m \u001B[0;34m\"Input image tensor permitted channel values are {}, but found\"\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 26\u001B[0m \u001B[0;34m\"{}\"\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mformat\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mpermitted\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mc\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", - "\u001B[0;31mTypeError\u001B[0m: Input image tensor permitted channel values are [3], but found240" - ] - } - ], - "source": [ - "print('original obs spec: ', env.base_env.observation_spec)\n", - "print('current obs spec: ', env.observation_spec)" - ] - }, - { - "cell_type": "markdown", - "id": "ff001409-5c34-46be-95e2-47b2f78114ac", - "metadata": {}, - "source": [ - "We can also concatenate tensors if needed:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "cd294681-b15c-4735-9215-ea754b395fb0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "keys before concat: TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " orientations: Tensor(torch.Size([4]), dtype=torch.float64),\n", - " velocity: Tensor(torch.Size([2]), dtype=torch.float64)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "keys after concat: TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " observation: Tensor(torch.Size([6]), dtype=torch.float64)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "from torchrl.envs.transforms import CatTensors\n", - "env = DMControlEnv('acrobot', 'swingup')\n", - "print(\"keys before concat: \", env.reset())\n", - "# make sure to work with \"next_key\" as this is what step will return\n", - "env = TransformedEnv(env, CatTensors(in_keys=[\"next_orientations\", \"next_velocity\"], out_key=\"next_observation\"))\n", - "print(\"keys after concat: \", env.reset())" - ] - }, - { - "cell_type": "markdown", - "id": "81b62090-d878-4cfb-8e83-dbefddaf3405", - "metadata": {}, - "source": [ - "This feature makes it easy to mofidy the sets of transforms applied to an environment input and output.\n", - "In fact, transforms are run both before and after a step is executed: for the pre-step pass, the `in_keys_inv` list of keys will be passed to the `_inv_apply_transform` method. An example of such a transform would be to transform floating-point actions (output from a neural network) to the double dtype (requires by the wrapped environment).\n", - "After the step is executed, the `_apply_transform` method will be executed on the keys indicated by the `in_keys` list of keys. " - ] - }, - { - "cell_type": "markdown", - "id": "34fb4aa3-6193-44a5-bd79-2ebf087155e8", - "metadata": {}, - "source": [ - "Another interesting feature of the environment transforms is that they allow the user to retrieve the equivalent of `env.env` in the wrapped case, or in other words the parent environment.\n", - "The parent environment can be retrieved by calling `transform.parent`: the returned environment will consist in a `TransformedEnvironment` with all the transforms up to (but not including) the current transform. \n", - "This is be used for instance in the `NoopResetEnv` case, which when reset executes the following steps: resets the parent environment before executing a certain number of steps at random in that environment." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "ede057e5-11da-41b7-9635-bcf90ff10711", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "env: \n", - " TransformedEnv(env=DMControlEnv(env=acrobot, task=swingup, batch_size=torch.Size([])), transform=Compose(\n", - " CatTensors(in_keys=['next_orientations', 'next_velocity'], out_key=next_observation),\n", - " GrayScale(keys=['next_pixels'])))\n", - "GrayScale transform parent env: \n", - " TransformedEnv(env=DMControlEnv(env=acrobot, task=swingup, batch_size=torch.Size([])), transform=Compose(\n", - " CatTensors(in_keys=['next_orientations', 'next_velocity'], out_key=next_observation)))\n", - "CatTensors transform parent env: \n", - " TransformedEnv(env=DMControlEnv(env=acrobot, task=swingup, batch_size=torch.Size([])), transform=Compose(\n", - "))\n" - ] - } - ], - "source": [ - "env = DMControlEnv('acrobot', 'swingup')\n", - "env = TransformedEnv(env)\n", - "env.append_transform(CatTensors(in_keys=[\"next_orientations\", \"next_velocity\"], out_key=\"next_observation\"))\n", - "env.append_transform(GrayScale())\n", - "print(\"env: \\n\", env)\n", - "print(\"GrayScale transform parent env: \\n\", env.transform[1].parent)\n", - "print(\"CatTensors transform parent env: \\n\", env.transform[0].parent)" - ] - }, - { - "cell_type": "markdown", - "id": "5bd8908e-a0b9-4844-8bc4-c95657acd07b", - "metadata": {}, - "source": [ - "___\n", - "## Environment device\n", - "Transforms can work on device, which can bring a significant speedup when operations are moderetely or highly computationally demanding. These include `ToTensorImage`, `Resize`, `GrayScale` etc. \n", - "\n", - "One could legitimately ask what that implies on the wrapped environment side. Very little for regular environments: the operations will still happen on the device where they're supposed to happen. The environment device attribute in torchrl indicates on which device is the incoming data supposed to be and on which device the output data will be. Casting from and to that device is the responsibility of the torchrl environment class. The big advantage of storing data on GPU is (1) speedup of transforms as mentioned above and (2) sharing data amongst workers in multiprocessing settings.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "a7538009-c098-47ee-8129-c7535aa9eb97", - "metadata": {}, - "outputs": [], - "source": [ - "import torch\n", - "from torchrl.envs.libs.dm_control import DMControlEnv\n", - "from torchrl.envs.transforms import CatTensors, GrayScale, TransformedEnv\n", - "env = DMControlEnv('acrobot', 'swingup')\n", - "env = TransformedEnv(env)\n", - "env.append_transform(CatTensors(in_keys=[\"next_orientations\", \"next_velocity\"], out_key=\"next_observation\"))\n", - "\n", - "if torch.has_cuda and torch.cuda.device_count():\n", - " env.to('cuda:0')\n", - " env.reset()" - ] - }, - { - "cell_type": "markdown", - "id": "288f91d7-6736-46db-8e06-4eca34711d0d", - "metadata": {}, - "source": [ - "___\n", - "## Running environments in parallel\n", - "\n", - "TorchRL provides utilities to run environment in parallel. It is expected that the various environment read and return tensors of similar shapes and dtypes (but one could design masking functions to make this possible in case those tensors differ in shapes). Creating such environments is quite easy. Let us look at the simplest case:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "ef7cbd08-e0c3-41af-b367-cf08cae9adc0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "from torchrl.envs import ParallelEnv, SerialEnv\n", - "from torchrl.envs.libs.gym import GymEnv\n", - "env_make = lambda: GymEnv(\"Pendulum-v1\")\n", - "parallel_env = ParallelEnv(3, env_make) # -> creates 3 envs in parallel\n", - "parallel_env = ParallelEnv(3, [env_make, env_make, env_make]) # similar to the previous command" - ] - }, - { - "cell_type": "markdown", - "id": "d6d4f2ae-35da-41c7-94e0-4e6fd7311918", - "metadata": {}, - "source": [ - "The `SerialEnv` class is similar to the `ParallelEnv` except for the fact that environments are run sequentially. This is mostly useful for debugging purposes.\n", - "\n", - "`ParallelEnv` instances are created in lazy mode: the environment will start running only when called. This allows us to move `ParallelEnv` objects from process to process without worring too much about running processes.\n", - "A `ParallelEnv` can be started by calling `start`, `reset` or simply by calling `step` (if `reset` does not need to be called first)." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "c3e4766f-9975-4cc0-96fc-fd4a7344337d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([3, 1]), dtype=torch.bool),\n", - " observation: Tensor(torch.Size([3, 3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "parallel_env.reset()" - ] - }, - { - "cell_type": "markdown", - "id": "a5ecee3d-5e87-4351-bd03-a979e6e8bc79", - "metadata": {}, - "source": [ - "One can check that the parallel environment has the right batch size. Conventionally, the first part of the `batch_size` indicates the batch, the second the time frame. Let's check that with the `rollout` method:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "a764b5c2-a17d-49ff-9cbb-b77903b89cad", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 20, 1]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([3, 20, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([3, 20, 3]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 20, 3]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([3, 20, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3, 20]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "parallel_env.rollout(max_steps=20)" - ] - }, - { - "cell_type": "markdown", - "id": "8a18c530-d8ac-4d00-bcd9-02e8350005f1", - "metadata": {}, - "source": [ - "### Closing parallel environments\n", - "\n", - "**Important**: before closing a program, it is important to close the parallel environment. In general, even with regular environments, it is good practice to close a function with a call to `close`. In some instances, TorchRL will throw an error if this is not done (and often it will be at the end of a program, when the environment gets out of scope!)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "cb805b61-b29c-485c-b224-94ad8bdba05f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "parallel_env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "0fcdb552-3c82-4be2-b5d2-20d87362669b", - "metadata": {}, - "source": [ - "### Seeding\n", - "When seeding a parallel environment, the difficulty we face is that we don't want to provide the same seed to all environments. The heuristic used by TorchRL is that we produce a deterministic chain of seeds given the input seed in a -- so to say -- Markovian way, such that it can be reconstructed from any of its elements. All `set_seed` methods will return the next seed to be used, such that one can easily keep the chain going given the last seed. This is useful when several collectors all contain a `ParallelEnv` instance and we want each of the sub-sub-environments to have a different seed." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "2c10bc47-c386-4c00-b07e-97ee1db28316", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3288080526\n" - ] - } - ], - "source": [ - "out_seed = parallel_env.set_seed(10)\n", - "print(out_seed)" - ] - }, - { - "cell_type": "markdown", - "id": "52c84cdb-f024-4c88-a462-7f50524d80ac", - "metadata": {}, - "source": [ - "### Accessing environment attributes\n", - "It sometimes occurs that a wrapped environment has an attribute that is of interest. \n", - "First, note that TorchRL environment wrapper constains the toolings to access this attribute. Here's an example:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "3f317630-6ee7-42b4-89ee-01f5bee14f5e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "from uuid import uuid1\n", - "from time import sleep\n", - "def env_make():\n", - " env = GymEnv(\"Pendulum-v1\")\n", - " env._env.foo = f\"bar_{uuid1()}\"\n", - " env._env.get_something = lambda r: r+1 \n", - " return env\n", - "env = env_make()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "16d5621a-14e3-427d-b3d5-1ffa497a117d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'bar_542ef942-3257-11ed-b93c-aa665a2328e0'" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# goes through env._env\n", - "env.foo" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "1ddbb4f0-7418-4b91-97dc-808c0cb268af", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Aargh what did I do!\n" - ] - } - ], - "source": [ - "parallel_env = ParallelEnv(3, env_make) # -> creates 3 envs in parallel\n", - "# env has not been started --> error:\n", - "try:\n", - " parallel_env.foo\n", - "except:\n", - " print(\"Aargh what did I do!\")\n", - " sleep(10) # make sure we don't get ahead of ourselves" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "702838c3-7aa1-4af3-974f-e312629940e6", - "metadata": {}, - "outputs": [], - "source": [ - "parallel_env.start()\n", - "foo_list = parallel_env.foo" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "965b8d5f-f549-4e38-80a9-fe82a571b209", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "foo_list # needs to be instantiated, for instance using list" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "15e0e5f5-d1f9-4f55-8437-8e393b4754f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['bar_5cdf70ee-3257-11ed-acfd-aa665a2328e0',\n", - " 'bar_5cdf70da-3257-11ed-8393-aa665a2328e0',\n", - " 'bar_5cdf7102-3257-11ed-8191-aa665a2328e0']" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "list(foo_list)" - ] - }, - { - "cell_type": "markdown", - "id": "da844a71-f313-4e42-b352-0ec54a1e3b58", - "metadata": {}, - "source": [ - "Similarly, methods can also be accessed:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "bce02ca2-b0fc-47fb-b57d-125410d8979e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 1, 1]" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "something = parallel_env.get_something(0)\n", - "something" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "cefbe2dc-9906-4afc-950a-3039f8eebdca", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "parallel_env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "521d423e-6468-4ea6-b1b6-ac4befca8d05", - "metadata": {}, - "source": [ - "### kwargs for parallel environments\n", - "\n", - "One may want to provide kwargs to the various environments. This can achieved either at construction time or afterwards:" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "3787fd8a-dfee-4006-8870-6be019d8dfc3", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "A.L.E: Arcade Learning Environment (version 0.8.0+919230b)\n", - "[Powered by Stella]\n", - "A.L.E: Arcade Learning Environment (version 0.8.0+919230b)\n", - "[Powered by Stella]A.L.E: Arcade Learning Environment (version 0.8.0+919230b)\n", - "[Powered by Stella]\n", - "\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from torchrl.envs import ParallelEnv, TransformedEnv, ToTensorImage, Resize, Compose\n", - "from torchrl.envs.libs.gym import GymEnv\n", - "from matplotlib import pyplot as plt\n", - "\n", - "def env_make(env_name):\n", - " env = TransformedEnv(GymEnv(env_name, from_pixels=True, pixels_only=True), Compose(ToTensorImage(), Resize(64, 64)))\n", - " return env\n", - "\n", - "parallel_env = ParallelEnv(2, [env_make, env_make], [{\"env_name\": \"ALE/AirRaid-v5\"}, {\"env_name\": \"ALE/Pong-v5\"}])\n", - "tensordict = parallel_env.reset()\n", - "\n", - "plt.figure(figsize=(5, 10))\n", - "plt.subplot(121)\n", - "plt.imshow(tensordict[0].get(\"pixels\").permute(1, 2, 0).numpy())\n", - "plt.subplot(122)\n", - "plt.imshow(tensordict[1].get(\"pixels\").permute(1, 2, 0).numpy())\n", - "parallel_env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "3b7d913e-4456-4ba5-84c1-eb78f0d58933", - "metadata": {}, - "source": [ - "## Transforming parallel environments\n", - "\n", - "There are two equivalent ways of transforming parallen environments: in each process separately, or on the main process. It is even possible to do both. One can therefore think carefully about the transform design to leverage the device capabilities (e.g. transforms on cuda devices) and vectorizing operations on the main process if possible." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "ccd43ff0-b866-4d21-8f7d-4f5e53a051ba", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "A.L.E: Arcade Learning Environment (version 0.8.0+919230b)\n", - "[Powered by Stella]\n", - "A.L.E: Arcade Learning Environment (version 0.8.0+919230b)\n", - "[Powered by Stella]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "grayscale tensordict: LazyStackedTensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([2, 1]), dtype=torch.bool),\n", - " pixels: Tensor(torch.Size([2, 1, 64, 64]), dtype=torch.float32)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from torchrl.envs import ParallelEnv, TransformedEnv, ToTensorImage, Resize, Compose, GrayScale\n", - "from torchrl.envs.libs.gym import GymEnv\n", - "from matplotlib import pyplot as plt\n", - "\n", - "def env_make(env_name):\n", - " env = TransformedEnv(GymEnv(env_name, from_pixels=True, pixels_only=True), Compose(ToTensorImage(), Resize(64, 64))) # transforms on remote processes\n", - " return env\n", - "\n", - "parallel_env = ParallelEnv(2, [env_make, env_make], [{\"env_name\": \"ALE/AirRaid-v5\"}, {\"env_name\": \"ALE/Pong-v5\"}])\n", - "parallel_env = TransformedEnv(parallel_env, GrayScale()) # transforms on main process\n", - "tensordict = parallel_env.reset()\n", - "print(\"grayscale tensordict: \", tensordict)\n", - "plt.figure(figsize=(5, 10))\n", - "plt.subplot(121)\n", - "plt.imshow(tensordict[0].get(\"pixels\").permute(1, 2, 0).numpy())\n", - "plt.subplot(122)\n", - "plt.imshow(tensordict[1].get(\"pixels\").permute(1, 2, 0).numpy())\n", - "parallel_env.close()" - ] - }, - { - "cell_type": "markdown", - "id": "d66e276d-bd61-431e-852e-55198595fe34", - "metadata": {}, - "source": [ - "## VecNorm\n", - "\n", - "In RL, we commonly face the problem of normalizing data before inputting them into a model. \n", - "Sometimes, we can get a good approximation of the normalizing statistics from data gathered in the environment with, say, a random policy (or demonstrations). It might, however, be advisable to normalize the data \"on-the-fly\", updating the normalizing constants progressively to what has been observed so far. This is particularily useful when we expect the normalizing statistics to change following changes in performance in the task, or when the environment is evolving due to external factors.\n", - "\n", - "**Caution**: this feature should be used with caution with off-policy learning, as old data will be \"deprecated\" due to its normalization with previously valid normalizing statistics. In on-policy settings too, this feature makes learning non-steady and may have unexpected effects. One would therefore advice users to rely on this feature with caution and compare it with data normalizing given a fixed version of the normalizing constants.\n", - "\n", - "In regular setting, using VecNorm is quite easy:" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "10d665f6-daf8-41bb-9767-5316387db737", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "mean: : tensor([-0.2824, -0.3740, -0.1690])\n", - "std: : tensor([0.9514, 1.0710, 1.1238])\n" - ] - } - ], - "source": [ - "from torchrl.envs.libs.gym import GymEnv\n", - "from torchrl.envs.transforms import VecNorm, TransformedEnv\n", - "\n", - "env = TransformedEnv(GymEnv(\"Pendulum-v1\"), VecNorm())\n", - "tensordict = env.rollout(max_steps=100)\n", - "\n", - "print(\"mean: :\", tensordict.get(\"observation\").mean(0)) # Approx 0\n", - "print(\"std: :\", tensordict.get(\"observation\").std(0)) # Approx 1" - ] - }, - { - "cell_type": "markdown", - "id": "34c31e5c-82fc-4795-bb74-917ea5babc7e", - "metadata": {}, - "source": [ - "In **parallel envs** things are slightly more complicated, as we need to share the running statistics amongst the processes. We created a class `EnvCreator` that is responsible for looking at an environment creation method, retrieving tensordicts to share amongst processes in the environment class, and pointing each process to the right common, shared tensordict once created:" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "55f3b06d-d4cf-4d5b-b0e5-eda4d46cfcd9", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "tensordict: TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 5, 2]), dtype=torch.int64),\n", - " done: Tensor(torch.Size([3, 5, 1]), dtype=torch.bool),\n", - " next_observation: Tensor(torch.Size([3, 5, 4]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 5, 4]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([3, 5, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3, 5]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "mean: : tensor([ 0.1187, -0.0427, -0.1390])\n", - "std: : tensor([1.1470, 1.1814, 1.1676])\n", - "update counts: tensor([18.])\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n", - "Discarding frameskip arg. This will be taken care of by TorchRL env wrapper.\n" - ] - } - ], - "source": [ - "from torchrl.envs import EnvCreator, ParallelEnv\n", - "from torchrl.envs.libs.gym import GymEnv\n", - "from torchrl.envs.transforms import VecNorm, TransformedEnv\n", - "\n", - "make_env = EnvCreator(lambda: TransformedEnv(GymEnv(\"CartPole-v1\"), VecNorm(decay=1.0)))\n", - "env = ParallelEnv(3, make_env)\n", - "make_env.state_dict()['_extra_state']['td'][\"next_observation_count\"].fill_(0.0)\n", - "make_env.state_dict()['_extra_state']['td'][\"next_observation_ssq\"].fill_(0.0)\n", - "make_env.state_dict()['_extra_state']['td'][\"next_observation_sum\"].fill_(0.0)\n", - "\n", - "tensordict = env.rollout(max_steps=5)\n", - "\n", - "print('tensordict: ', tensordict)\n", - "print(\"mean: :\", tensordict.get(\"observation\").view(-1, 3).mean(0)) # Approx 0\n", - "print(\"std: :\", tensordict.get(\"observation\").view(-1, 3).std(0)) # Approx 1\n", - "\n", - "# The count is slightly higher than the number of steps (since we did not use any decay)\n", - "# The difference between the two is due to the fact that ParallelEnv creates a dummy environment to initialize the shared TensorDict \n", - "# that is used to collect data from the dispached environments. This small difference will usually be absored throughout training.\n", - "print(\"update counts: \", make_env.state_dict()['_extra_state']['td'][\"next_observation_count\"])\n", - "env.close()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "98279e92", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.3" - }, - "vscode": { - "interpreter": { - "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" - } - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/multi_task.ipynb b/tutorials/multi_task.ipynb deleted file mode 100644 index dae447fb24f..00000000000 --- a/tutorials/multi_task.ipynb +++ /dev/null @@ -1,560 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "0e971c71-dc14-46db-a3a0-a71423ebece0", - "metadata": {}, - "source": [ - "[](https://colab.research.google.com/github/pytorch/rl/blob/main/tutorials/multi_task.ipynb)\n", - "\n", - "# Task-specific policy in multi-task environments\n", - "\n", - "This tutorial details how multi-task policies and batched environments can be used.\n", - "\n", - "At the end of this tutorial, you will be capable of writing policies that can compute actions in diverse settings using a distinct set of weights.\n", - "You will also be able to execute diverse environments in parallel." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3f081673", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install functorch\n", - "!pip install dm_control\n", - "!pip install torchrl" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "b2c1c6c2-0ce0-42de-805a-b37fbccaa9dd", - "metadata": {}, - "outputs": [], - "source": [ - "from torchrl.envs import TransformedEnv, CatTensors, Compose, DoubleToFloat, ParallelEnv\n", - "from torchrl.envs.libs.dm_control import DMControlEnv\n", - "from torchrl.modules import TensorDictModule, TensorDictSequential, MLP\n", - "from torch import nn\n", - "import torch" - ] - }, - { - "cell_type": "markdown", - "id": "1619f578-870c-40e7-9d3e-5f8eee9460a0", - "metadata": {}, - "source": [ - "We design two environments, one humanoid that must complete the stand task and another that must learn to walk." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "2d9cb67c-8c01-4d13-9590-cb9947c89221", - "metadata": {}, - "outputs": [], - "source": [ - "env1 = DMControlEnv(\"humanoid\", \"stand\")\n", - "env1_obs_keys = list(env1.observation_spec.keys())\n", - "env1 = TransformedEnv(\n", - " env1, \n", - " Compose(\n", - " CatTensors(env1_obs_keys, \"next_observation_stand\", del_keys=False),\n", - " CatTensors(env1_obs_keys, \"next_observation\"),\n", - " DoubleToFloat(in_keys=[\"next_observation_stand\", \"next_observation\"], in_keys_inv=[\"action\"]),\n", - " )\n", - ")\n", - "env2 = DMControlEnv(\"humanoid\", \"walk\")\n", - "env2_obs_keys = list(env2.observation_spec.keys())\n", - "env2 = TransformedEnv(\n", - " env2, \n", - " Compose(\n", - " CatTensors(env2_obs_keys, \"next_observation_walk\", del_keys=False),\n", - " CatTensors(env2_obs_keys, \"next_observation\"),\n", - " DoubleToFloat(in_keys=[\"next_observation_walk\", \"next_observation\"], in_keys_inv=[\"action\"]),\n", - " )\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "a1327fde-306b-4cd0-9954-caf88bfa2e82", - "metadata": {}, - "outputs": [], - "source": [ - "tdreset1 = env1.reset()\n", - "tdreset2 = env2.reset()\n", - "\n", - "# In TorchRL, stacking is done in a lazy manner: the original tensordicts can still be recovered by indexing the main tensordict\n", - "tdreset = torch.stack([tdreset1, tdreset2], 0)\n", - "assert tdreset[0] is tdreset1" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "f9551947-7b2a-4fb7-8fd5-814fefa6c081", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_stand: Tensor(torch.Size([67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "print(tdreset[0])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f47eb28e-851a-4a33-82cc-d222197df4f4", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "id": "7b0ffc6d-3cdb-4761-a527-d0974399895d", - "metadata": {}, - "source": [ - "## Policy\n", - "We will design a policy where a backbone reads the \"observation\" key. Then specific sub-components will ready the \"observation_stand\" and \"observation_walk\" keys of the stacked tensordicts, if they are present, and pass them through the dedicated sub-network." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "5ea2c09a-3420-4323-9d60-50ed05fe778e", - "metadata": {}, - "outputs": [], - "source": [ - "action_dim = env1.action_spec.shape[-1]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "09a55836-a473-45ed-86c7-feae2d95771a", - "metadata": {}, - "outputs": [], - "source": [ - "policy_common = TensorDictModule(nn.Linear(67, 64), in_keys=[\"observation\"], out_keys=[\"hidden\"])\n", - "policy_stand = TensorDictModule(MLP(67 + 64, action_dim, depth=2), in_keys=[\"observation_stand\", \"hidden\"], out_keys=[\"action\"])\n", - "policy_walk = TensorDictModule(MLP(67 + 64, action_dim, depth=2), in_keys=[\"observation_walk\", \"hidden\"], out_keys=[\"action\"])\n", - "seq = TensorDictSequential(policy_common, policy_stand, policy_walk, partial_tolerant=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "a2650046-86bb-4dda-a041-7de52ac133a4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([64]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_stand: Tensor(torch.Size([67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# let's check that our sequence outputs actions for a single env (stand)\n", - "seq(env1.reset())" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "87006ff8-69b5-43db-938f-dd54a08ca027", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([64]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_walk: Tensor(torch.Size([67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# let's check that our sequence outputs actions for a single env (walk)\n", - "seq(env2.reset())" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "563281b8-8aa8-429c-b3d3-10183bbb4c6c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([2, 21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([2, 1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([2, 64]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([2, 67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# also works with the stack: now the stand and walk keys have disappeared (because they're not shared by all tensordicts). But the TensorDictSequential still performed the operations.\n", - "# Note that the backbone was executed in a vectorized way (not in a loop) which is more efficient.\n", - "seq(tdreset)" - ] - }, - { - "cell_type": "markdown", - "id": "97faa452-b867-410a-9186-084ed5b86316", - "metadata": {}, - "source": [ - "## Executing diverse tasks in parallel\n", - "\n", - "We can parallelize the operations if the common keys-value pairs share the same specs (in particular their shape and dtype must match: you can't do the following if the observation shapes are different but are pointed to by the same key).\n", - "\n", - "If ParallelEnv receives a single env making function, it will assume that a single task has to be performed. If a list of functions is provided, then it will assume that we are in a multi-task setting." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "d642ecb3-69a5-4bbc-a3d7-33456cc96a7a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([2, 1]), dtype=torch.bool),\n", - " observation: Tensor(torch.Size([2, 67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " next_observation_stand: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_stand: Tensor(torch.Size([67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict(\n", - " fields={\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " next_observation_walk: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_walk: Tensor(torch.Size([67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "\n", - "\n", - "env1_maker = lambda: TransformedEnv(\n", - " DMControlEnv(\"humanoid\", \"stand\"), \n", - " Compose(\n", - " CatTensors(env1_obs_keys, \"next_observation_stand\", del_keys=False),\n", - " CatTensors(env1_obs_keys, \"next_observation\"),\n", - " DoubleToFloat(in_keys=[\"next_observation_stand\", \"next_observation\"], in_keys_inv=[\"action\"]),\n", - " )\n", - ")\n", - "env2_maker = lambda: TransformedEnv(\n", - " DMControlEnv(\"humanoid\", \"walk\"), \n", - " Compose(\n", - " CatTensors(env2_obs_keys, \"next_observation_walk\", del_keys=False),\n", - " CatTensors(env2_obs_keys, \"next_observation\"),\n", - " DoubleToFloat(in_keys=[\"next_observation_walk\", \"next_observation\"], in_keys_inv=[\"action\"]),\n", - " )\n", - ")\n", - "env = ParallelEnv(2, [env1_maker, env2_maker])\n", - "assert not env._single_task\n", - "\n", - "tdreset = env.reset()\n", - "print(tdreset)\n", - "print(tdreset[0])\n", - "print(tdreset[1]) # should be different\n" - ] - }, - { - "cell_type": "markdown", - "id": "3f95b625-d571-473a-ae1e-5e7cb4cbcd3b", - "metadata": {}, - "source": [ - "Let's pass the output through our network" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "31758554-623f-4df0-99e3-ee78411ee92f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([2, 21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([2, 1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([2, 64]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([2, 67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([64]), dtype=torch.float32),\n", - " next_observation_stand: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_stand: Tensor(torch.Size([67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([64]), dtype=torch.float32),\n", - " next_observation_walk: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_walk: Tensor(torch.Size([67]), dtype=torch.float32)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "tdreset = seq(tdreset)\n", - "print(tdreset)\n", - "print(tdreset[0])\n", - "print(tdreset[1]) # should be different but all have an \"action\" key\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "054f3be1-7474-43f1-9460-665e72cff965", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([2, 21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([2, 1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([2, 64]), dtype=torch.float32),\n", - " next_observation: Tensor(torch.Size([2, 67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([2, 67]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([2, 1]), dtype=torch.float64)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([64]), dtype=torch.float32),\n", - " next_observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " next_observation_stand: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_stand: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([1]), dtype=torch.float64)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([64]), dtype=torch.float32),\n", - " next_observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " next_observation_walk: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " observation_walk: Tensor(torch.Size([67]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([1]), dtype=torch.float64)},\n", - " batch_size=torch.Size([]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "env.step(tdreset) # computes actions and execute steps in parallel\n", - "print(tdreset)\n", - "print(tdreset[0])\n", - "print(tdreset[1]) # next_observation has now been written" - ] - }, - { - "cell_type": "markdown", - "id": "1295b976-369b-433b-9e5b-fb66d6d9e884", - "metadata": {}, - "source": [ - "## Rollout" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "d036a3f4-3bc7-4aa2-918f-636c302d1147", - "metadata": {}, - "outputs": [], - "source": [ - "td_rollout = env.rollout(100, policy=seq, return_contiguous=False)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "a940db50-689a-4112-9916-b3438fff50c4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([2, 21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([2, 1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([2, 64]), dtype=torch.float32),\n", - " next_observation: Tensor(torch.Size([2, 67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([2, 67]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([2, 1]), dtype=torch.float64)},\n", - " batch_size=torch.Size([2]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "td_rollout[:, 0] # tensordict of the first step: only the common keys are shown" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "466a7cf6-e20f-430a-84cc-03686e4bb6e8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([100, 21]), dtype=torch.float32),\n", - " done: Tensor(torch.Size([100, 1]), dtype=torch.bool),\n", - " hidden: Tensor(torch.Size([100, 64]), dtype=torch.float32),\n", - " next_observation: Tensor(torch.Size([100, 67]), dtype=torch.float32),\n", - " next_observation_stand: Tensor(torch.Size([100, 67]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([100, 67]), dtype=torch.float32),\n", - " observation_stand: Tensor(torch.Size([100, 67]), dtype=torch.float32),\n", - " reward: Tensor(torch.Size([100, 1]), dtype=torch.float64)},\n", - " batch_size=torch.Size([100]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "td_rollout[0] # tensordict of the first env: the stand obs is present" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d677f2a5-f9f7-4764-b596-ef0087ffb4a0", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/tensordict.ipynb b/tutorials/tensordict.ipynb deleted file mode 100644 index af639669850..00000000000 --- a/tutorials/tensordict.ipynb +++ /dev/null @@ -1,1345 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "cb434aa2", - "metadata": {}, - "source": [ - "[](https://colab.research.google.com/github/pytorch/rl/blob/main/tutorials/tensordict.ipynb)\n", - "\n", - "# TensorDict tutorial" - ] - }, - { - "cell_type": "markdown", - "id": "a7c9af6f", - "metadata": {}, - "source": [ - "`TensorDict` is a new tensor structure introduced in TorchRL. \n", - "\n", - "With RL, you need to be able to deal with multiple tensors such as actions, observations and reward. `TensorDict` makes it more convenient to deal with multiple tensors at the same time for operations such as casting to device, reshaping, stacking etc.\n", - "\n", - "Furthermore, different RL algorithms can deal with different input and outputs. The `TensorDict` class makes it possible to abstract away the differences between these algorithms. \n", - "\n", - "TensorDict combines the convenience of using `dict`s to organize your data with the power of pytorch tensors.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "583b5222", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install functorch\n", - "!pip install torchrl" - ] - }, - { - "cell_type": "markdown", - "id": "499a68c0", - "metadata": {}, - "source": [ - "## Improving the modularity of codes" - ] - }, - { - "cell_type": "markdown", - "id": "176ca112", - "metadata": {}, - "source": [ - "Let's suppose we have 2 datasets: Dataset A which has images and labels and Dataset B which has images, segmentation maps and labels. \n", - "\n", - "Suppose we want to train a common algorithm over these two datasets (i.e. an algorithm that would ignore the mask or infer it when needed). \n", - "\n", - "In classical pytorch we would need to do the following:\n", - "```python\n", - "#Method A\n", - "for i in range(optim_steps):\n", - " images, labels = get_data_A()\n", - " loss = loss_module(images, labels)\n", - " loss.backward()\n", - " optim.step()\n", - " optim.zero_grad()\n", - "````\n", - "\n", - "```python\n", - "#Method B\n", - "for i in range(optim_steps):\n", - " images, masks, labels = get_data_B()\n", - " loss = loss_module(images, labels)\n", - " loss.backward()\n", - " optim.step()\n", - " optim.zero_grad()\n", - "```\n", - "\n", - "We can see that this limits the reusability of code. A lot of code has to be rewriten because of the modality difference between the 2 datasets.\n", - "The idea of TensorDict is to do the following:\n", - "\n", - "```python\n", - "# General Method\n", - "for i in range(optim_steps):\n", - " tensordict = get_data()\n", - " loss = loss_module(tensordict)\n", - " loss.backward()\n", - " optim.step()\n", - " optim.zero_grad()\n", - "```\n", - "\n", - "We can now reuse the same training loop across datasets and losses." - ] - }, - { - "cell_type": "markdown", - "id": "0c9f630f", - "metadata": {}, - "source": [ - "#### Can't I do this with a python dict?" - ] - }, - { - "cell_type": "markdown", - "id": "6bc5f579", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "One could argue that you could achieve the same results with a dataset that outputs a pytorch dict. \n", - "```python\n", - "class DictDataset(Dataset):\n", - " ...\n", - " \n", - " def __getitem__(self, idx)\n", - " \n", - " ...\n", - " \n", - " return {\"images\": image, \"masks\": mask}\n", - " \n", - "```\n", - "\n", - "However to achieve this you would need to write a complicated collate function that make sure that every modality is agregated properly.\n", - "\n", - "```python\n", - "\n", - "def collate_dict_fn(dict_list):\n", - " final_dict = {}\n", - " for key in dict_list[0].keys():\n", - " final_dict[key]= []\n", - " for single_dict in dict_list:\n", - " final_dict[key].append(single_dict[key])\n", - " final_dict[key] = torch.stack(final_dict[key], dim=0)\n", - " return final_dict\n", - "\n", - "\n", - "dataloader = Dataloader(DictDataset(), collate_fn = collate_dict_fn)\n", - "\n", - "````\n", - "With TensorDicts this is now much simpler:\n", - "\n", - "```python\n", - "class DictDataset(Dataset):\n", - " ...\n", - " \n", - " def __getitem__(self, idx)\n", - " \n", - " ...\n", - " \n", - " return TensorDict({\"images\": image, \"masks\": mask})\n", - "```\n", - "\n", - "\n", - "Here, the collate function is as simple as:\n", - "```python\n", - "collate_tensordict_fn = lambda tds : torch.stack(tds, dim=0)\n", - "\n", - "dataloader = Dataloader(DictDataset(), collate_fn = collate_tensordict_fn)\n", - "```\n", - "This is even more useful when considering nested structures (Which `TensorDict` supports).\n", - "\n", - "TensorDict inherits multiple properties from `torch.Tensor` and `dict` that we will detail furtherdown." - ] - }, - { - "cell_type": "markdown", - "id": "a951e2e1", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## `TensorDict` structure" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "3f94ba8f", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "from torchrl.data import TensorDict\n", - "from torchrl.data.tensordict.tensordict import UnsqueezedTensorDict, ViewedTensorDict, PermutedTensorDict, LazyStackedTensorDict\n", - "import torch" - ] - }, - { - "cell_type": "markdown", - "id": "ffc6d6f0", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "TensorDict is a Datastructure indexed by either keys or numerical indices. The values can either be tensors, memory-mapped tensors or `TensorDict`. The values need to share the same memory location (device or shared memory). They can however have different dtypes.\n", - "\n", - "Another essential property of TensorDict is the `batch_size` (or `shape`) which is defined as the n-first dimensions of the tensors. It must be common across values, and it must be set explicitly when instantiating a `TensorDict`." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "2ac1afa2", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "caramba!\n" - ] - } - ], - "source": [ - "a = torch.zeros(3, 4)\n", - "b = torch.zeros(3, 4, 5)\n", - "\n", - "# works\n", - "tensordict = TensorDict({\"a\": a, \"b\": b}, batch_size=[3, 4])\n", - "tensordict = TensorDict({\"a\": a, \"b\": b}, batch_size=[3])\n", - "tensordict = TensorDict({\"a\": a, \"b\": b}, batch_size=[])\n", - "\n", - "# does not work\n", - "try:\n", - " tensordict = TensorDict({\"a\": a, \"b\": b}, batch_size=[3, 4, 5])\n", - "except:\n", - " print(\"caramba!\")" - ] - }, - { - "cell_type": "markdown", - "id": "44bc7e09", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "Nested `TensorDict`have therefore the following property: the parent `TensorDict` needs to have a batch_size included in the childs `TensorDict` batch size." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "f1128846", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([3, 4, 1]), dtype=torch.float32),\n", - " b: TensorDict(\n", - " fields={\n", - " c: Tensor(torch.Size([3, 4, 5, 1]), dtype=torch.int32),\n", - " d: Tensor(torch.Size([3, 4, 5, 6]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3, 4, 5]),\n", - " device=cpu,\n", - " is_shared=False)},\n", - " batch_size=torch.Size([3, 4]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "a = torch.zeros(3, 4)\n", - "b = TensorDict(\n", - " {\n", - " \"c\": torch.zeros(3, 4, 5, dtype=torch.int32),\n", - " \"d\": torch.zeros(3, 4, 5, 6, dtype=torch.float32)\n", - " },\n", - " batch_size=[3, 4, 5]\n", - ")\n", - "tensordict = TensorDict({\"a\": a, \"b\": b}, batch_size=[3, 4])\n", - "print(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "c4a2e595", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "`TensorDict` does not support algebraic operations by design." - ] - }, - { - "cell_type": "markdown", - "id": "0971a213", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## `TensorDict` dictionary features" - ] - }, - { - "cell_type": "markdown", - "id": "82fe60e5", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "`TensorDict` shares a lot of features with python dictionaries" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "80c630ff", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([3, 4, 5]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([3, 4, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3, 4]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "a = torch.zeros(3, 4, 5)\n", - "b = torch.zeros(3, 4)\n", - "tensordict = TensorDict({\"a\": a, \"b\": b}, batch_size=[3, 4])\n", - "print(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "c0aadf93", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### `get(key)`\n", - "If we want to access a certain key, we can index the tensordict or alternatively use the `get` method:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "72cb7188", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "get and __getitem__ match: True\n", - "torch.Size([3, 4, 5])\n" - ] - } - ], - "source": [ - "print(\"get and __getitem__ match:\", tensordict[\"a\"] is tensordict.get(\"a\") is a)\n", - "print(tensordict[\"a\"].shape)" - ] - }, - { - "cell_type": "markdown", - "id": "1831f512", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "The `get` method also supports default values:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "bdad5e3a", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "tensor([1., 1., 1.])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "out = tensordict.get(\"foo\", torch.ones(3))\n", - "out" - ] - }, - { - "cell_type": "markdown", - "id": "48fd45ff", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### `set(key, value)`\n", - "The `set()` method can be used to set new values. Regular indexing also does the job:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "81baa167", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "td[\"c\"] is c: True\n", - "td[\"d\"] is d: True\n" - ] - } - ], - "source": [ - "c = torch.zeros((3, 4, 2, 2))\n", - "tensordict.set(\"c\", c)\n", - "print(f\"td[\\\"c\\\"] is c: {c is tensordict['c']}\")\n", - "\n", - "d = torch.zeros((3, 4, 2, 2))\n", - "tensordict[\"d\"] = d\n", - "print(f\"td[\\\"d\\\"] is d: {d is tensordict['d']}\")" - ] - }, - { - "cell_type": "markdown", - "id": "96076395", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### `keys()`\n", - "We can access the keys of a tensordict:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "99501c8f", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "tensordict[\"c\"] = torch.zeros(tensordict.shape)\n", - "tensordict.set(\"d\", torch.ones(tensordict.shape))\n", - "assert (tensordict[\"c\"] == 0).all()\n", - "assert (tensordict[\"d\"] == 1).all()" - ] - }, - { - "cell_type": "markdown", - "id": "a76a55f0", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### `values()`\n", - "The values of a `TensorDict` can be retrieved with the `values()` function. \n", - "Note that, unlike python `dict`s, the `values()` method returns a generator and not a list." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "3e6c0a3d", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "torch.Size([3, 4, 5])\n", - "torch.Size([3, 4, 1])\n", - "torch.Size([3, 4, 1])\n", - "torch.Size([3, 4, 1])\n" - ] - } - ], - "source": [ - "for value in tensordict.values():\n", - " print(value.shape)" - ] - }, - { - "cell_type": "markdown", - "id": "ccde2f9c", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### `update(tensordict_or_dict)`\n", - "The `update` method can be used to update a TensorDict with another one (or with a dict):" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1d53656d", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a is now equal to 1: True\n", - "d is now equal to 2: True\n" - ] - } - ], - "source": [ - "tensordict.update({\"a\": torch.ones((3, 4, 5)), \"d\": 2*torch.ones((3, 4, 2))})\n", - "# Also works with tensordict.update(TensorDict({\"a\":torch.ones((3, 4, 5)), \"c\":torch.ones((3, 4, 2))}, batch_size=[3,4]))\n", - "print(f\"a is now equal to 1: {(tensordict['a'] == 1).all()}\")\n", - "print(f\"d is now equal to 2: {(tensordict['d'] == 2).all()}\")" - ] - }, - { - "cell_type": "markdown", - "id": "5a2d338c", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### `del`\n", - "TensorDict also support keys deletion with the `del` operator:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "3167e6c4", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "before dict_keys(['a', 'b', 'c', 'd'])\n", - "after dict_keys(['a', 'b', 'd'])\n" - ] - } - ], - "source": [ - "print(\"before\", tensordict.keys())\n", - "del tensordict[\"c\"]\n", - "print(\"after\", tensordict.keys())" - ] - }, - { - "cell_type": "markdown", - "id": "026b17e9", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "## TensorDict tensor features\n", - "On many regards, TensorDict is a Tensor-like class: a great deal of tensor operation also work on tensordicts, making it easy to cast them across multiple tensors." - ] - }, - { - "cell_type": "markdown", - "id": "74546249", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### Batch size\n", - "`TensorDict` has a batch size which is shared across all tensors. The batch size can be [], unidimensional or multidimensional according to your needs, but it must be shared across tensors.\n", - "Indeed, you cannot have items that don't share the batch size inside the same TensorDict:" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "700432af", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Our TensorDict is of size torch.Size([3, 4])\n" - ] - } - ], - "source": [ - "tensordict = TensorDict({\"a\": torch.zeros(3, 4, 5), \"b\": torch.zeros(3, 4)}, batch_size=[3, 4])\n", - "print(f\"Our TensorDict is of size {tensordict.shape}\")" - ] - }, - { - "cell_type": "markdown", - "id": "5c6eb84b", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "The batch size can be changed if needed:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "a92ddb37", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Caramba! We got this error: batch dimension mismatch, got self.batch_size=torch.Size([3, 4]) and tensor.shape[:self.batch_dims]=torch.Size([4, 3]) with tensor tensor([[[0.],\n", - " [0.],\n", - " [0.]],\n", - "\n", - " [[0.],\n", - " [0.],\n", - " [0.]],\n", - "\n", - " [[0.],\n", - " [0.],\n", - " [0.]],\n", - "\n", - " [[0.],\n", - " [0.],\n", - " [0.]]])\n" - ] - } - ], - "source": [ - "# we cannot add tensors that violate the batch size:\n", - "try:\n", - " tensordict.update({\"c\": torch.zeros(4, 3, 1)})\n", - "except RuntimeError as err:\n", - " print(f\"Caramba! We got this error: {err}\")" - ] - }, - { - "cell_type": "markdown", - "id": "c8648b51", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "but it must comply with the tensor shapes:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "fd5ac381", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "tensordict.batch_size = [3]\n", - "assert tensordict.batch_size == torch.Size([3])\n", - "tensordict.batch_size = [3, 4]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "a83fca62", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Caramba! We got this error: the tensor a has shape torch.Size([3, 4, 5]) which is incompatible with the new shape torch.Size([4, 4]).\n" - ] - } - ], - "source": [ - "try:\n", - " tensordict.batch_size = [4, 4]\n", - "except RuntimeError as err:\n", - " print(f\"Caramba! We got this error: {err}\")" - ] - }, - { - "cell_type": "markdown", - "id": "e6bec7cc", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "We can also fill the values of a TensorDict sequentially" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "355c3973", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([10, 3, 4]), dtype=torch.float32)},\n", - " batch_size=torch.Size([10]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "tensordict = TensorDict({}, [10])\n", - "for i in range(10):\n", - " tensordict[i] = TensorDict({\"a\": torch.randn(3, 4)}, [])\n", - "print(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "71b2b2ee", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "If all values are not filled, they get the default value of zero." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "a00368cc", - "metadata": { - "pycharm": { - "name": "#%%\n" - } - }, - "outputs": [], - "source": [ - "tensordict = TensorDict({}, [10])\n", - "for i in range(2):\n", - " tensordict[i] = TensorDict({\"a\": torch.randn(3, 4)}, [])\n", - "assert (tensordict[9][\"a\"] == torch.zeros((3,4))).all()\n", - "tensordict = TensorDict({\"a\": torch.zeros(3, 4, 5), \"b\": torch.zeros(3, 4)}, batch_size=[3, 4])" - ] - }, - { - "cell_type": "markdown", - "id": "10c329c2", - "metadata": { - "pycharm": { - "name": "#%% md\n" - } - }, - "source": [ - "### Devices\n", - "TensorDict can be sent to the desired devices like a pytorch tensor with `td.cuda()` or `td.to(device)` with `device` the desired device" - ] - }, - { - "cell_type": "markdown", - "id": "b167e5e6", - "metadata": {}, - "source": [ - "### Memory sharing via physical memory usage\n", - "When on cpu, one can use either `tensordict.memmap_()` or `tensordict.share_memory_()` to send a `tensordict` to represent it as a memory-mapped collection of tensors or put it in shared memory resp." - ] - }, - { - "cell_type": "markdown", - "id": "8f8c5480", - "metadata": {}, - "source": [ - "### Tensor operations\n", - "We can perform tensor operations among the batch dimensions:" - ] - }, - { - "cell_type": "markdown", - "id": "b86426df", - "metadata": {}, - "source": [ - "#### Cloning\n", - "TensorDict supports cloning. Cloning returns the same TensorDict class than the original item." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "96010e7e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Content is identical (True) but duplicated (True)\n" - ] - } - ], - "source": [ - "tensordict_clone = tensordict.clone()\n", - "print(f\"Content is identical ({(tensordict['a'] == tensordict_clone['a']).all()}) but duplicated ({tensordict['a'] is not tensordict_clone['a']})\")" - ] - }, - { - "cell_type": "markdown", - "id": "d5fa5397", - "metadata": {}, - "source": [ - "#### Slicing and indexing\n", - "Slicing and indexing is supported along the batch dimensions" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "f5f1dd52", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([4, 5]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([4, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([4]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "698c7d8d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([2, 4, 5]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([2, 4, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([2, 4]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict[1:]" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "b0737916", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([3, 2, 5]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([3, 2, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3, 2]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict[:, 2:]" - ] - }, - { - "cell_type": "markdown", - "id": "eb307673", - "metadata": {}, - "source": [ - "#### Setting values with indexing\n", - "In general, `tensodict[tuple_index] = new_tensordict` will work as long as the batch sizes match.\n", - "\n", - "If one wants to build a tensordict that keeps track of the original tensordict, the `get_sub_tensordict` method can be used: in that case, a `SubTensorDict` instance will be returned. This class will store a pointer to the original tensordict as well as the desired index such that tensor modifications can be achieved easily." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "2dcc2d71", - "metadata": {}, - "outputs": [], - "source": [ - "tensordict = TensorDict({\"a\": torch.zeros(3, 4, 5), \"b\": torch.zeros(3, 4)}, batch_size=[3, 4])\n", - "subtd = tensordict.get_sub_tensordict((slice(None), torch.tensor([1, 3]))) # a SubTensorDict keeps track of the original one: it does not create a copy in memory of the original data\n", - "tensordict.fill_(\"a\", -1)\n", - "assert (subtd[\"a\"] == -1).all(), subtd[\"a\"] # the \"a\" key-value pair has changed" - ] - }, - { - "cell_type": "markdown", - "id": "cc44ed9b", - "metadata": {}, - "source": [ - "We can set values easily just by indexing the tensordict:" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "73b2c8f7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(tensor([[[ 0., 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0., 0.]],\n", - " \n", - " [[ 0., 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0., 0.],\n", - " [ 0., 0., 0., 0., 0.]],\n", - " \n", - " [[-1., -1., -1., -1., -1.],\n", - " [-1., -1., -1., -1., -1.],\n", - " [-1., -1., -1., -1., -1.],\n", - " [-1., -1., -1., -1., -1.]]]),\n", - " tensor([[[0.],\n", - " [0.],\n", - " [0.],\n", - " [0.]],\n", - " \n", - " [[0.],\n", - " [0.],\n", - " [0.],\n", - " [0.]],\n", - " \n", - " [[0.],\n", - " [0.],\n", - " [0.],\n", - " [0.]]]))" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "td2 = TensorDict({\"a\": torch.zeros(2, 4, 5), \"b\": torch.zeros(2, 4)}, batch_size=[2, 4])\n", - "tensordict[:-1] = td2\n", - "tensordict[\"a\"], tensordict[\"b\"]" - ] - }, - { - "cell_type": "markdown", - "id": "79634420", - "metadata": {}, - "source": [ - "#### Masking\n", - "We mask `TensorDict` as we mask tensors." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "7ef55592", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([6, 5]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([6, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([6]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "mask = torch.BoolTensor([[1, 0, 1, 0], [1, 0, 1, 0], [1, 0, 1, 0]])\n", - "tensordict[mask]" - ] - }, - { - "cell_type": "markdown", - "id": "2633c494", - "metadata": {}, - "source": [ - "#### Stacking" - ] - }, - { - "cell_type": "markdown", - "id": "cf4e47ba", - "metadata": {}, - "source": [ - "TensorDict supports stacking. By default, stacking is done in a lazy fashion, returning a `LazyStackedTensorDict` item." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "9c1c63b8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LazyStackedTensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([2, 3, 4, 5]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([2, 3, 4, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([2, 3, 4]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "every tensordict is awesome!\n" - ] - } - ], - "source": [ - "# Stack\n", - "clonned_tensordict = tensordict.clone()\n", - "staked_tensordict = torch.stack([tensordict, clonned_tensordict], dim=0)\n", - "print(staked_tensordict)\n", - "\n", - "# indexing a lazy stack returns the original tensordicts\n", - "if staked_tensordict[0] is tensordict and staked_tensordict[1] is clonned_tensordict:\n", - " print(\"every tensordict is awesome!\")" - ] - }, - { - "cell_type": "markdown", - "id": "b0df64e7", - "metadata": {}, - "source": [ - "If we want to have a contiguous tensordict, we can call `.to_tensordict()` or `.contiguous()`. It is recommended to perform this operation before accessing the values of the stacked tensordict for efficiency purposes" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "0c63a51f", - "metadata": {}, - "outputs": [], - "source": [ - "assert isinstance(staked_tensordict.contiguous(), TensorDict)\n", - "assert isinstance(staked_tensordict.to_tensordict(), TensorDict)" - ] - }, - { - "cell_type": "markdown", - "id": "a4223378", - "metadata": {}, - "source": [ - "#### Unbind\n", - "TensorDict can be unbound along a dim over the tensordict batch size" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "d8a8c096", - "metadata": {}, - "outputs": [], - "source": [ - "list_tensordict = tensordict.unbind(0)\n", - "assert type(list_tensordict) == tuple\n", - "assert len(list_tensordict) == 3\n", - "assert (torch.stack(list_tensordict, dim=0).contiguous() == tensordict).all()" - ] - }, - { - "cell_type": "markdown", - "id": "6ef05faf", - "metadata": {}, - "source": [ - "#### Cat\n", - "TensorDict supports cat to concatenate among a dim. The dim must be lower than the `batch_dims` (i.e. the length of the batch_size)." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "df18bfe9", - "metadata": {}, - "outputs": [], - "source": [ - "# Cat\n", - "list_tensordict = tensordict.unbind(0)\n", - "assert torch.cat(list_tensordict, dim=0).shape[0] == 12" - ] - }, - { - "cell_type": "markdown", - "id": "714b58f5", - "metadata": {}, - "source": [ - "#### View\n", - "Support for the view operation returning a `ViewedTensorDict`. Use `to_tensordict` to comeback to retrieve TensorDict" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "9c3f6db8", - "metadata": {}, - "outputs": [], - "source": [ - "assert type(tensordict.view(-1)) == ViewedTensorDict\n", - "assert tensordict.view(-1).shape[0] == 12" - ] - }, - { - "cell_type": "markdown", - "id": "ccc0de22", - "metadata": {}, - "source": [ - "#### Permute\n", - "We can permute the dims of `TensorDict`. Permute is a Lazy operation that returns PermutedTensorDict. Use `to_tensordict` to convert to `TensorDict`." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "0277b5b8", - "metadata": {}, - "outputs": [], - "source": [ - "assert type(tensordict.permute(1,0)) == PermutedTensorDict\n", - "assert tensordict.permute(1,0).batch_size == torch.Size([4, 3])" - ] - }, - { - "cell_type": "markdown", - "id": "20c11078", - "metadata": {}, - "source": [ - "#### Reshape\n", - "Reshape allows reshaping the `TensorDict` batch size" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "17241cda", - "metadata": {}, - "outputs": [], - "source": [ - "assert tensordict.reshape(-1).batch_size == torch.Size([12])" - ] - }, - { - "cell_type": "markdown", - "id": "585b3659", - "metadata": {}, - "source": [ - "#### Squeeze and Unsqueeze\n", - "Tensordict also supports squeeze and unsqueeze. Unsqueeze is a lazy operation that returns UnsqueezedTensorDict. Use `to_tensordict` to retrieve a tensordict after unsqueeze.\n", - "Calling `unsqueeze(dim).squeeze(dim)` returns the original tensordict." - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "b1cda445", - "metadata": {}, - "outputs": [], - "source": [ - "unsqueezed_tensordict = tensordict.unsqueeze(0)\n", - "assert type(unsqueezed_tensordict) == UnsqueezedTensorDict\n", - "assert unsqueezed_tensordict.batch_size == torch.Size([1, 3, 4])\n", - "\n", - "assert type(unsqueezed_tensordict.squeeze(0)) == TensorDict\n", - "assert unsqueezed_tensordict.squeeze(0) is tensordict" - ] - }, - { - "cell_type": "markdown", - "id": "46ccd34a", - "metadata": {}, - "source": [ - "Have fun with TensorDict!" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/tensordictmodule.ipynb b/tutorials/tensordictmodule.ipynb deleted file mode 100644 index 81291c3bbed..00000000000 --- a/tutorials/tensordictmodule.ipynb +++ /dev/null @@ -1,1244 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3be0fafd", - "metadata": {}, - "source": [ - "[](https://colab.research.google.com/github/pytorch/rl/blob/main/tutorials/tensordictmodule.ipynb)\n", - "\n", - "# TensorDictModule" - ] - }, - { - "cell_type": "markdown", - "id": "94bd315a", - "metadata": {}, - "source": [ - "We recommand reading the TensorDict tutorial before going through this one." - ] - }, - { - "cell_type": "markdown", - "id": "bbc7e457-48b5-42d2-a8cf-092f0419d2d4", - "metadata": {}, - "source": [ - "For a convenient usage of the `TensorDict` class with `nn.Module`, TorchRL provides an interface between the two named `TensorDictModule`.
\n", - "The `TensorDictModule` class is an `nn.Module` that takes a `TensorDict` as input when called.
\n", - "It is up to the user to define the keys to be read as input and output." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ed1ee1c1", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install functorch\n", - "!pip install torchrl" - ] - }, - { - "cell_type": "markdown", - "id": "129a6de9-cf97-4565-a229-c05ad18df882", - "metadata": {}, - "source": [ - "## `TensorDictModule` by examples" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "5b0241ab", - "metadata": {}, - "outputs": [], - "source": [ - "import torch\n", - "import torch.nn as nn\n", - "\n", - "from torchrl.data import TensorDict\n", - "from torchrl.modules import TensorDictModule, TensorDictSequential" - ] - }, - { - "cell_type": "markdown", - "id": "9d1c188a", - "metadata": {}, - "source": [ - "### Example 1: Simple usage" - ] - }, - { - "cell_type": "markdown", - "id": "1d21a711", - "metadata": {}, - "source": [ - "We have a `TensorDict` with 2 entries `\"a\"` and `\"b\"` but only the value associated with `\"a\"` has to be read by the network." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "6f33781f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([5, 3]), dtype=torch.float32),\n", - " a_out: Tensor(torch.Size([5, 10]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([5, 4, 3]), dtype=torch.float32)},\n", - " batch_size=torch.Size([5]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "tensordict = TensorDict(\n", - " {\"a\": torch.randn(5, 3), \"b\": torch.zeros(5, 4, 3)},\n", - " batch_size=[5],\n", - ")\n", - "linear = TensorDictModule(\n", - " nn.Linear(3, 10), in_keys=[\"a\"], out_keys=[\"a_out\"]\n", - ")\n", - "linear(tensordict)\n", - "assert (tensordict.get(\"b\") == 0).all()\n", - "print(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "00035cbd", - "metadata": {}, - "source": [ - "### Example 2: Multiple inputs" - ] - }, - { - "cell_type": "markdown", - "id": "06a20c22", - "metadata": {}, - "source": [ - "Suppose we have a slightly more complex network that takes 2 entries and averages them into a single output tensor. To make a `TensorDictModule` instance read multiple input values, one must register them in the `in_keys` keyword argument of the constructor." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "69098393", - "metadata": {}, - "outputs": [], - "source": [ - "class MergeLinear(nn.Module):\n", - " def __init__(self, in_1, in_2, out):\n", - " super().__init__()\n", - " self.linear_1 = nn.Linear(in_1, out)\n", - " self.linear_2 = nn.Linear(in_2, out)\n", - "\n", - " def forward(self, x_1, x_2):\n", - " return (self.linear_1(x_1) + self.linear_2(x_2)) / 2" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "2dd686bb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([5, 3]), dtype=torch.float32),\n", - " b: Tensor(torch.Size([5, 4]), dtype=torch.float32),\n", - " output: Tensor(torch.Size([5, 10]), dtype=torch.float32)},\n", - " batch_size=torch.Size([5]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict = TensorDict(\n", - " {\n", - " \"a\": torch.randn(5, 3),\n", - " \"b\": torch.randn(5, 4),\n", - " },\n", - " batch_size=[5],\n", - ")\n", - "\n", - "mergelinear = TensorDictModule(\n", - " MergeLinear(3, 4, 10), in_keys=[\"a\", \"b\"], out_keys=[\"output\"]\n", - ")\n", - "\n", - "mergelinear(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "11256ae7", - "metadata": {}, - "source": [ - "### Example 3: Multiple outputs\n", - "Similarly, `TensorDictModule` not only supports multiple inputs but also multiple outputs. To make a `TensorDictModule` instance write to multiple output values, one must register them in the `out_keys` keyword argument of the constructor." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "0b7f709b", - "metadata": {}, - "outputs": [], - "source": [ - "class MultiHeadLinear(nn.Module):\n", - " def __init__(self, in_1, out_1, out_2):\n", - " super().__init__()\n", - " self.linear_1 = nn.Linear(in_1, out_1)\n", - " self.linear_2 = nn.Linear(in_1, out_2)\n", - "\n", - " def forward(self, x):\n", - " return self.linear_1(x), self.linear_2(x)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "1b2b465f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([5, 3]), dtype=torch.float32),\n", - " output_1: Tensor(torch.Size([5, 4]), dtype=torch.float32),\n", - " output_2: Tensor(torch.Size([5, 10]), dtype=torch.float32)},\n", - " batch_size=torch.Size([5]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict = TensorDict({\"a\": torch.randn(5, 3)}, batch_size=[5])\n", - "\n", - "splitlinear = TensorDictModule(\n", - " MultiHeadLinear(3, 4, 10),\n", - " in_keys=[\"a\"],\n", - " out_keys=[\"output_1\", \"output_2\"],\n", - ")\n", - "splitlinear(tensordict)" - ] - }, - { - "cell_type": "markdown", - "id": "859630c3", - "metadata": {}, - "source": [ - "When having multiple input keys and output keys, make sure they match the order in the module.\n", - "\n", - "`TensorDictModule` can work with `TensorDict` instances that contain more tensors than what the `in_keys` attribute indicates. \n", - "\n", - "Unless a `vmap` operator is used, the `TensorDict` is modified in-place." - ] - }, - { - "cell_type": "markdown", - "id": "c7d2a834", - "metadata": {}, - "source": [ - "#### Ignoring some outputs\n", - "\n", - "Note that it is possible to avoid writing some of the tensors to the `TensorDict` output, using `\"_\"` in `out_keys`." - ] - }, - { - "cell_type": "markdown", - "id": "11d2d2a7-6a55-4f31-972b-041be387f9df", - "metadata": {}, - "source": [ - "### Example 4: Combining multiples `TensorDictModule` with `TensorDictSequential`" - ] - }, - { - "cell_type": "markdown", - "id": "89b157d5-322c-45d6-bec9-20440b78a2bf", - "metadata": {}, - "source": [ - "To combine multiples `TensorDictModule` instances, we can use `TensorDictSequential`. We create a list where each `TensorDictModule` must be executed sequentially. `TensorDictSequential` will read and write keys to the tensordict following the sequence of modules provided.\n", - "\n", - "We can also gather the inputs needed by `TensorDictSequential` with the `in_keys` property, and the outputs keys are found at the `out_keys` attribute." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "7e36d071-df67-4232-a8a9-78e79b32fef2", - "metadata": {}, - "outputs": [], - "source": [ - "tensordict = TensorDict({\"a\": torch.randn(5, 3)}, batch_size=[5])\n", - "\n", - "splitlinear = TensorDictModule(\n", - " MultiHeadLinear(3, 4, 10),\n", - " in_keys=[\"a\"],\n", - " out_keys=[\"output_1\", \"output_2\"],\n", - ")\n", - "mergelinear = TensorDictModule(\n", - " MergeLinear(4, 10, 13),\n", - " in_keys=[\"output_1\", \"output_2\"],\n", - " out_keys=[\"output\"],\n", - ")\n", - "\n", - "split_and_merge_linear = TensorDictSequential(splitlinear, mergelinear)\n", - "\n", - "assert split_and_merge_linear(tensordict)[\n", - " \"output\"\n", - "].shape == torch.Size([5, 13])" - ] - }, - { - "cell_type": "markdown", - "id": "760118ea", - "metadata": {}, - "source": [ - "### Example 5: Compatibility with functorch" - ] - }, - { - "cell_type": "markdown", - "id": "e2718a12", - "metadata": {}, - "source": [ - "`TensorDictModule` comes with its own `make_functional_with_buffers` method to make it functional (you should not be using `functorch.make_functional_with_buffers(tensordictmodule)`, that will not work in general)." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "b553bed1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " a: Tensor(torch.Size([5, 3]), dtype=torch.float32),\n", - " output_1: Tensor(torch.Size([5, 4]), dtype=torch.float32),\n", - " output_2: Tensor(torch.Size([5, 10]), dtype=torch.float32)},\n", - " batch_size=torch.Size([5]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tensordict = TensorDict({\"a\": torch.randn(5, 3)}, batch_size=[5])\n", - "\n", - "splitlinear = TensorDictModule(\n", - " MultiHeadLinear(3, 4, 10),\n", - " in_keys=[\"a\"],\n", - " out_keys=[\"output_1\", \"output_2\"],\n", - ")\n", - "func, (params, buffers) = splitlinear.make_functional_with_buffers()\n", - "func(tensordict, params=params, buffers=buffers)" - ] - }, - { - "cell_type": "markdown", - "id": "50ac0393", - "metadata": {}, - "source": [ - "We can also use the `vmap` operator, here's an example of model ensembling with it:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "86ccb7be", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the output tensordict shape is: torch.Size([10, 5])\n" - ] - } - ], - "source": [ - "tensordict = TensorDict({\"a\": torch.randn(5, 3)}, batch_size=[5])\n", - "num_models = 10\n", - "model = TensorDictModule(\n", - " nn.Linear(3, 4), in_keys=[\"a\"], out_keys=[\"output\"]\n", - " )\n", - "fmodel, (params, buffers) = model.make_functional_with_buffers()\n", - "params = [torch.randn(num_models, *p.shape, device=p.device) for p in params]\n", - "buffers = [torch.randn(num_models, *b.shape, device=b.device) for b in buffers]\n", - "result_td = fmodel(tensordict, params=params, buffers=buffers, vmap=True)\n", - "print(\"the output tensordict shape is: \", result_td.shape)" - ] - }, - { - "cell_type": "markdown", - "id": "31be6c45-10fb-4fd1-a52f-92214b76c00a", - "metadata": {}, - "source": [ - "## Do's and don't with `TensorDictModule`\n", - "\n", - "Don't use `nn.Module` wrappers with `TensorDictModule` componants. This would break some of `TensorDictModule` features such as `functorch` compatibility. \n", - "\n", - "Don't use `nn.Sequence`, similar to `nn.Module`, it would break features such as `functorch` compatibility. Do use `TensorDictSequential` instead.\n", - "\n", - "Don't assign the output tensordict to a new variable, as the output tensordict is just the input modified in-place:\n", - "\n", - "```python\n", - "tensordict = module(tensordict) # ok!\n", - "tensordict_out = module(tensordict) # don't!\n", - "```\n", - "\n", - "Don't use `make_functional_with_buffers` from `functorch` directly but use `TensorDictModule.make_functional_with_buffers` instead.\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "22e65356-d8b3-4197-84b8-598330c1ddc8", - "metadata": {}, - "source": [ - "## TensorDictModule for RL" - ] - }, - { - "cell_type": "markdown", - "id": "8d49a911-933c-476f-8c9a-00e006ed043c", - "metadata": {}, - "source": [ - "TorchRL provides a few RL-specific `TensorDictModule` instances that serves domain-specific needs." - ] - }, - { - "cell_type": "markdown", - "id": "e33904a6-d405-45db-a713-47493ca8ee33", - "metadata": { - "tags": [] - }, - "source": [ - "### `ProbabilisticTensorDictModule`" - ] - }, - { - "cell_type": "markdown", - "id": "fea4eead-47b4-4029-a8ff-e3c3faf51b0f", - "metadata": {}, - "source": [ - "`ProbabilisticTensorDictModule` is a special case of a `TensorDictModule` where the output is\n", - "sampled given some rule, specified by the input `default_interaction_mode`\n", - "argument and the `exploration_mode()` global function. If they conflict, the context manager precedes.\n", - "\n", - "It consists in a wrapper around another `TensorDictModule` that returns a tensordict\n", - "updated with the distribution parameters. `ProbabilisticTensorDictModule` is\n", - "responsible for constructing the distribution (through the `get_dist()` method)\n", - "and/or sampling from this distribution (through a regular `__call__()` to the\n", - "module).\n", - "\n", - "One can find the parameters in the output tensordict as well as the log probability if needed" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "9dd7846a-f12c-492e-a2ef-b0c67969234d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict before going through module: TensorDict(\n", - " fields={\n", - " hidden: Tensor(torch.Size([3, 8]), dtype=torch.float32),\n", - " input: Tensor(torch.Size([3, 4]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict after going through module now as keys action, loc and scale: TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([3, 8]), dtype=torch.float32),\n", - " input: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " loc: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " sample_log_prob: Tensor(torch.Size([3, 1]), dtype=torch.float32),\n", - " scale: Tensor(torch.Size([3, 4]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "from torchrl.modules import ProbabilisticTensorDictModule\n", - "from torchrl.modules import TanhNormal, NormalParamWrapper\n", - "import functorch\n", - "td = TensorDict({\"input\": torch.randn(3, 4), \"hidden\": torch.randn(3, 8)}, [3,])\n", - "net = NormalParamWrapper(torch.nn.GRUCell(4, 8))\n", - "module = TensorDictModule(net, in_keys=[\"input\", \"hidden\"], out_keys=[\"loc\", \"scale\"])\n", - "td_module = ProbabilisticTensorDictModule(\n", - " module=module,\n", - " dist_in_keys=[\"loc\", \"scale\"],\n", - " sample_out_key=[\"action\"],\n", - " distribution_class=TanhNormal,\n", - " return_log_prob=True,\n", - " )\n", - "print(f\"TensorDict before going through module: {td}\")\n", - "td_module(td)\n", - "print(f\"TensorDict after going through module now as keys action, loc and scale: {td}\")" - ] - }, - { - "cell_type": "markdown", - "id": "406b1caa-bcec-4317-b685-10df23352154", - "metadata": {}, - "source": [ - "### `Actor`" - ] - }, - { - "cell_type": "markdown", - "id": "e139de7d-0250-49c0-b495-8b5a404821f5", - "metadata": {}, - "source": [ - "Actor inherits from `TensorDictModule` and comes with a default value for `out_keys` of `[\"action\"]`.\n" - ] - }, - { - "cell_type": "markdown", - "id": "cceeade9-47f1-4e92-897a-dd226c9371a6", - "metadata": {}, - "source": [ - "### `ProbabilisticActor`" - ] - }, - { - "cell_type": "markdown", - "id": "4fd0f53e-90aa-49a9-9d8f-5a260255e556", - "metadata": {}, - "source": [ - "General class for probabilistic actors in RL that inherits from `ProbabilisticTensorDictModule`.\n", - "Similarly to `Actor`, it comes with default values for the `out_keys` (`[\"action\"]`).\n" - ] - }, - { - "cell_type": "markdown", - "id": "dbd48bb2-b93b-4766-b7a7-19d500f17e2d", - "metadata": {}, - "source": [ - "### `ActorCriticOperator`" - ] - }, - { - "cell_type": "markdown", - "id": "8cc42407-4e95-4bf0-8901-5d1a4e3b2044", - "metadata": {}, - "source": [ - "Similarly, `ActorCriticOperator` inherits from `TensorDictSequential`and wraps both an actor network and a value Network.\n", - "\n", - "`ActorCriticOperator` will first compute the action from the actor and then the value according to this action." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5b6c6035-f9cc-41e7-bf3a-f88936f93b70", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TensorDict(\n", - " fields={\n", - " observation: Tensor(torch.Size([3, 4]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " loc: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " sample_log_prob: Tensor(torch.Size([3, 1]), dtype=torch.float32),\n", - " scale: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " state_action_value: Tensor(torch.Size([3, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "Policy: TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " loc: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " sample_log_prob: Tensor(torch.Size([3, 1]), dtype=torch.float32),\n", - " scale: Tensor(torch.Size([3, 4]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n", - "Critic: TensorDict(\n", - " fields={\n", - " action: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " hidden: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " loc: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " observation: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " sample_log_prob: Tensor(torch.Size([3, 1]), dtype=torch.float32),\n", - " scale: Tensor(torch.Size([3, 4]), dtype=torch.float32),\n", - " state_action_value: Tensor(torch.Size([3, 1]), dtype=torch.float32)},\n", - " batch_size=torch.Size([3]),\n", - " device=cpu,\n", - " is_shared=False)\n" - ] - } - ], - "source": [ - "from torchrl.modules import (\n", - " MLP,\n", - " ActorCriticOperator,\n", - " NormalParamWrapper,\n", - " TanhNormal,\n", - " ValueOperator,\n", - ")\n", - "from torchrl.modules.tensordict_module import ProbabilisticActor\n", - "\n", - "module_hidden = torch.nn.Linear(4, 4)\n", - "td_module_hidden = TensorDictModule(\n", - " module=module_hidden,\n", - " in_keys=[\"observation\"],\n", - " out_keys=[\"hidden\"],\n", - ")\n", - "module_action = NormalParamWrapper(torch.nn.Linear(4, 8))\n", - "module_action = TensorDictModule(\n", - " module_action, in_keys=[\"hidden\"], out_keys=[\"loc\", \"scale\"]\n", - ")\n", - "td_module_action = ProbabilisticActor(\n", - " module=module_action,\n", - " dist_in_keys=[\"loc\", \"scale\"],\n", - " sample_out_key=[\"action\"],\n", - " distribution_class=TanhNormal,\n", - " return_log_prob=True,\n", - ")\n", - "module_value = MLP(in_features=8, out_features=1, num_cells=[])\n", - "td_module_value = ValueOperator(\n", - " module=module_value,\n", - " in_keys=[\"hidden\", \"action\"],\n", - " out_keys=[\"state_action_value\"],\n", - ")\n", - "td_module = ActorCriticOperator(\n", - " td_module_hidden, td_module_action, td_module_value\n", - ")\n", - "td = TensorDict(\n", - " {\"observation\": torch.randn(3, 4)},\n", - " [\n", - " 3,\n", - " ],\n", - ")\n", - "print(td)\n", - "td_clone = td_module(td.clone())\n", - "print(td_clone)\n", - "td_clone = td_module.get_policy_operator()(td.clone())\n", - "print(f\"Policy: {td_clone}\") # no value\n", - "td_clone = td_module.get_critic_operator()(td.clone())\n", - "print(f\"Critic: {td_clone}\") # no action" - ] - }, - { - "cell_type": "markdown", - "id": "11d0f8ea-0292-4ca0-9460-2a2149f7aeef", - "metadata": {}, - "source": [ - "Other blocks exist such as:\n", - "\n", - "The `ValueOperator` which is a general class for value functions in RL.\n", - "\n", - "the `ActorCriticWrapper` which wraps together an actor and a value model that do not share a common observation embedding network.\n", - "\n", - "The `ActorValueOperator` which wraps together an actor and a value model that share a common observation embedding network." - ] - }, - { - "cell_type": "markdown", - "id": "6304a098", - "metadata": { - "tags": [] - }, - "source": [ - "## Showcase: Implementing a transformer using TensorDictModule\n", - "To demonstrate the flexibility of `TensorDictModule`, we are going to create a transformer that reads `TensorDict` objects using `TensorDictModule`.\n", - "\n", - "The following figure shows the classical transformer architecture (Vaswani et al, 2017) \n", - "\n", - "\n", - "\n", - "We have let the positional encoders aside for simplicity.\n", - "\n", - "Let's first import the classical transformers blocks (see `src/transformer.py`for more details.)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "e1f7ba7b", - "metadata": {}, - "outputs": [], - "source": [ - "from tutorials.src.transformer import (\n", - " FFN,\n", - " Attention,\n", - " SkipLayerNorm,\n", - " SplitHeads,\n", - " TokensToQKV,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "c3258540-acb2-4090-a374-822dfcb857bd", - "metadata": {}, - "source": [ - "We first create the `AttentionBlockTensorDict`, the attention block using `TensorDictModule` and `TensorDictSequential`.\n", - "\n", - "The wiring operation that connects the modules to each other requires us to indicate which key each of them must read and write. Unlike `nn.Sequence`, a `TensorDictSequential` can read/write more than one input/output. Moreover, its components inputs need not be identical to the previous layers outputs, allowing us to code complicated neural architecture." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "eb9775bd", - "metadata": {}, - "outputs": [], - "source": [ - "class AttentionBlockTensorDict(TensorDictSequential):\n", - " def __init__(\n", - " self,\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ):\n", - " super().__init__(\n", - " TensorDictModule(\n", - " TokensToQKV(to_dim, from_dim, latent_dim),\n", - " in_keys=[to_name, from_name],\n", - " out_keys=[\"Q\", \"K\", \"V\"],\n", - " ),\n", - " TensorDictModule(\n", - " SplitHeads(num_heads),\n", - " in_keys=[\"Q\", \"K\", \"V\"],\n", - " out_keys=[\"Q\", \"K\", \"V\"],\n", - " ),\n", - " TensorDictModule(\n", - " Attention(latent_dim, to_dim),\n", - " in_keys=[\"Q\", \"K\", \"V\"],\n", - " out_keys=[\"X_out\", \"Attn\"],\n", - " ),\n", - " TensorDictModule(\n", - " SkipLayerNorm(to_len, to_dim),\n", - " in_keys=[to_name, \"X_out\"],\n", - " out_keys=[to_name],\n", - " ),\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "b5f6f291", - "metadata": {}, - "source": [ - "We build the encoder and decoder blocks that will be part of the transformer thanks to `TensorDictModule`." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "f902006d-3f89-4ea6-84e0-a193a53e42db", - "metadata": {}, - "outputs": [], - "source": [ - "class TransformerBlockEncoderTensorDict(TensorDictSequential):\n", - " def __init__(\n", - " self,\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ):\n", - " super().__init__(\n", - " AttentionBlockTensorDict(\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ),\n", - " TensorDictModule(\n", - " FFN(to_dim, 4 * to_dim),\n", - " in_keys=[to_name],\n", - " out_keys=[\"X_out\"],\n", - " ),\n", - " TensorDictModule(\n", - " SkipLayerNorm(to_len, to_dim),\n", - " in_keys=[to_name, \"X_out\"],\n", - " out_keys=[to_name],\n", - " ),\n", - " )\n", - "\n", - "\n", - "class TransformerBlockDecoderTensorDict(TensorDictSequential):\n", - " def __init__(\n", - " self,\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ):\n", - " super().__init__(\n", - " AttentionBlockTensorDict(\n", - " to_name,\n", - " to_name,\n", - " to_dim,\n", - " to_len,\n", - " to_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ),\n", - " TransformerBlockEncoderTensorDict(\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ),\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "42dbfae5", - "metadata": {}, - "source": [ - "We create the transformer encoder and decoder.\n", - "\n", - "For an encoder, we just need to take the same tokens for both queries, keys and values.\n", - "\n", - "For a decoder, we now can extract info from `X_from` into `X_to`. `X_from` will map to queries whereas X`_from` will map to keys and values." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "1c6c85b5", - "metadata": {}, - "outputs": [], - "source": [ - "class TransformerEncoderTensorDict(TensorDictSequential):\n", - " def __init__(\n", - " self,\n", - " num_blocks,\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ):\n", - " super().__init__(\n", - " *[\n", - " TransformerBlockEncoderTensorDict(\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " )\n", - " for _ in range(num_blocks)\n", - " ]\n", - " )\n", - "\n", - "\n", - "class TransformerDecoderTensorDict(TensorDictSequential):\n", - " def __init__(\n", - " self,\n", - " num_blocks,\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ):\n", - " super().__init__(\n", - " *[\n", - " TransformerBlockDecoderTensorDict(\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " )\n", - " for _ in range(num_blocks)\n", - " ]\n", - " )\n", - "\n", - "\n", - "class TransformerTensorDict(TensorDictSequential):\n", - " def __init__(\n", - " self,\n", - " num_blocks,\n", - " to_name,\n", - " from_name,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " from_len,\n", - " latent_dim,\n", - " num_heads,\n", - " ):\n", - " super().__init__(\n", - " TransformerEncoderTensorDict(\n", - " num_blocks,\n", - " to_name,\n", - " to_name,\n", - " to_dim,\n", - " to_len,\n", - " to_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ),\n", - " TransformerDecoderTensorDict(\n", - " num_blocks,\n", - " from_name,\n", - " to_name,\n", - " from_dim,\n", - " from_len,\n", - " to_dim,\n", - " latent_dim,\n", - " num_heads,\n", - " ),\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "15b1b4e2-918d-40bc-a245-15be0e9cc276", - "metadata": {}, - "source": [ - "We now test our new `TransformerTensorDict`" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "7a680452-1462-4ee6-ba04-dce0bb855870", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorDict(\n", - " fields={\n", - " Attn: Tensor(torch.Size([8, 2, 10, 3]), dtype=torch.float32),\n", - " K: Tensor(torch.Size([8, 2, 3, 5]), dtype=torch.float32),\n", - " Q: Tensor(torch.Size([8, 2, 10, 5]), dtype=torch.float32),\n", - " V: Tensor(torch.Size([8, 2, 3, 5]), dtype=torch.float32),\n", - " X_decode: Tensor(torch.Size([8, 10, 6]), dtype=torch.float32),\n", - " X_encode: Tensor(torch.Size([8, 3, 5]), dtype=torch.float32),\n", - " X_out: Tensor(torch.Size([8, 10, 6]), dtype=torch.float32)},\n", - " batch_size=torch.Size([8]),\n", - " device=cpu,\n", - " is_shared=False)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "to_dim = 5\n", - "from_dim = 6\n", - "latent_dim = 10\n", - "to_len = 3\n", - "from_len = 10\n", - "batch_size = 8\n", - "num_heads = 2\n", - "num_blocks = 6\n", - "\n", - "tokens = TensorDict(\n", - " {\n", - " \"X_encode\": torch.randn(batch_size, to_len, to_dim),\n", - " \"X_decode\": torch.randn(batch_size, from_len, from_dim),\n", - " },\n", - " batch_size=[batch_size],\n", - ")\n", - "\n", - "transformer = TransformerTensorDict(\n", - " num_blocks,\n", - " \"X_encode\",\n", - " \"X_decode\",\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " from_len,\n", - " latent_dim,\n", - " num_heads,\n", - ")\n", - "\n", - "transformer(tokens)\n", - "tokens" - ] - }, - { - "cell_type": "markdown", - "id": "3f6448dd-5d0d-43fd-9e57-a0ac3b30ecba", - "metadata": {}, - "source": [ - "We've achieved to create a transformer with `TensorDictModule`. This shows that `TensorDictModule`is a flexible module that can implement complex operarations" - ] - }, - { - "cell_type": "markdown", - "id": "bb30fb1b-ef8f-4638-af44-69374dd9cfe9", - "metadata": {}, - "source": [ - "### Benchmarking" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "f75eb50b-b5c4-47ef-9e33-4fa6dfb489ba", - "metadata": {}, - "outputs": [], - "source": [ - "from tutorials.src.transformer import Transformer" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "c4ff0abf-1f01-45bd-9dfc-cd26374137c7", - "metadata": {}, - "outputs": [], - "source": [ - "to_dim = 5\n", - "from_dim = 6\n", - "latent_dim = 10\n", - "to_len = 3\n", - "from_len = 10\n", - "batch_size = 8\n", - "num_heads = 2\n", - "num_blocks = 6" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "3e08ff04-1086-4315-bf5e-caa960183c94", - "metadata": {}, - "outputs": [], - "source": [ - "td_tokens = TensorDict(\n", - " {\n", - " \"X_encode\": torch.randn(batch_size, to_len, to_dim),\n", - " \"X_decode\": torch.randn(batch_size, from_len, from_dim),\n", - " },\n", - " batch_size=[batch_size],\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "665c4168-9ac8-45e5-98bc-6e5cc511a209", - "metadata": {}, - "outputs": [], - "source": [ - "X_encode = torch.randn(batch_size, to_len, to_dim)\n", - "X_decode = torch.randn(batch_size, from_len, from_dim)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "f3c2fd50-bc9b-4911-bd7c-8f8f03bd4ea4", - "metadata": {}, - "outputs": [], - "source": [ - "tdtransformer = TransformerTensorDict(\n", - " num_blocks,\n", - " \"X_encode\",\n", - " \"X_decode\",\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " from_len,\n", - " latent_dim,\n", - " num_heads,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "dfbadd6b-7847-4399-9b22-7e5c58524334", - "metadata": {}, - "outputs": [], - "source": [ - "transformer = Transformer(\n", - " num_blocks,\n", - " to_dim,\n", - " to_len,\n", - " from_dim,\n", - " from_len,\n", - " latent_dim,\n", - " num_heads\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "6a63de8f-ee8e-4ddf-bf89-f72c2896e1c3", - "metadata": { - "tags": [] - }, - "source": [ - "#### Inference time" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "02a4116b-2b75-47fc-8bc1-3903aa7cd504", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 112 ms, sys: 4.76 ms, total: 117 ms\n", - "Wall time: 15.7 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "tokens = tdtransformer(td_tokens)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "40158aab-b53a-4a99-82cb-f5595eef7159", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 76.8 ms, sys: 11.4 ms, total: 88.2 ms\n", - "Wall time: 15.6 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "X_out = transformer(X_encode, X_decode)" - ] - }, - { - "cell_type": "markdown", - "id": "664adff3-1466-47c3-9a80-a0f26171addd", - "metadata": {}, - "source": [ - "We can see on this minimal example that the overhead introduced by `TensorDictModule` is marginal." - ] - }, - { - "cell_type": "markdown", - "id": "bd08362a-8bb8-49fb-8038-1a60c5c01ea2", - "metadata": {}, - "source": [ - "Have fun with TensorDictModule!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "470713e6", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/train_demo.ipynb b/tutorials/train_demo.ipynb deleted file mode 100644 index 7ec2b5f47ee..00000000000 --- a/tutorials/train_demo.ipynb +++ /dev/null @@ -1,41 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "c2e7018e-62a9-4d3f-9e75-343e8910e981", - "metadata": {}, - "source": [ - "# TorchRL overview" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3c75a1ad-128c-4a8c-b387-7021dd6767a1", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} From e173a3cd4421ee5c539b9775a23e5761e807648a Mon Sep 17 00:00:00 2001 From: vmoens Date: Fri, 25 Nov 2022 10:05:26 +0000 Subject: [PATCH 2/2] amend --- docs/source/_static/js/theme.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/_static/js/theme.js b/docs/source/_static/js/theme.js index 490f4cafc71..219443ee11e 100644 --- a/docs/source/_static/js/theme.js +++ b/docs/source/_static/js/theme.js @@ -943,7 +943,7 @@ $("table").removeAttr("border"); var downloadNote = $(".sphx-glr-download-link-note.admonition.note"); if (downloadNote.length >= 1) { var tutorialUrlArray = $("#tutorial-type").text().split('/'); - tutorialUrlArray[0] = tutorialUrlArray[0] + "_source" + tutorialUrlArray[0] = tutorialUrlArray[0] + "/sphinx-tutorials" var githubLink = "https://github.com/pytorch/rl/blob/main/" + tutorialUrlArray.join("/") + ".py", notebookLink = $(".reference.download")[1].href, @@ -2071,7 +2071,7 @@ $("table").removeAttr("border"); var downloadNote = $(".sphx-glr-download-link-note.admonition.note"); if (downloadNote.length >= 1) { var tutorialUrlArray = $("#tutorial-type").text().split('/'); - tutorialUrlArray[0] = tutorialUrlArray[0] + "_source" + tutorialUrlArray[0] = tutorialUrlArray[0] + "/sphinx-tutorials" var githubLink = "https://github.com/pytorch/rl/blob/main/" + tutorialUrlArray.join("/") + ".py", notebookLink = $(".reference.download")[1].href, @@ -3199,7 +3199,7 @@ $("table").removeAttr("border"); var downloadNote = $(".sphx-glr-download-link-note.admonition.note"); if (downloadNote.length >= 1) { var tutorialUrlArray = $("#tutorial-type").text().split('/'); - tutorialUrlArray[0] = tutorialUrlArray[0] + "_source" + tutorialUrlArray[0] = tutorialUrlArray[0] + "/sphinx-tutorials" var githubLink = "https://github.com/pytorch/rl/blob/main/" + tutorialUrlArray.join("/") + ".py", notebookLink = $(".reference.download")[1].href,