def run_remote_sample(self, signal_queue, output_queue): """ Sample data from remote actor or get filters of remote actor. """ remote_actor = Actor(self.config) while True: info = signal_queue.get() if info['signal'] == 'sample': result = remote_actor.sample(self.latest_flat_weights) output_queue.put(result) elif info['signal'] == 'get_filter': actor_filter = remote_actor.get_filter(flush_after=True) output_queue.put(actor_filter) elif info['signal'] == 'set_filter': remote_actor.set_filter(self.latest_obs_filter) else: raise NotImplementedError