diff --git a/agent/DQN_agent.py b/agent/DQN_agent.py index e51f734..744a662 100644 --- a/agent/DQN_agent.py +++ b/agent/DQN_agent.py @@ -72,6 +72,7 @@ class DQNAgent(BaseAgent): loss = self.criterion(q, q_next) self.optimizer.zero_grad() loss.backward() + nn.utils.clip_grad_norm(self.network.parameters(), self.config.gradient_clip) self.optimizer.step() if not deterministic and self.total_steps % self.config.target_network_update_freq == 0: self.target_network.load_state_dict(self.network.state_dict()) diff --git a/agent/NStepDQN_agent.py b/agent/NStepDQN_agent.py index 15a4776..ceda108 100644 --- a/agent/NStepDQN_agent.py +++ b/agent/NStepDQN_agent.py @@ -71,4 +71,5 @@ class NStepDQNAgent(BaseAgent): loss = 0.5 * (q - Variable(returns)).pow(2).mean() self.optimizer.zero_grad() loss.backward() + nn.utils.clip_grad_norm(self.network.parameters(), config.gradient_clip) self.optimizer.step() \ No newline at end of file