Exemple #1
0
class NeuroCuberServer:
    def __init__(self, cfg):
        self.cfg                 = cfg
        self.tbwriter            = TensorBoardWriter(cfg)
        self.replay_buffer       = ReplayBuffer(cfg)
        self.learner_outqueue    = queue.Queue()
        self.learner             = Learner(cfg, replay_buffer=self.replay_buffer, outqueue=self.learner_outqueue)
        self.learner_thread      = LearnerThread(self.learner)
        self.learner_thread.start()

        self.learner_post_thread = LearnerPostThread(cfg, self.learner_outqueue, self.tbwriter)
        self.learner_post_thread.start()

    def get_config(self):
        return self.cfg

    def get_weights(self):
        return self.learner.get_weights()

    def process_actor_episode(self, aer):
        aer = ActorEpisodeResult(*aer)
        assert(aer is not None)

        self.tbwriter.log_actor_episode(aer)
        self.replay_buffer.add_datapoints(aer.datapoints)