From aaa6a79be68cdd5301a14b4e3babc3c80f01c752 Mon Sep 17 00:00:00 2001 From: shengxiang19 <1228205102@qq.com> Date: Tue, 19 Jan 2021 14:17:24 +0800 Subject: [PATCH 01/20] Add QR-DQN algorithm --- README.md | 1 + docs/index.rst | 1 + examples/atari/README.md | 13 +- examples/atari/atari_qrdqn.py | 153 ++++++++++++++++++ examples/atari/results/qrdqn/Breakout_rew.PNG | Bin 0 -> 63893 bytes examples/atari/results/qrdqn/MsPacman_rew.PNG | Bin 0 -> 54332 bytes examples/atari/results/qrdqn/Pong_rew.PNG | Bin 0 -> 38204 bytes examples/atari/results/qrdqn/Qbert_rew.PNG | Bin 0 -> 68486 bytes test/base/test_utils.py | 6 +- test/discrete/test_qrdqn.py | 133 +++++++++++++++ tianshou/policy/__init__.py | 2 + tianshou/policy/base.py | 11 ++ tianshou/policy/modelfree/c51.py | 46 +----- tianshou/policy/modelfree/dqn.py | 10 +- tianshou/policy/modelfree/qrdqn.py | 96 +++++++++++ tianshou/utils/net/discrete.py | 33 ++++ 16 files changed, 460 insertions(+), 45 deletions(-) create mode 100644 examples/atari/atari_qrdqn.py create mode 100644 examples/atari/results/qrdqn/Breakout_rew.PNG create mode 100644 examples/atari/results/qrdqn/MsPacman_rew.PNG create mode 100644 examples/atari/results/qrdqn/Pong_rew.PNG create mode 100644 examples/atari/results/qrdqn/Qbert_rew.PNG create mode 100644 test/discrete/test_qrdqn.py create mode 100644 tianshou/policy/modelfree/qrdqn.py diff --git a/README.md b/README.md index 833a8562a..47a4331e1 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ - [Double DQN](https://arxiv.org/pdf/1509.06461.pdf) - [Dueling DQN](https://arxiv.org/pdf/1511.06581.pdf) - [C51](https://arxiv.org/pdf/1707.06887.pdf) +- [Quantile Regression DQN (QRDQN)](https://arxiv.org/pdf/1710.10044.pdf) - [Advantage Actor-Critic (A2C)](https://openai.com/blog/baselines-acktr-a2c/) - [Deep Deterministic Policy Gradient (DDPG)](https://arxiv.org/pdf/1509.02971.pdf) - [Proximal Policy Optimization (PPO)](https://arxiv.org/pdf/1707.06347.pdf) diff --git a/docs/index.rst b/docs/index.rst index 3b1fe023c..9cffe92f4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -14,6 +14,7 @@ Welcome to Tianshou! * :class:`~tianshou.policy.DQNPolicy` `Double DQN `_ * :class:`~tianshou.policy.DQNPolicy` `Dueling DQN `_ * :class:`~tianshou.policy.C51Policy` `C51 `_ +* :class:`~tianshou.policy.QRDQNPolicy` `Quantile Regression DQN `_ * :class:`~tianshou.policy.A2CPolicy` `Advantage Actor-Critic `_ * :class:`~tianshou.policy.DDPGPolicy` `Deep Deterministic Policy Gradient `_ * :class:`~tianshou.policy.PPOPolicy` `Proximal Policy Optimization `_ diff --git a/examples/atari/README.md b/examples/atari/README.md index 7fd034461..1dcc4e6a7 100644 --- a/examples/atari/README.md +++ b/examples/atari/README.md @@ -38,4 +38,15 @@ One epoch here is equal to 100,000 env step, 100 epochs stand for 10M. | SeaquestNoFrameskip-v4 | 6226 | ![](results/c51/Seaquest_rew.png) | `python3 atari_c51.py --task "SeaquestNoFrameskip-v4"` | | SpaceInvadersNoFrameskip-v4 | 988.5 | ![](results/c51/SpaceInvader_rew.png) | `python3 atari_c51.py --task "SpaceInvadersNoFrameskip-v4"` | -Note: The selection of `n_step` is based on Figure 6 in the [Rainbow](https://arxiv.org/abs/1710.02298) paper. \ No newline at end of file +Note: The selection of `n_step` is based on Figure 6 in the [Rainbow](https://arxiv.org/abs/1710.02298) paper. + +# QRDQN (single run) + +One epoch here is equal to 100,000 env step, 100 epochs stand for 10M. + +| task | best reward | reward curve | parameters | +| --------------------------- | ----------- | ------------------------------------- | ------------------------------------------------------------ | +| PongNoFrameskip-v4 | 20 | ![](results/qrdqn/Pong_rew.png) | `python3 atari_c51.py --task "PongNoFrameskip-v4" --batch-size 64` | +| BreakoutNoFrameskip-v4 | 409.2 | ![](results/qrdqn/Breakout_rew.png) | `python3 atari_c51.py --task "BreakoutNoFrameskip-v4" --n-step 1` | +| QbertNoFrameskip-v4 | 14990 | ![](results/qrdqn/Qbert_rew.png) | `python3 atari_c51.py --task "QbertNoFrameskip-v4"` | +| MsPacmanNoFrameskip-v4 | 2886 | ![](results/qrdqn/MsPacman_rew.png) | `python3 atari_c51.py --task "MsPacmanNoFrameskip-v4"` | diff --git a/examples/atari/atari_qrdqn.py b/examples/atari/atari_qrdqn.py new file mode 100644 index 000000000..a45a03b66 --- /dev/null +++ b/examples/atari/atari_qrdqn.py @@ -0,0 +1,153 @@ +import os +import torch +import pprint +import argparse +import numpy as np +from torch.utils.tensorboard import SummaryWriter + +from tianshou.policy import QRDQNPolicy +from tianshou.env import SubprocVectorEnv +from tianshou.utils.net.discrete import QRDQN +from tianshou.trainer import offpolicy_trainer +from tianshou.data import Collector, ReplayBuffer + +from atari_wrapper import wrap_deepmind + + +def get_args(): + parser = argparse.ArgumentParser() + parser.add_argument('--task', type=str, default='PongNoFrameskip-v4') + parser.add_argument('--seed', type=int, default=0) + parser.add_argument('--eps-test', type=float, default=0.005) + parser.add_argument('--eps-train', type=float, default=1.) + parser.add_argument('--eps-train-final', type=float, default=0.05) + parser.add_argument('--buffer-size', type=int, default=100000) + parser.add_argument('--lr', type=float, default=0.0001) + parser.add_argument('--gamma', type=float, default=0.99) + parser.add_argument('--num-quantiles', type=int, default=200) + parser.add_argument('--n-step', type=int, default=3) + parser.add_argument('--target-update-freq', type=int, default=500) + parser.add_argument('--epoch', type=int, default=100) + parser.add_argument('--step-per-epoch', type=int, default=10000) + parser.add_argument('--collect-per-step', type=int, default=10) + parser.add_argument('--batch-size', type=int, default=32) + parser.add_argument('--training-num', type=int, default=16) + parser.add_argument('--test-num', type=int, default=10) + parser.add_argument('--logdir', type=str, default='log') + parser.add_argument('--render', type=float, default=0.) + parser.add_argument( + '--device', type=str, + default='cuda' if torch.cuda.is_available() else 'cpu') + parser.add_argument('--frames_stack', type=int, default=4) + parser.add_argument('--resume_path', type=str, default=None) + parser.add_argument('--watch', default=False, action='store_true', + help='watch the play of pre-trained policy only') + return parser.parse_args() + + +def make_atari_env(args): + return wrap_deepmind(args.task, frame_stack=args.frames_stack) + + +def make_atari_env_watch(args): + return wrap_deepmind(args.task, frame_stack=args.frames_stack, + episode_life=False, clip_rewards=False) + + +def test_qrdqn(args=get_args()): + env = make_atari_env(args) + args.state_shape = env.observation_space.shape or env.observation_space.n + args.action_shape = env.env.action_space.shape or env.env.action_space.n + # should be N_FRAMES x H x W + print("Observations shape:", args.state_shape) + print("Actions shape:", args.action_shape) + # make environments + train_envs = SubprocVectorEnv([lambda: make_atari_env(args) + for _ in range(args.training_num)]) + test_envs = SubprocVectorEnv([lambda: make_atari_env_watch(args) + for _ in range(args.test_num)]) + # seed + np.random.seed(args.seed) + torch.manual_seed(args.seed) + train_envs.seed(args.seed) + test_envs.seed(args.seed) + # define model + net = QRDQN(*args.state_shape, args.action_shape, + args.num_quantiles, args.device) + optim = torch.optim.Adam(net.parameters(), lr=args.lr) + # define policy + policy = QRDQNPolicy( + net, optim, args.gamma, args.num_quantiles, + args.n_step, target_update_freq=args.target_update_freq + ).to(args.device) + # load a previous policy + if args.resume_path: + policy.load_state_dict(torch.load( + args.resume_path, map_location=args.device + )) + print("Loaded agent from: ", args.resume_path) + # replay buffer: `save_last_obs` and `stack_num` can be removed together + # when you have enough RAM + buffer = ReplayBuffer(args.buffer_size, ignore_obs_next=True, + save_only_last_obs=True, stack_num=args.frames_stack) + # collector + train_collector = Collector(policy, train_envs, buffer) + test_collector = Collector(policy, test_envs) + # log + log_path = os.path.join(args.logdir, args.task, 'qrdqn') + writer = SummaryWriter(log_path) + + def save_fn(policy): + torch.save(policy.state_dict(), os.path.join(log_path, 'policy.pth')) + + def stop_fn(mean_rewards): + if env.env.spec.reward_threshold: + return mean_rewards >= env.spec.reward_threshold + elif 'Pong' in args.task: + return mean_rewards >= 20 + else: + return False + + def train_fn(epoch, env_step): + # nature DQN setting, linear decay in the first 1M steps + if env_step <= 1e6: + eps = args.eps_train - env_step / 1e6 * \ + (args.eps_train - args.eps_train_final) + else: + eps = args.eps_train_final + policy.set_eps(eps) + writer.add_scalar('train/eps', eps, global_step=env_step) + + def test_fn(epoch, env_step): + policy.set_eps(args.eps_test) + + # watch agent's performance + def watch(): + print("Testing agent ...") + policy.eval() + policy.set_eps(args.eps_test) + test_envs.seed(args.seed) + test_collector.reset() + result = test_collector.collect(n_episode=[1] * args.test_num, + render=args.render) + pprint.pprint(result) + + if args.watch: + watch() + exit(0) + + # test train_collector and start filling replay buffer + train_collector.collect(n_step=args.batch_size * 4) + # trainer + result = offpolicy_trainer( + policy, train_collector, test_collector, args.epoch, + args.step_per_epoch, args.collect_per_step, args.test_num, + args.batch_size, train_fn=train_fn, test_fn=test_fn, + stop_fn=stop_fn, save_fn=save_fn, writer=writer, test_in_train=False) + + pprint.pprint(result) + watch() + + +if __name__ == '__main__': + test_qrdqn(get_args()) diff --git a/examples/atari/results/qrdqn/Breakout_rew.PNG b/examples/atari/results/qrdqn/Breakout_rew.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5cc1916e6eb4aa90634d3c31d9f13d023d429114 GIT binary patch literal 63893 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 literal 0 HcmV?d00001 diff --git a/examples/atari/results/qrdqn/MsPacman_rew.PNG b/examples/atari/results/qrdqn/MsPacman_rew.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0afd25787ca5feee219d86a4be0caf068bf70167 GIT binary patch literal 54332 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 Kikb2kz5fpb@q$eN literal 0 HcmV?d00001 diff --git a/examples/atari/results/qrdqn/Pong_rew.PNG b/examples/atari/results/qrdqn/Pong_rew.PNG new file mode 100644 index 0000000000000000000000000000000000000000..30a02375eaab9c4041349ac98b28a09851dba39b GIT binary patch literal 38204 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 tu1;lCYbnG(;F*AjU(#C7oxqbx)2Zvlk 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 B<2V2S literal 0 HcmV?d00001 diff --git a/test/base/test_utils.py b/test/base/test_utils.py index e947571fc..ffdb8e38c 100644 --- a/test/base/test_utils.py +++ b/test/base/test_utils.py @@ -4,7 +4,7 @@ from tianshou.utils import MovAvg from tianshou.utils import SummaryWriter from tianshou.utils.net.common import Net -from tianshou.utils.net.discrete import DQN, C51 +from tianshou.utils.net.discrete import DQN, C51, QRDQN from tianshou.exploration import GaussianNoise, OUNoise from tianshou.utils.net.continuous import RecurrentActorProb, RecurrentCritic @@ -65,6 +65,10 @@ def test_net(): net = C51(*state_shape, action_shape, num_atoms) expect_output_shape = [bsz, *action_shape, num_atoms] assert list(net(data)[0].shape) == expect_output_shape + num_quantiles = 200 + net = QRDQN(*state_shape, action_shape, num_quantiles) + expect_output_shape = [bsz, *action_shape, num_quantiles] + assert list(net(data)[0].shape) == expect_output_shape def test_summary_writer(): diff --git a/test/discrete/test_qrdqn.py b/test/discrete/test_qrdqn.py new file mode 100644 index 000000000..fd22b044a --- /dev/null +++ b/test/discrete/test_qrdqn.py @@ -0,0 +1,133 @@ +import os +import gym +import torch +import pprint +import argparse +import numpy as np +from torch.utils.tensorboard import SummaryWriter + +from tianshou.policy import QRDQNPolicy +from tianshou.env import DummyVectorEnv +from tianshou.utils.net.common import Net +from tianshou.trainer import offpolicy_trainer +from tianshou.data import Collector, ReplayBuffer, PrioritizedReplayBuffer + + +def get_args(): + parser = argparse.ArgumentParser() + parser.add_argument('--task', type=str, default='CartPole-v0') + parser.add_argument('--seed', type=int, default=1626) + parser.add_argument('--eps-test', type=float, default=0.05) + parser.add_argument('--eps-train', type=float, default=0.1) + parser.add_argument('--buffer-size', type=int, default=20000) + parser.add_argument('--lr', type=float, default=1e-3) + parser.add_argument('--gamma', type=float, default=0.9) + parser.add_argument('--num-quantiles', type=int, default=200) + parser.add_argument('--n-step', type=int, default=3) + parser.add_argument('--target-update-freq', type=int, default=320) + parser.add_argument('--epoch', type=int, default=10) + parser.add_argument('--step-per-epoch', type=int, default=1000) + parser.add_argument('--collect-per-step', type=int, default=10) + parser.add_argument('--batch-size', type=int, default=64) + parser.add_argument('--layer-num', type=int, default=3) + parser.add_argument('--training-num', type=int, default=8) + parser.add_argument('--test-num', type=int, default=100) + parser.add_argument('--logdir', type=str, default='log') + parser.add_argument('--render', type=float, default=0.) + parser.add_argument('--prioritized-replay', type=int, default=0) + parser.add_argument('--alpha', type=float, default=0.6) + parser.add_argument('--beta', type=float, default=0.4) + parser.add_argument( + '--device', type=str, + default='cuda' if torch.cuda.is_available() else 'cpu') + args = parser.parse_known_args()[0] + return args + + +def test_qrdqn(args=get_args()): + env = gym.make(args.task) + args.state_shape = env.observation_space.shape or env.observation_space.n + args.action_shape = env.action_space.shape or env.action_space.n + # train_envs = gym.make(args.task) + # you can also use tianshou.env.SubprocVectorEnv + train_envs = DummyVectorEnv( + [lambda: gym.make(args.task) for _ in range(args.training_num)]) + # test_envs = gym.make(args.task) + test_envs = DummyVectorEnv( + [lambda: gym.make(args.task) for _ in range(args.test_num)]) + # seed + np.random.seed(args.seed) + torch.manual_seed(args.seed) + train_envs.seed(args.seed) + test_envs.seed(args.seed) + # model + net = Net(args.layer_num, args.state_shape, args.action_shape, args.device, + softmax=False, num_atoms=args.num_quantiles) + optim = torch.optim.Adam(net.parameters(), lr=args.lr) + policy = QRDQNPolicy( + net, optim, args.gamma, args.num_quantiles, + args.n_step, target_update_freq=args.target_update_freq + ).to(args.device) + # buffer + if args.prioritized_replay > 0: + buf = PrioritizedReplayBuffer( + args.buffer_size, alpha=args.alpha, beta=args.beta) + else: + buf = ReplayBuffer(args.buffer_size) + # collector + train_collector = Collector(policy, train_envs, buf) + test_collector = Collector(policy, test_envs) + # policy.set_eps(1) + train_collector.collect(n_step=args.batch_size) + # log + log_path = os.path.join(args.logdir, args.task, 'qrdqn') + writer = SummaryWriter(log_path) + + def save_fn(policy): + torch.save(policy.state_dict(), os.path.join(log_path, 'policy.pth')) + + def stop_fn(mean_rewards): + return mean_rewards >= env.spec.reward_threshold + + def train_fn(epoch, env_step): + # eps annnealing, just a demo + if env_step <= 10000: + policy.set_eps(args.eps_train) + elif env_step <= 50000: + eps = args.eps_train - (env_step - 10000) / \ + 40000 * (0.9 * args.eps_train) + policy.set_eps(eps) + else: + policy.set_eps(0.1 * args.eps_train) + + def test_fn(epoch, env_step): + policy.set_eps(args.eps_test) + + # trainer + result = offpolicy_trainer( + policy, train_collector, test_collector, args.epoch, + args.step_per_epoch, args.collect_per_step, args.test_num, + args.batch_size, train_fn=train_fn, test_fn=test_fn, + stop_fn=stop_fn, save_fn=save_fn, writer=writer) + + assert stop_fn(result['best_reward']) + if __name__ == '__main__': + pprint.pprint(result) + # Let's watch its performance! + env = gym.make(args.task) + policy.eval() + policy.set_eps(args.eps_test) + collector = Collector(policy, env) + result = collector.collect(n_episode=1, render=args.render) + print(f'Final reward: {result["rew"]}, length: {result["len"]}') + + +def test_pqrdqn(args=get_args()): + args.prioritized_replay = 1 + args.gamma = .95 + args.seed = 1 + test_qrdqn(args) + + +if __name__ == '__main__': + test_pqrdqn(get_args()) diff --git a/tianshou/policy/__init__.py b/tianshou/policy/__init__.py index 9626d97eb..1b28a6a04 100644 --- a/tianshou/policy/__init__.py +++ b/tianshou/policy/__init__.py @@ -3,6 +3,7 @@ from tianshou.policy.imitation.base import ImitationPolicy from tianshou.policy.modelfree.dqn import DQNPolicy from tianshou.policy.modelfree.c51 import C51Policy +from tianshou.policy.modelfree.qrdqn import QRDQNPolicy from tianshou.policy.modelfree.pg import PGPolicy from tianshou.policy.modelfree.a2c import A2CPolicy from tianshou.policy.modelfree.ddpg import DDPGPolicy @@ -20,6 +21,7 @@ "ImitationPolicy", "DQNPolicy", "C51Policy", + "QRDQNPolicy", "PGPolicy", "A2CPolicy", "DDPGPolicy", diff --git a/tianshou/policy/base.py b/tianshou/policy/base.py index 6e172dfd7..e8597d53e 100644 --- a/tianshou/policy/base.py +++ b/tianshou/policy/base.py @@ -173,6 +173,17 @@ def update( self.updating = False return result + @staticmethod + def huber( + x: torch.Tensor, + k: int = 1.0 + ) -> torch.Tensor: + """Calculate huber loss element-wisely depending on kappa k. + + See https://en.wikipedia.org/wiki/Huber_loss + """ + return torch.where(x.abs() < k, 0.5 * x.pow(2), k * (x.abs() - 0.5 * k)) + @staticmethod def compute_episodic_return( batch: Batch, diff --git a/tianshou/policy/modelfree/c51.py b/tianshou/policy/modelfree/c51.py index 96cc6801a..803c58fac 100644 --- a/tianshou/policy/modelfree/c51.py +++ b/tianshou/policy/modelfree/c51.py @@ -1,9 +1,9 @@ import torch import numpy as np -from typing import Any, Dict, Union, Optional +from typing import Any, Dict from tianshou.policy import DQNPolicy -from tianshou.data import Batch, ReplayBuffer, to_numpy +from tianshou.data import Batch, ReplayBuffer class C51Policy(DQNPolicy): @@ -63,46 +63,10 @@ def _target_q( ) -> torch.Tensor: return self.support.repeat(len(indice), 1) # shape: [bsz, num_atoms] - def forward( - self, - batch: Batch, - state: Optional[Union[dict, Batch, np.ndarray]] = None, - model: str = "model", - input: str = "obs", - **kwargs: Any, - ) -> Batch: - """Compute action over the given batch data. - - :return: A :class:`~tianshou.data.Batch` which has 2 keys: - - * ``act`` the action. - * ``state`` the hidden state. - - .. seealso:: - - Please refer to :meth:`~tianshou.policy.DQNPolicy.forward` for - more detailed explanation. + def compute_q(self, logits: torch.Tensor) -> torch.Tensor: + """Compute the q value based on the network's raw output logits. """ - model = getattr(self, model) - obs = batch[input] - obs_ = obs.obs if hasattr(obs, "obs") else obs - dist, h = model(obs_, state=state, info=batch.info) - q = (dist * self.support).sum(2) - act: np.ndarray = to_numpy(q.max(dim=1)[1]) - if hasattr(obs, "mask"): - # some of actions are masked, they cannot be selected - q_: np.ndarray = to_numpy(q) - q_[~obs.mask] = -np.inf - act = q_.argmax(axis=1) - # add eps to act in training or testing phase - if not self.updating and not np.isclose(self.eps, 0.0): - for i in range(len(q)): - if np.random.rand() < self.eps: - q_ = np.random.rand(*q[i].shape) - if hasattr(obs, "mask"): - q_[~obs.mask[i]] = -np.inf - act[i] = q_.argmax() - return Batch(logits=dist, act=act, state=h) + return (logits * self.support).sum(2) def _target_dist(self, batch: Batch) -> torch.Tensor: if self._target: diff --git a/tianshou/policy/modelfree/dqn.py b/tianshou/policy/modelfree/dqn.py index 91cca6139..9787f56ef 100644 --- a/tianshou/policy/modelfree/dqn.py +++ b/tianshou/policy/modelfree/dqn.py @@ -104,6 +104,11 @@ def process_fn( self._gamma, self._n_step, self._rew_norm) return batch + def compute_q(self, logits: torch.Tensor) -> torch.Tensor: + """Compute the q value based on the network's raw output logits. + """ + return logits + def forward( self, batch: Batch, @@ -144,7 +149,8 @@ def forward( model = getattr(self, model) obs = batch[input] obs_ = obs.obs if hasattr(obs, "obs") else obs - q, h = model(obs_, state=state, info=batch.info) + logits, h = model(obs_, state=state, info=batch.info) + q = self.compute_q(logits) act: np.ndarray = to_numpy(q.max(dim=1)[1]) if hasattr(obs, "mask"): # some of actions are masked, they cannot be selected @@ -159,7 +165,7 @@ def forward( if hasattr(obs, "mask"): q_[~obs.mask[i]] = -np.inf act[i] = q_.argmax() - return Batch(logits=q, act=act, state=h) + return Batch(logits=logits, act=act, state=h) def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: if self._target and self._cnt % self._freq == 0: diff --git a/tianshou/policy/modelfree/qrdqn.py b/tianshou/policy/modelfree/qrdqn.py new file mode 100644 index 000000000..87ddfd8d4 --- /dev/null +++ b/tianshou/policy/modelfree/qrdqn.py @@ -0,0 +1,96 @@ +import torch +import numpy as np +from typing import Any, Dict + +from tianshou.policy import DQNPolicy +from tianshou.data import Batch, ReplayBuffer, to_torch_as + + +class QRDQNPolicy(DQNPolicy): + """Implementation of Quantile Regression Deep Q-Network. arXiv:1710.10044. + + :param torch.nn.Module model: a model following the rules in + :class:`~tianshou.policy.BasePolicy`. (s -> logits) + :param torch.optim.Optimizer optim: a torch.optim for optimizing the model. + :param float discount_factor: in [0, 1]. + :param int num_quantiles: the number of quantile midpoints in the inverse + cumulative distribution function of the value, defaults to 200. + :param int estimation_step: greater than 1, the number of steps to look + ahead. + :param int target_update_freq: the target network update frequency (0 if + you do not use the target network). + :param bool reward_normalization: normalize the reward to Normal(0, 1), + defaults to False. + + .. seealso:: + + Please refer to :class:`~tianshou.policy.DQNPolicy` for more detailed + explanation. + """ + + def __init__( + self, + model: torch.nn.Module, + optim: torch.optim.Optimizer, + discount_factor: float = 0.99, + num_quantiles: int = 200, + estimation_step: int = 1, + target_update_freq: int = 0, + reward_normalization: bool = False, + **kwargs: Any, + ) -> None: + super().__init__(model, optim, discount_factor, estimation_step, + target_update_freq, reward_normalization, **kwargs) + assert num_quantiles > 1, "num_quantiles should be greater than 1" + self._num_quantiles = num_quantiles + self.tau = torch.linspace(0, 1, self._num_quantiles + 1) + self.tau_hat = torch.nn.Parameter( + (self.tau[:-1] + self.tau[1:]) / 2, + requires_grad=False, + ) + + def _target_q( + self, buffer: ReplayBuffer, indice: np.ndarray + ) -> torch.Tensor: + batch = buffer[indice] # batch.obs_next: s_{t+n} + if self._target: + a = self(batch, input="obs_next").act + next_dist = self( + batch, model="model_old", input="obs_next" + ).logits + else: + next_b = self(batch, input="obs_next") + a = next_b.act + next_dist = next_b.logits + next_dist = next_dist[np.arange(len(a)), a, :] + return next_dist # shape: [bsz, num_quantiles] + + def compute_q(self, logits: torch.Tensor) -> torch.Tensor: + """Compute the q value based on the network's raw output logits. + """ + return logits.mean(2) + + def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: + if self._target and self._cnt % self._freq == 0: + self.sync_weight() + self.optim.zero_grad() + weight = batch.pop("weight", 1.0) + curr_dist = self(batch).logits + act = batch.act + curr_dist = curr_dist[np.arange(len(act)), act, :] + target_dist = to_torch_as(batch.returns, curr_dist) + u = target_dist.unsqueeze(1) - curr_dist.unsqueeze(2) + huber_loss = ( + self.huber(u) * (self.tau_hat.view(1, -1, 1) - + u.detach().le(0.).float()).abs() + ).sum(-1).mean(1) + loss = (huber_loss * weight).mean() + # ref: https://github.com/ku2482/fqf-iqn-qrdqn.pytorch/ + # blob/master/fqf_iqn_qrdqn/agent/qrdqn_agent.py L130 + batch.weight = u.detach().abs().sum(-1).mean(1) # prio-buffer + loss.backward() + self.optim.step() + self._cnt += 1 + return {"loss": loss.item()} + + diff --git a/tianshou/utils/net/discrete.py b/tianshou/utils/net/discrete.py index bff229cd7..1a1c0599c 100644 --- a/tianshou/utils/net/discrete.py +++ b/tianshou/utils/net/discrete.py @@ -163,3 +163,36 @@ def forward( x = x.view(-1, self.num_atoms).softmax(dim=-1) x = x.view(-1, np.prod(self.action_shape), self.num_atoms) return x, state + + +class QRDQN(DQN): + """Reference: Distributional Reinforcement Learning with Quantile Regression. + + For advanced usage (how to customize the network), please refer to + :ref:`build_the_network`. + """ + + def __init__( + self, + c: int, + h: int, + w: int, + action_shape: Sequence[int], + num_quantiles: int = 200, + device: Union[str, int, torch.device] = "cpu", + ) -> None: + super().__init__(c, h, w, [np.prod(action_shape) * num_quantiles], device) + self.action_shape = action_shape + self.num_quantiles = num_quantiles + + def forward( + self, + x: Union[np.ndarray, torch.Tensor], + state: Optional[Any] = None, + info: Dict[str, Any] = {}, + ) -> Tuple[torch.Tensor, Any]: + r"""Mapping: x -> Z(x, \*).""" + x, state = super().forward(x) + x = x.view(-1, self.num_quantiles) + x = x.view(-1, np.prod(self.action_shape), self.num_quantiles) + return x, state From c03c5a1bb2f26a84e13f771f2e39f61a8ffc9c68 Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:13:01 +0800 Subject: [PATCH 02/20] fix PEP8 --- tianshou/policy/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tianshou/policy/base.py b/tianshou/policy/base.py index e8597d53e..5088d9823 100644 --- a/tianshou/policy/base.py +++ b/tianshou/policy/base.py @@ -182,7 +182,8 @@ def huber( See https://en.wikipedia.org/wiki/Huber_loss """ - return torch.where(x.abs() < k, 0.5 * x.pow(2), k * (x.abs() - 0.5 * k)) + return torch.where( + x.abs() < k, 0.5 * x.pow(2), k * (x.abs() - 0.5 * k)) @staticmethod def compute_episodic_return( From 137fa5591929fed9f5667e6047f5ddbbce66994d Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:13:48 +0800 Subject: [PATCH 03/20] fix PEP8 --- tianshou/utils/net/discrete.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tianshou/utils/net/discrete.py b/tianshou/utils/net/discrete.py index 1a1c0599c..7750385fc 100644 --- a/tianshou/utils/net/discrete.py +++ b/tianshou/utils/net/discrete.py @@ -181,7 +181,8 @@ def __init__( num_quantiles: int = 200, device: Union[str, int, torch.device] = "cpu", ) -> None: - super().__init__(c, h, w, [np.prod(action_shape) * num_quantiles], device) + super().__init__(c, h, w, + [np.prod(action_shape) * num_quantiles], device) self.action_shape = action_shape self.num_quantiles = num_quantiles From 00315be3840e10f92af3300a8eec589ec31a878f Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:17:08 +0800 Subject: [PATCH 04/20] fix PEP8 --- tianshou/utils/net/discrete.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tianshou/utils/net/discrete.py b/tianshou/utils/net/discrete.py index 7750385fc..f9d2b263b 100644 --- a/tianshou/utils/net/discrete.py +++ b/tianshou/utils/net/discrete.py @@ -181,7 +181,7 @@ def __init__( num_quantiles: int = 200, device: Union[str, int, torch.device] = "cpu", ) -> None: - super().__init__(c, h, w, + super().__init__(c, h, w, [np.prod(action_shape) * num_quantiles], device) self.action_shape = action_shape self.num_quantiles = num_quantiles From ab9fe0e04cfb331590b3fee8f495c55487fa274f Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:21:49 +0800 Subject: [PATCH 05/20] fix PEP8 --- tianshou/policy/modelfree/qrdqn.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tianshou/policy/modelfree/qrdqn.py b/tianshou/policy/modelfree/qrdqn.py index 87ddfd8d4..aadc71917 100644 --- a/tianshou/policy/modelfree/qrdqn.py +++ b/tianshou/policy/modelfree/qrdqn.py @@ -92,5 +92,3 @@ def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: self.optim.step() self._cnt += 1 return {"loss": loss.item()} - - From 6afd8c7a445d6b2714f7b05e10844e2b48a4dd6b Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:26:36 +0800 Subject: [PATCH 06/20] fix PEP8 --- tianshou/policy/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tianshou/policy/base.py b/tianshou/policy/base.py index 5088d9823..1da295bf6 100644 --- a/tianshou/policy/base.py +++ b/tianshou/policy/base.py @@ -176,7 +176,7 @@ def update( @staticmethod def huber( x: torch.Tensor, - k: int = 1.0 + k: float = 1.0 ) -> torch.Tensor: """Calculate huber loss element-wisely depending on kappa k. From be4de1089265c832aa5a4bf2c4c7e94b1a445876 Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:33:21 +0800 Subject: [PATCH 07/20] fix PEP8 --- tianshou/policy/modelfree/qrdqn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tianshou/policy/modelfree/qrdqn.py b/tianshou/policy/modelfree/qrdqn.py index aadc71917..7bd5333f6 100644 --- a/tianshou/policy/modelfree/qrdqn.py +++ b/tianshou/policy/modelfree/qrdqn.py @@ -3,7 +3,7 @@ from typing import Any, Dict from tianshou.policy import DQNPolicy -from tianshou.data import Batch, ReplayBuffer, to_torch_as +from tianshou.data import Batch, ReplayBuffer class QRDQNPolicy(DQNPolicy): @@ -78,7 +78,7 @@ def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: curr_dist = self(batch).logits act = batch.act curr_dist = curr_dist[np.arange(len(act)), act, :] - target_dist = to_torch_as(batch.returns, curr_dist) + target_dist = batch.returns u = target_dist.unsqueeze(1) - curr_dist.unsqueeze(2) huber_loss = ( self.huber(u) * (self.tau_hat.view(1, -1, 1) - From 207afacc026badd5a60b6f6c1759b5491651f0e1 Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:38:19 +0800 Subject: [PATCH 08/20] fix --- tianshou/policy/modelfree/dqn.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tianshou/policy/modelfree/dqn.py b/tianshou/policy/modelfree/dqn.py index 9787f56ef..0ff52effa 100644 --- a/tianshou/policy/modelfree/dqn.py +++ b/tianshou/policy/modelfree/dqn.py @@ -105,8 +105,7 @@ def process_fn( return batch def compute_q(self, logits: torch.Tensor) -> torch.Tensor: - """Compute the q value based on the network's raw output logits. - """ + """Compute the q value based on the network's raw output logits.""" return logits def forward( From d57aae48a890b6940b1a6fc8ef59456138f2ba9c Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:39:09 +0800 Subject: [PATCH 09/20] fix PEP8 --- tianshou/policy/modelfree/c51.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tianshou/policy/modelfree/c51.py b/tianshou/policy/modelfree/c51.py index 803c58fac..131b282a6 100644 --- a/tianshou/policy/modelfree/c51.py +++ b/tianshou/policy/modelfree/c51.py @@ -64,8 +64,7 @@ def _target_q( return self.support.repeat(len(indice), 1) # shape: [bsz, num_atoms] def compute_q(self, logits: torch.Tensor) -> torch.Tensor: - """Compute the q value based on the network's raw output logits. - """ + """Compute the q value based on the network's raw output logits.""" return (logits * self.support).sum(2) def _target_dist(self, batch: Batch) -> torch.Tensor: From 5d44d3342a641369237ba6677451bb13028bd454 Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 17:39:43 +0800 Subject: [PATCH 10/20] fix PEP8 --- tianshou/policy/modelfree/qrdqn.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tianshou/policy/modelfree/qrdqn.py b/tianshou/policy/modelfree/qrdqn.py index 7bd5333f6..a36ef5b9c 100644 --- a/tianshou/policy/modelfree/qrdqn.py +++ b/tianshou/policy/modelfree/qrdqn.py @@ -66,8 +66,7 @@ def _target_q( return next_dist # shape: [bsz, num_quantiles] def compute_q(self, logits: torch.Tensor) -> torch.Tensor: - """Compute the q value based on the network's raw output logits. - """ + """Compute the q value based on the network's raw output logits.""" return logits.mean(2) def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: From fb5d8895501858a5360d78d46c8933867cb0fb79 Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Tue, 19 Jan 2021 20:59:41 +0800 Subject: [PATCH 11/20] remove one redundant view operation --- tianshou/utils/net/discrete.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tianshou/utils/net/discrete.py b/tianshou/utils/net/discrete.py index f9d2b263b..56b4acd61 100644 --- a/tianshou/utils/net/discrete.py +++ b/tianshou/utils/net/discrete.py @@ -194,6 +194,5 @@ def forward( ) -> Tuple[torch.Tensor, Any]: r"""Mapping: x -> Z(x, \*).""" x, state = super().forward(x) - x = x.view(-1, self.num_quantiles) x = x.view(-1, np.prod(self.action_shape), self.num_quantiles) return x, state From 216350ed5bd2f980be9b7e6e59ceffff52962d14 Mon Sep 17 00:00:00 2001 From: wizardsheng <45480804+shengxiang19@users.noreply.github.com> Date: Wed, 20 Jan 2021 10:16:43 +0800 Subject: [PATCH 12/20] Fix typing errors --- examples/atari/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/atari/README.md b/examples/atari/README.md index 1dcc4e6a7..495f29af5 100644 --- a/examples/atari/README.md +++ b/examples/atari/README.md @@ -46,7 +46,7 @@ One epoch here is equal to 100,000 env step, 100 epochs stand for 10M. | task | best reward | reward curve | parameters | | --------------------------- | ----------- | ------------------------------------- | ------------------------------------------------------------ | -| PongNoFrameskip-v4 | 20 | ![](results/qrdqn/Pong_rew.png) | `python3 atari_c51.py --task "PongNoFrameskip-v4" --batch-size 64` | -| BreakoutNoFrameskip-v4 | 409.2 | ![](results/qrdqn/Breakout_rew.png) | `python3 atari_c51.py --task "BreakoutNoFrameskip-v4" --n-step 1` | -| QbertNoFrameskip-v4 | 14990 | ![](results/qrdqn/Qbert_rew.png) | `python3 atari_c51.py --task "QbertNoFrameskip-v4"` | -| MsPacmanNoFrameskip-v4 | 2886 | ![](results/qrdqn/MsPacman_rew.png) | `python3 atari_c51.py --task "MsPacmanNoFrameskip-v4"` | +| PongNoFrameskip-v4 | 20 | ![](results/qrdqn/Pong_rew.png) | `python3 atari_qrdqn.py --task "PongNoFrameskip-v4" --batch-size 64` | +| BreakoutNoFrameskip-v4 | 409.2 | ![](results/qrdqn/Breakout_rew.png) | `python3 atari_qrdqn.py --task "BreakoutNoFrameskip-v4" --n-step 1` | +| QbertNoFrameskip-v4 | 14990 | ![](results/qrdqn/Qbert_rew.png) | `python3 atari_qrdqn.py --task "QbertNoFrameskip-v4"` | +| MsPacmanNoFrameskip-v4 | 2886 | ![](results/qrdqn/MsPacman_rew.png) | `python3 atari_qrdqn.py --task "MsPacmanNoFrameskip-v4"` | From 3d4ccdce77bf10b8dd20d34a24f58684c64f3734 Mon Sep 17 00:00:00 2001 From: Trinkle23897 Date: Wed, 20 Jan 2021 17:21:49 +0800 Subject: [PATCH 13/20] fix test --- test/discrete/test_qrdqn.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/test/discrete/test_qrdqn.py b/test/discrete/test_qrdqn.py index fd22b044a..7020df275 100644 --- a/test/discrete/test_qrdqn.py +++ b/test/discrete/test_qrdqn.py @@ -29,12 +29,14 @@ def get_args(): parser.add_argument('--step-per-epoch', type=int, default=1000) parser.add_argument('--collect-per-step', type=int, default=10) parser.add_argument('--batch-size', type=int, default=64) - parser.add_argument('--layer-num', type=int, default=3) + parser.add_argument('--hidden-sizes', type=int, + nargs='*', default=[128, 128, 128, 128]) parser.add_argument('--training-num', type=int, default=8) parser.add_argument('--test-num', type=int, default=100) parser.add_argument('--logdir', type=str, default='log') parser.add_argument('--render', type=float, default=0.) - parser.add_argument('--prioritized-replay', type=int, default=0) + parser.add_argument('--prioritized-replay', + action="store_true", default=False) parser.add_argument('--alpha', type=float, default=0.6) parser.add_argument('--beta', type=float, default=0.4) parser.add_argument( @@ -61,7 +63,8 @@ def test_qrdqn(args=get_args()): train_envs.seed(args.seed) test_envs.seed(args.seed) # model - net = Net(args.layer_num, args.state_shape, args.action_shape, args.device, + net = Net(args.state_shape, args.action_shape, + hidden_sizes=args.hidden_sizes, device=args.device, softmax=False, num_atoms=args.num_quantiles) optim = torch.optim.Adam(net.parameters(), lr=args.lr) policy = QRDQNPolicy( @@ -69,7 +72,7 @@ def test_qrdqn(args=get_args()): args.n_step, target_update_freq=args.target_update_freq ).to(args.device) # buffer - if args.prioritized_replay > 0: + if args.prioritized_replay: buf = PrioritizedReplayBuffer( args.buffer_size, alpha=args.alpha, beta=args.beta) else: @@ -123,7 +126,7 @@ def test_fn(epoch, env_step): def test_pqrdqn(args=get_args()): - args.prioritized_replay = 1 + args.prioritized_replay = True args.gamma = .95 args.seed = 1 test_qrdqn(args) From 748757a6530127f7d31758a3a05daa9c5079033c Mon Sep 17 00:00:00 2001 From: Trinkle23897 Date: Wed, 20 Jan 2021 17:22:38 +0800 Subject: [PATCH 14/20] small tweak --- examples/atari/atari_qrdqn.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/atari/atari_qrdqn.py b/examples/atari/atari_qrdqn.py index a3bea6d1a..08c34733c 100644 --- a/examples/atari/atari_qrdqn.py +++ b/examples/atari/atari_qrdqn.py @@ -38,8 +38,8 @@ def get_args(): parser.add_argument( '--device', type=str, default='cuda' if torch.cuda.is_available() else 'cpu') - parser.add_argument('--frames_stack', type=int, default=4) - parser.add_argument('--resume_path', type=str, default=None) + parser.add_argument('--frames-stack', type=int, default=4) + parser.add_argument('--resume-path', type=str, default=None) parser.add_argument('--watch', default=False, action='store_true', help='watch the play of pre-trained policy only') return parser.parse_args() From 254dc6f34565c1c6f521a0fbce3279bb65c9ca62 Mon Sep 17 00:00:00 2001 From: Trinkle23897 Date: Sun, 24 Jan 2021 09:16:52 +0800 Subject: [PATCH 15/20] update Enduro and SpaceInvader result --- examples/atari/README.md | 3 +++ examples/atari/results/qrdqn/Enduro_rew.png | Bin 0 -> 68430 bytes .../atari/results/qrdqn/SpaceInvader_rew.png | Bin 0 -> 56322 bytes 3 files changed, 3 insertions(+) create mode 100644 examples/atari/results/qrdqn/Enduro_rew.png create mode 100644 examples/atari/results/qrdqn/SpaceInvader_rew.png diff --git a/examples/atari/README.md b/examples/atari/README.md index b0e1264a1..9946f247f 100644 --- a/examples/atari/README.md +++ b/examples/atari/README.md @@ -48,8 +48,11 @@ One epoch here is equal to 100,000 env step, 100 epochs stand for 10M. | --------------------------- | ----------- | ------------------------------------- | ------------------------------------------------------------ | | PongNoFrameskip-v4 | 20 | ![](results/qrdqn/Pong_rew.png) | `python3 atari_qrdqn.py --task "PongNoFrameskip-v4" --batch-size 64` | | BreakoutNoFrameskip-v4 | 409.2 | ![](results/qrdqn/Breakout_rew.png) | `python3 atari_qrdqn.py --task "BreakoutNoFrameskip-v4" --n-step 1` | +| EnduroNoFrameskip-v4 | 1055.9 | ![](results/qrdqn/Enduro_rew.png) | `python3 atari_qrdqn.py --task "EnduroNoFrameskip-v4"` | | QbertNoFrameskip-v4 | 14990 | ![](results/qrdqn/Qbert_rew.png) | `python3 atari_qrdqn.py --task "QbertNoFrameskip-v4"` | | MsPacmanNoFrameskip-v4 | 2886 | ![](results/qrdqn/MsPacman_rew.png) | `python3 atari_qrdqn.py --task "MsPacmanNoFrameskip-v4"` | +| SeaquestNoFrameskip-v4 | TODO | ![](results/qrdqn/Seaquest_rew.png) | `python3 atari_qrdqn.py --task "SeaquestNoFrameskip-v4"` | +| SpaceInvadersNoFrameskip-v4 | 938 | ![](results/qrdqn/SpaceInvader_rew.png) | `python3 atari_qrdqn.py --task "SpaceInvadersNoFrameskip-v4"` | # BCQ diff --git a/examples/atari/results/qrdqn/Enduro_rew.png b/examples/atari/results/qrdqn/Enduro_rew.png new file mode 100644 index 0000000000000000000000000000000000000000..640e60d2d7cf0f0fe39b9329174e3aeacea9e48d GIT binary patch literal 68430 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 H4B!1f03jNg literal 0 HcmV?d00001 diff --git a/examples/atari/results/qrdqn/SpaceInvader_rew.png b/examples/atari/results/qrdqn/SpaceInvader_rew.png new file mode 100644 index 0000000000000000000000000000000000000000..4751768fba2a87997c0acf6953432d6ea8593e1e GIT binary patch literal 56322 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 AkpKVy literal 0 HcmV?d00001 From 22028fdef2ca18a9f658859ffb7bf2e6bd75b5a6 Mon Sep 17 00:00:00 2001 From: Trinkle23897 Date: Sun, 24 Jan 2021 20:07:14 +0800 Subject: [PATCH 16/20] update seaquest result --- examples/atari/README.md | 2 +- examples/atari/results/qrdqn/Seaquest_rew.png | Bin 0 -> 58875 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 examples/atari/results/qrdqn/Seaquest_rew.png diff --git a/examples/atari/README.md b/examples/atari/README.md index 9946f247f..281f72ea1 100644 --- a/examples/atari/README.md +++ b/examples/atari/README.md @@ -51,7 +51,7 @@ One epoch here is equal to 100,000 env step, 100 epochs stand for 10M. | EnduroNoFrameskip-v4 | 1055.9 | ![](results/qrdqn/Enduro_rew.png) | `python3 atari_qrdqn.py --task "EnduroNoFrameskip-v4"` | | QbertNoFrameskip-v4 | 14990 | ![](results/qrdqn/Qbert_rew.png) | `python3 atari_qrdqn.py --task "QbertNoFrameskip-v4"` | | MsPacmanNoFrameskip-v4 | 2886 | ![](results/qrdqn/MsPacman_rew.png) | `python3 atari_qrdqn.py --task "MsPacmanNoFrameskip-v4"` | -| SeaquestNoFrameskip-v4 | TODO | ![](results/qrdqn/Seaquest_rew.png) | `python3 atari_qrdqn.py --task "SeaquestNoFrameskip-v4"` | +| SeaquestNoFrameskip-v4 | 5676 | ![](results/qrdqn/Seaquest_rew.png) | `python3 atari_qrdqn.py --task "SeaquestNoFrameskip-v4"` | | SpaceInvadersNoFrameskip-v4 | 938 | ![](results/qrdqn/SpaceInvader_rew.png) | `python3 atari_qrdqn.py --task "SpaceInvadersNoFrameskip-v4"` | # BCQ diff --git a/examples/atari/results/qrdqn/Seaquest_rew.png b/examples/atari/results/qrdqn/Seaquest_rew.png new file mode 100644 index 0000000000000000000000000000000000000000..7e9d47af2e1a8e14cadab38b90dc7259b75f22dd GIT binary patch literal 58875 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

^(az$!3DMpus-4JR&#QA*dr=3H3yKy{!aSd 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 nvT{Ep2fei&G?$&Y)oBY7FVm?#mg@f1$X7 Date: Wed, 27 Jan 2021 17:00:25 +0800 Subject: [PATCH 17/20] move 'with torch.no_grad():' from _target_q to BasePolicy --- examples/atari/atari_network.py | 31 +++++++---------------- tianshou/policy/base.py | 3 ++- tianshou/policy/imitation/discrete_bcq.py | 7 +++-- tianshou/policy/modelfree/c51.py | 2 +- tianshou/policy/modelfree/ddpg.py | 7 +++-- tianshou/policy/modelfree/discrete_sac.py | 15 +++++------ tianshou/policy/modelfree/dqn.py | 21 ++++++++------- tianshou/policy/modelfree/qrdqn.py | 2 +- tianshou/policy/modelfree/sac.py | 13 +++++----- tianshou/policy/modelfree/td3.py | 21 ++++++++------- 10 files changed, 52 insertions(+), 70 deletions(-) diff --git a/examples/atari/atari_network.py b/examples/atari/atari_network.py index eccc339d4..9232c6191 100644 --- a/examples/atari/atari_network.py +++ b/examples/atari/atari_network.py @@ -5,11 +5,7 @@ class DQN(nn.Module): - """Reference: Human-level control through deep reinforcement learning. - - For advanced usage (how to customize the network), please refer to - :ref:`build_the_network`. - """ + """Reference: Human-level control through deep reinforcement learning.""" def __init__( self, @@ -49,11 +45,7 @@ def forward( class C51(DQN): - """Reference: A distributional perspective on reinforcement learning. - - For advanced usage (how to customize the network), please refer to - :ref:`build_the_network`. - """ + """Reference: A distributional perspective on reinforcement learning.""" def __init__( self, @@ -64,8 +56,8 @@ def __init__( num_atoms: int = 51, device: Union[str, int, torch.device] = "cpu", ) -> None: - super().__init__(c, h, w, [np.prod(action_shape) * num_atoms], device) - self.action_shape = action_shape + self.action_num = np.prod(action_shape) + super().__init__(c, h, w, [self.action_num * num_atoms], device) self.num_atoms = num_atoms def forward( @@ -77,17 +69,13 @@ def forward( r"""Mapping: x -> Z(x, \*).""" x, state = super().forward(x) x = x.view(-1, self.num_atoms).softmax(dim=-1) - x = x.view(-1, np.prod(self.action_shape), self.num_atoms) + x = x.view(-1, self.action_num, self.num_atoms) return x, state class QRDQN(DQN): """Reference: Distributional Reinforcement Learning with Quantile \ - Regression. - - For advanced usage (how to customize the network), please refer to - :ref:`build_the_network`. - """ + Regression.""" def __init__( self, @@ -98,9 +86,8 @@ def __init__( num_quantiles: int = 200, device: Union[str, int, torch.device] = "cpu", ) -> None: - super().__init__(c, h, w, - [np.prod(action_shape) * num_quantiles], device) - self.action_shape = action_shape + self.action_num = np.prod(action_shape) + super().__init__(c, h, w, [self.action_num * num_quantiles], device) self.num_quantiles = num_quantiles def forward( @@ -111,5 +98,5 @@ def forward( ) -> Tuple[torch.Tensor, Any]: r"""Mapping: x -> Z(x, \*).""" x, state = super().forward(x) - x = x.view(-1, np.prod(self.action_shape), self.num_quantiles) + x = x.view(-1, self.action_num, self.num_quantiles) return x, state diff --git a/tianshou/policy/base.py b/tianshou/policy/base.py index 1da295bf6..1090b32b4 100644 --- a/tianshou/policy/base.py +++ b/tianshou/policy/base.py @@ -269,7 +269,8 @@ def compute_nstep_return( mean, std = 0.0, 1.0 buf_len = len(buffer) terminal = (indice + n_step - 1) % buf_len - target_q_torch = target_q_fn(buffer, terminal) # (bsz, ?) + with torch.no_grad(): + target_q_torch = target_q_fn(buffer, terminal) # (bsz, ?) target_q = to_numpy(target_q_torch) target_q = _nstep_return(rew, buffer.done, target_q, indice, diff --git a/tianshou/policy/imitation/discrete_bcq.py b/tianshou/policy/imitation/discrete_bcq.py index faae34aaf..688a9901d 100644 --- a/tianshou/policy/imitation/discrete_bcq.py +++ b/tianshou/policy/imitation/discrete_bcq.py @@ -74,10 +74,9 @@ def _target_q( ) -> torch.Tensor: batch = buffer[indice] # batch.obs_next: s_{t+n} # target_Q = Q_old(s_, argmax(Q_new(s_, *))) - with torch.no_grad(): - act = self(batch, input="obs_next", eps=0.0).act - target_q, _ = self.model_old(batch.obs_next) - target_q = target_q[np.arange(len(act)), act] + act = self(batch, input="obs_next", eps=0.0).act + target_q, _ = self.model_old(batch.obs_next) + target_q = target_q[np.arange(len(act)), act] return target_q def forward( # type: ignore diff --git a/tianshou/policy/modelfree/c51.py b/tianshou/policy/modelfree/c51.py index 75b023329..b0e94c616 100644 --- a/tianshou/policy/modelfree/c51.py +++ b/tianshou/policy/modelfree/c51.py @@ -63,7 +63,7 @@ def _target_q( ) -> torch.Tensor: return self.support.repeat(len(indice), 1) # shape: [bsz, num_atoms] - def compute_q(self, logits: torch.Tensor) -> torch.Tensor: + def compute_q_value(self, logits: torch.Tensor) -> torch.Tensor: """Compute the q value based on the network's raw output logits.""" return (logits * self.support).sum(2) diff --git a/tianshou/policy/modelfree/ddpg.py b/tianshou/policy/modelfree/ddpg.py index ab28b6b7d..1ac293c88 100644 --- a/tianshou/policy/modelfree/ddpg.py +++ b/tianshou/policy/modelfree/ddpg.py @@ -102,10 +102,9 @@ def _target_q( self, buffer: ReplayBuffer, indice: np.ndarray ) -> torch.Tensor: batch = buffer[indice] # batch.obs_next: s_{t+n} - with torch.no_grad(): - target_q = self.critic_old( - batch.obs_next, - self(batch, model='actor_old', input='obs_next').act) + target_q = self.critic_old( + batch.obs_next, + self(batch, model='actor_old', input='obs_next').act) return target_q def process_fn( diff --git a/tianshou/policy/modelfree/discrete_sac.py b/tianshou/policy/modelfree/discrete_sac.py index f71b18b54..4db2dc9dc 100644 --- a/tianshou/policy/modelfree/discrete_sac.py +++ b/tianshou/policy/modelfree/discrete_sac.py @@ -78,14 +78,13 @@ def _target_q( self, buffer: ReplayBuffer, indice: np.ndarray ) -> torch.Tensor: batch = buffer[indice] # batch.obs: s_{t+n} - with torch.no_grad(): - obs_next_result = self(batch, input="obs_next") - dist = obs_next_result.dist - target_q = dist.probs * torch.min( - self.critic1_old(batch.obs_next), - self.critic2_old(batch.obs_next), - ) - target_q = target_q.sum(dim=-1) + self._alpha * dist.entropy() + obs_next_result = self(batch, input="obs_next") + dist = obs_next_result.dist + target_q = dist.probs * torch.min( + self.critic1_old(batch.obs_next), + self.critic2_old(batch.obs_next), + ) + target_q = target_q.sum(dim=-1) + self._alpha * dist.entropy() return target_q def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: diff --git a/tianshou/policy/modelfree/dqn.py b/tianshou/policy/modelfree/dqn.py index 3f1a1f697..54397915c 100644 --- a/tianshou/policy/modelfree/dqn.py +++ b/tianshou/policy/modelfree/dqn.py @@ -79,15 +79,14 @@ def _target_q( ) -> torch.Tensor: batch = buffer[indice] # batch.obs_next: s_{t+n} # target_Q = Q_old(s_, argmax(Q_new(s_, *))) - with torch.no_grad(): - if self._target: - a = self(batch, input="obs_next").act - target_q = self( - batch, model="model_old", input="obs_next" - ).logits - target_q = target_q[np.arange(len(a)), a] - else: - target_q = self(batch, input="obs_next").logits.max(dim=1)[0] + if self._target: + a = self(batch, input="obs_next").act + target_q = self( + batch, model="model_old", input="obs_next" + ).logits + target_q = target_q[np.arange(len(a)), a] + else: + target_q = self(batch, input="obs_next").logits.max(dim=1)[0] return target_q def process_fn( @@ -103,7 +102,7 @@ def process_fn( self._gamma, self._n_step, self._rew_norm) return batch - def compute_q(self, logits: torch.Tensor) -> torch.Tensor: + def compute_q_value(self, logits: torch.Tensor) -> torch.Tensor: """Compute the q value based on the network's raw output logits.""" return logits @@ -148,7 +147,7 @@ def forward( obs = batch[input] obs_ = obs.obs if hasattr(obs, "obs") else obs logits, h = model(obs_, state=state, info=batch.info) - q = self.compute_q(logits) + q = self.compute_q_value(logits) act: np.ndarray = to_numpy(q.max(dim=1)[1]) if hasattr(obs, "mask"): # some of actions are masked, they cannot be selected diff --git a/tianshou/policy/modelfree/qrdqn.py b/tianshou/policy/modelfree/qrdqn.py index dbe58f697..392d8270b 100644 --- a/tianshou/policy/modelfree/qrdqn.py +++ b/tianshou/policy/modelfree/qrdqn.py @@ -65,7 +65,7 @@ def _target_q( next_dist = next_dist[np.arange(len(a)), a, :] return next_dist # shape: [bsz, num_quantiles] - def compute_q(self, logits: torch.Tensor) -> torch.Tensor: + def compute_q_value(self, logits: torch.Tensor) -> torch.Tensor: """Compute the q value based on the network's raw output logits.""" return logits.mean(2) diff --git a/tianshou/policy/modelfree/sac.py b/tianshou/policy/modelfree/sac.py index 983df7158..fbdd12297 100644 --- a/tianshou/policy/modelfree/sac.py +++ b/tianshou/policy/modelfree/sac.py @@ -140,13 +140,12 @@ def _target_q( self, buffer: ReplayBuffer, indice: np.ndarray ) -> torch.Tensor: batch = buffer[indice] # batch.obs: s_{t+n} - with torch.no_grad(): - obs_next_result = self(batch, input='obs_next') - a_ = obs_next_result.act - target_q = torch.min( - self.critic1_old(batch.obs_next, a_), - self.critic2_old(batch.obs_next, a_), - ) - self._alpha * obs_next_result.log_prob + obs_next_result = self(batch, input='obs_next') + a_ = obs_next_result.act + target_q = torch.min( + self.critic1_old(batch.obs_next, a_), + self.critic2_old(batch.obs_next, a_), + ) - self._alpha * obs_next_result.log_prob return target_q def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: diff --git a/tianshou/policy/modelfree/td3.py b/tianshou/policy/modelfree/td3.py index d7cf9c09a..f79c2a0d5 100644 --- a/tianshou/policy/modelfree/td3.py +++ b/tianshou/policy/modelfree/td3.py @@ -104,17 +104,16 @@ def _target_q( self, buffer: ReplayBuffer, indice: np.ndarray ) -> torch.Tensor: batch = buffer[indice] # batch.obs: s_{t+n} - with torch.no_grad(): - a_ = self(batch, model="actor_old", input="obs_next").act - dev = a_.device - noise = torch.randn(size=a_.shape, device=dev) * self._policy_noise - if self._noise_clip > 0.0: - noise = noise.clamp(-self._noise_clip, self._noise_clip) - a_ += noise - a_ = a_.clamp(self._range[0], self._range[1]) - target_q = torch.min( - self.critic1_old(batch.obs_next, a_), - self.critic2_old(batch.obs_next, a_)) + a_ = self(batch, model="actor_old", input="obs_next").act + dev = a_.device + noise = torch.randn(size=a_.shape, device=dev) * self._policy_noise + if self._noise_clip > 0.0: + noise = noise.clamp(-self._noise_clip, self._noise_clip) + a_ += noise + a_ = a_.clamp(self._range[0], self._range[1]) + target_q = torch.min( + self.critic1_old(batch.obs_next, a_), + self.critic2_old(batch.obs_next, a_)) return target_q def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: From 8c3f7cb335781ca0e69cae576d5bba55268d1b7a Mon Sep 17 00:00:00 2001 From: Trinkle23897 Date: Wed, 27 Jan 2021 17:12:07 +0800 Subject: [PATCH 18/20] move huber loss to utils/loss --- tianshou/policy/base.py | 12 ------------ tianshou/policy/modelfree/qrdqn.py | 11 +++++------ tianshou/utils/loss.py | 9 +++++++++ 3 files changed, 14 insertions(+), 18 deletions(-) create mode 100644 tianshou/utils/loss.py diff --git a/tianshou/policy/base.py b/tianshou/policy/base.py index 1090b32b4..99e16544b 100644 --- a/tianshou/policy/base.py +++ b/tianshou/policy/base.py @@ -173,18 +173,6 @@ def update( self.updating = False return result - @staticmethod - def huber( - x: torch.Tensor, - k: float = 1.0 - ) -> torch.Tensor: - """Calculate huber loss element-wisely depending on kappa k. - - See https://en.wikipedia.org/wiki/Huber_loss - """ - return torch.where( - x.abs() < k, 0.5 * x.pow(2), k * (x.abs() - 0.5 * k)) - @staticmethod def compute_episodic_return( batch: Batch, diff --git a/tianshou/policy/modelfree/qrdqn.py b/tianshou/policy/modelfree/qrdqn.py index 392d8270b..ab428a81b 100644 --- a/tianshou/policy/modelfree/qrdqn.py +++ b/tianshou/policy/modelfree/qrdqn.py @@ -4,6 +4,7 @@ from tianshou.policy import DQNPolicy from tianshou.data import Batch, ReplayBuffer +from tianshou.utils.loss import huber_loss as huber class QRDQNPolicy(DQNPolicy): @@ -43,11 +44,9 @@ def __init__( target_update_freq, reward_normalization, **kwargs) assert num_quantiles > 1, "num_quantiles should be greater than 1" self._num_quantiles = num_quantiles - self.tau = torch.linspace(0, 1, self._num_quantiles + 1) + tau = torch.linspace(0, 1, self._num_quantiles + 1) self.tau_hat = torch.nn.Parameter( - (self.tau[:-1] + self.tau[1:]) / 2, - requires_grad=False, - ) + (tau[:-1] + tau[1:]) / 2, requires_grad=False) def _target_q( self, buffer: ReplayBuffer, indice: np.ndarray @@ -80,8 +79,8 @@ def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: target_dist = batch.returns u = target_dist.unsqueeze(1) - curr_dist.unsqueeze(2) huber_loss = ( - self.huber(u) * (self.tau_hat.view(1, -1, 1) - - u.detach().le(0.).float()).abs() + huber(u) * (self.tau_hat.view(1, -1, 1) - + u.detach().le(0.).float()).abs() ).sum(-1).mean(1) loss = (huber_loss * weight).mean() # ref: https://github.com/ku2482/fqf-iqn-qrdqn.pytorch/ diff --git a/tianshou/utils/loss.py b/tianshou/utils/loss.py new file mode 100644 index 000000000..0a3aae0ec --- /dev/null +++ b/tianshou/utils/loss.py @@ -0,0 +1,9 @@ +import torch + + +def huber_loss(x: torch.Tensor, k: float = 1.0) -> torch.Tensor: + """Calculate huber loss element-wisely depending on kappa k. + + See https://en.wikipedia.org/wiki/Huber_loss + """ + return torch.where(x.abs() < k, 0.5 * x.pow(2), k * (x.abs() - 0.5 * k)) From 504cd9e4098e60cc337afe1d67e7d5cac75a36c9 Mon Sep 17 00:00:00 2001 From: Trinkle23897 Date: Wed, 27 Jan 2021 17:20:19 +0800 Subject: [PATCH 19/20] revert --- examples/atari/atari_network.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/examples/atari/atari_network.py b/examples/atari/atari_network.py index 9232c6191..f531d96e5 100644 --- a/examples/atari/atari_network.py +++ b/examples/atari/atari_network.py @@ -5,7 +5,11 @@ class DQN(nn.Module): - """Reference: Human-level control through deep reinforcement learning.""" + """Reference: Human-level control through deep reinforcement learning. + + For advanced usage (how to customize the network), please refer to + :ref:`build_the_network`. + """ def __init__( self, @@ -45,7 +49,11 @@ def forward( class C51(DQN): - """Reference: A distributional perspective on reinforcement learning.""" + """Reference: A distributional perspective on reinforcement learning. + + For advanced usage (how to customize the network), please refer to + :ref:`build_the_network`. + """ def __init__( self, @@ -75,7 +83,11 @@ def forward( class QRDQN(DQN): """Reference: Distributional Reinforcement Learning with Quantile \ - Regression.""" + Regression. + + For advanced usage (how to customize the network), please refer to + :ref:`build_the_network`. + """ def __init__( self, From 7ab816034c74d4bfa672a495074956265dee81f9 Mon Sep 17 00:00:00 2001 From: Trinkle23897 Date: Wed, 27 Jan 2021 20:48:25 +0800 Subject: [PATCH 20/20] try smooth_l1_loss --- tianshou/policy/modelfree/qrdqn.py | 20 +++++++++++--------- tianshou/utils/loss.py | 9 --------- 2 files changed, 11 insertions(+), 18 deletions(-) delete mode 100644 tianshou/utils/loss.py diff --git a/tianshou/policy/modelfree/qrdqn.py b/tianshou/policy/modelfree/qrdqn.py index ab428a81b..754d9acce 100644 --- a/tianshou/policy/modelfree/qrdqn.py +++ b/tianshou/policy/modelfree/qrdqn.py @@ -1,10 +1,11 @@ import torch +import warnings import numpy as np from typing import Any, Dict +import torch.nn.functional as F from tianshou.policy import DQNPolicy from tianshou.data import Batch, ReplayBuffer -from tianshou.utils.loss import huber_loss as huber class QRDQNPolicy(DQNPolicy): @@ -46,7 +47,8 @@ def __init__( self._num_quantiles = num_quantiles tau = torch.linspace(0, 1, self._num_quantiles + 1) self.tau_hat = torch.nn.Parameter( - (tau[:-1] + tau[1:]) / 2, requires_grad=False) + ((tau[:-1] + tau[1:]) / 2).view(1, -1, 1), requires_grad=False) + warnings.filterwarnings("ignore", message="Using a target size") def _target_q( self, buffer: ReplayBuffer, indice: np.ndarray @@ -75,13 +77,13 @@ def learn(self, batch: Batch, **kwargs: Any) -> Dict[str, float]: weight = batch.pop("weight", 1.0) curr_dist = self(batch).logits act = batch.act - curr_dist = curr_dist[np.arange(len(act)), act, :] - target_dist = batch.returns - u = target_dist.unsqueeze(1) - curr_dist.unsqueeze(2) - huber_loss = ( - huber(u) * (self.tau_hat.view(1, -1, 1) - - u.detach().le(0.).float()).abs() - ).sum(-1).mean(1) + curr_dist = curr_dist[np.arange(len(act)), act, :].unsqueeze(2) + target_dist = batch.returns.unsqueeze(1) + # calculate each element's difference between curr_dist and target_dist + u = F.smooth_l1_loss(target_dist, curr_dist, reduction="none") + huber_loss = (u * ( + self.tau_hat - (target_dist - curr_dist).detach().le(0.).float() + ).abs()).sum(-1).mean(1) loss = (huber_loss * weight).mean() # ref: https://github.com/ku2482/fqf-iqn-qrdqn.pytorch/ # blob/master/fqf_iqn_qrdqn/agent/qrdqn_agent.py L130 diff --git a/tianshou/utils/loss.py b/tianshou/utils/loss.py deleted file mode 100644 index 0a3aae0ec..000000000 --- a/tianshou/utils/loss.py +++ /dev/null @@ -1,9 +0,0 @@ -import torch - - -def huber_loss(x: torch.Tensor, k: float = 1.0) -> torch.Tensor: - """Calculate huber loss element-wisely depending on kappa k. - - See https://en.wikipedia.org/wiki/Huber_loss - """ - return torch.where(x.abs() < k, 0.5 * x.pow(2), k * (x.abs() - 0.5 * k))