Третий параметр K.function, обновления должны иметь операции, отличные от старой и новой весовой пары? - PullRequest
1 голос
/ 19 апреля 2019

Я собираю DDPG-агент, который является алгоритмом обучения подкрепления. Во всяком случае, я обнаружил некоторые источники, на которые я мог ссылаться. Те, казалось, работали. Но я запутался, используя K.function () в keras. Ниже функция get_soft_target_model_updates возвращает (старый вес, новый вес) в отличие от написанной официальной документацией keras «updates: список операций обновления». Итак, я думаю, что нужно вернуть K.update (старый тензор, новый тензор).

def get_soft_target_model_updates(target, source, tau):
    target_weights = target.trainable_weights + sum([l.non_trainable_weights for l in target.layers], [])
    source_weights = source.trainable_weights + sum([l.non_trainable_weights for l in source.layers], [])
    assert len(target_weights) == len(source_weights)

    updates = []
    for tw, sw in zip(target_weights, source_weights):
        updates.append((tw, tau * sw + (1. - tau) * tw))
    return updates


    if self.tau_for_actor < 1:
        updates += get_soft_target_model_updates(self.target_actor, self.actor, self.tau_for_actor)

    updates += self.actor.updates

    self.actor_train_fn = K.function(state_inputs + [K.learning_phase()], [self.actor(state_inputs)], updates=updates)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...