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)