Обновление Актера DDPG ( Исус по реализации Pytorch )

#python #pytorch #reinforcement-learning #gradient-descent #policy-gradient-descent

Вопрос:

Это от https://github.com/MoritzTaylor/ddpg-pytorch/blob/master/ddpg.py реализация, и я предполагаю, что большая часть реализации ddpg написана таким образом.

         
self.critic_optimizer.zero_grad()
state_action_batch = self.critic(state_batch, action_batch)
value_loss = F.mse_loss(state_action_batch, expected_values.detach())
value_loss.backward()
self.critic_optimizer.step()

# Update the actor network
self.actor_optimizer.zero_grad()
policy_loss = -self.critic(state_batch, self.actor(state_batch))
policy_loss = policy_loss.mean()
policy_loss.backward()
self.actor_optimizer.step()

 

Однако после policy_loss.backwad () я думаю, что градиент остается в сети критиков в отношении параметров критиков. Не должно ли это повлиять на следующее обновление critic?

Если это так, то каким может быть решение?

Ответ №1:

Я понял, что

 self.critic_optimizer.zero_grad()
 

обнуляет предыдущий накопленный градиент.