Beispiel #1
0
    def _start_monitor(self):
        logger.info("Starting Monitor. Writing monitor logs to {}".format(
            self.directory))

        # Circular dependencies :(
        from universe import wrappers
        # We need to maintain pointers to these to avoid them being
        # GC'd. They have a weak reference to us to avoid cycles.
        # TODO if we want to monitor more than one instance in a vectorized
        # env we'll need to actually fix WeakUnvectorize
        self._unvectorized_envs = [
            wrappers.WeakUnvectorize(self.env, i) for i in range(1)
        ]

        # For now we only monitor the first env
        if hasattr(gym, 'wrappers'):
            self._monitor = gym.wrappers.Monitor(
                self._unvectorized_envs[0],
                directory=self.directory,
                video_callable=self.video_callable,
                force=self.force,
                resume=self.resume,
                write_upon_reset=self.write_upon_reset,
                uid=self.uid,
                mode=self.mode)
        else:
            logger.warn(
                "DEPRECATION WARNING: You are using an older version of gym that has a deprecated Monitor, please update to gym:v0.8.0. This change was made 2017/02/01 and is included in universe version 0.21.3"
            )
            from gym import monitoring
            self._monitor = monitoring.MonitorManager(
                self._unvectorized_envs[0])
            self._monitor.start(self.directory, self.video_callable,
                                self.force, self.resume, self.write_upon_reset,
                                self.uid, self.mode)
Beispiel #2
0
    def _start_monitor(self):
        logger.info("Starting Monitor. Writing monitor logs to {}".format(
            self.directory))

        # Circular dependencies :(
        from universe import wrappers
        # We need to maintain pointers to these to avoid them being
        # GC'd. They have a weak reference to us to avoid cycles.
        # TODO if we want to monitor more than one instance in a vectorized
        # env we'll need to actually fix WeakUnvectorize
        self._unvectorized_envs = [
            wrappers.WeakUnvectorize(self, i) for i in range(1)
        ]

        # For now we only monitor the first env
        self._monitor = monitoring.MonitorManager(self._unvectorized_envs[0])
        self._monitor.start(
            self.directory,
            self.video_callable,
            self.force,
            self.resume,
            self.write_upon_reset,
            self.uid,
            self.mode,
        )
Beispiel #3
0
        def _start_monitor(self):
            # Circular dependencies :(
            from universe import wrappers
            # We need to maintain pointers to these to avoid them being
            # GC'd. They have a weak reference to us to avoid cycles.
            self._unvectorized_envs = [
                wrappers.WeakUnvectorize(self, i) for i in range(self.n)
            ]

            # For now we only monitor the first env
            self._monitor = monitoring.MonitorManager(
                self._unvectorized_envs[0])
            self._monitor.start(directory, video_callable, force, resume,
                                write_upon_reset, uid, mode)
Beispiel #4
0
 def __init__(self, env, directory, video_callable=None, force=False, resume=False,
              write_upon_reset=False, uid=None, mode=None):
     super(_Monitor, self).__init__(env)
     self._monitor = monitoring.MonitorManager(env)
     self._monitor.start(directory, video_callable, force, resume,
                         write_upon_reset, uid, mode)