Как обучить актерскую сеть в алгоритме DDPG - PullRequest
0 голосов
/ 04 августа 2020

При применении градиента я получал ошибки при обучении сети акторов DDPG! так что вместо этого я сделал это.

state_batch = tf.convert_to_tensor(ostate)
with tf.GradientTape() as tape:
    mu = self.actor(state_batch)
    q = self.critic([state_batch, mu])
    loss = -Huber(delta=2)(q,0)
gradient = tape.gradient(loss,mu)
self.actor.fit(ostate,mu-gradient)

это допустимый способ обучения сети актеров?

Изменить: да, похоже, работает нормально! ошибка, которую я сделал, - это использовать Huber для потерь, и b c этого актера пытается максимизировать abs (q), а не q, поэтому я заменил -Huber(delta=2)(q,0) на -tf.math.reduce_mean(q)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...