Skip to content

Instantly share code, notes, and snippets.

@butchland
Created July 26, 2022 13:40
Show Gist options
  • Save butchland/05f2b87da850d4f54f9ced6adc578832 to your computer and use it in GitHub Desktop.
Save butchland/05f2b87da850d4f54f9ced6adc578832 to your computer and use it in GitHub Desktop.
calling package to hub triggers the following error
ℹ This function will save, evaluate, generate a video of your agent,
create a model card and push everything to the hub. It might take up to 1min.
This is a work in progress: if you encounter a bug, please open an issue.
/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/evaluation.py:69: UserWarning: Evaluation environment is not wrapped with a ``Monitor`` wrapper. This may result in reporting modified episode lengths and rewards, if other wrappers happen to modify these. Consider wrapping environment first with ``Monitor`` wrapper.
UserWarning,
---------------------------------------------------------------------------
NoSuchDisplayException Traceback (most recent call last)
<ipython-input-5-a05b2900be06> in <module>()
28 eval_env=eval_env, # Evaluation Environment
29 repo_id=repo_id, # id of the model repository from the Hugging Face Hub (repo_id = {organization}/{repo_name} for instance ThomasSimonini/ppo-LunarLander-v2
---> 30 commit_message=commit_message)
31
32 # Note: if after running the package_to_hub function and it gives an issue of rebasing, please run the following code
15 frames
/usr/local/lib/python3.7/dist-packages/huggingface_sb3/push_to_hub.py in package_to_hub(model, model_name, model_architecture, env_id, eval_env, repo_id, commit_message, is_deterministic, n_eval_episodes, token, video_length, logs)
373
374 # Step 4: Generate a video
--> 375 _generate_replay(model, replay_env, video_length, is_deterministic, tmpdirname)
376
377 # Step 5: Generate the model card
/usr/local/lib/python3.7/dist-packages/huggingface_sb3/push_to_hub.py in _generate_replay(model, eval_env, video_length, is_deterministic, local_path)
134 )
135
--> 136 obs = env.reset()
137 lstm_states = None
138 episode_starts = np.ones((env.num_envs,), dtype=bool)
/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/vec_env/vec_video_recorder.py in reset(self)
66 def reset(self) -> VecEnvObs:
67 obs = self.venv.reset()
---> 68 self.start_video_recorder()
69 return obs
70
/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/vec_env/vec_video_recorder.py in start_video_recorder(self)
78 )
79
---> 80 self.video_recorder.capture_frame()
81 self.recorded_frames = 1
82 self.recording = True
/usr/local/lib/python3.7/dist-packages/gym/wrappers/monitoring/video_recorder.py in capture_frame(self)
130
131 render_mode = "ansi" if self.ansi_mode else "rgb_array"
--> 132 frame = self.env.render(mode=render_mode)
133
134 if frame is None:
/usr/local/lib/python3.7/dist-packages/stable_baselines3/common/vec_env/dummy_vec_env.py in render(self, mode)
85 """
86 if self.num_envs == 1:
---> 87 return self.envs[0].render(mode=mode)
88 else:
89 return super().render(mode=mode)
/usr/local/lib/python3.7/dist-packages/gym/core.py in render(self, mode, **kwargs)
293
294 def render(self, mode="human", **kwargs):
--> 295 return self.env.render(mode, **kwargs)
296
297 def close(self):
/usr/local/lib/python3.7/dist-packages/gym/envs/box2d/lunar_lander.py in render(self, mode)
386
387 def render(self, mode="human"):
--> 388 from gym.envs.classic_control import rendering
389
390 if self.viewer is None:
/usr/local/lib/python3.7/dist-packages/gym/envs/classic_control/rendering.py in <module>()
25
26 try:
---> 27 from pyglet.gl import *
28 except ImportError as e:
29 raise ImportError(
/usr/local/lib/python3.7/dist-packages/pyglet/gl/__init__.py in <module>()
242 # trickery is for circular import
243 _pyglet.gl = _sys.modules[__name__]
--> 244 import pyglet.window
/usr/local/lib/python3.7/dist-packages/pyglet/window/__init__.py in <module>()
1889 if not _is_pyglet_doc_run:
1890 pyglet.window = sys.modules[__name__]
-> 1891 gl._create_shadow_window()
/usr/local/lib/python3.7/dist-packages/pyglet/gl/__init__.py in _create_shadow_window()
218
219 from pyglet.window import Window
--> 220 _shadow_window = Window(width=1, height=1, visible=False)
221 _shadow_window.switch_to()
222
/usr/local/lib/python3.7/dist-packages/pyglet/window/xlib/__init__.py in __init__(self, *args, **kwargs)
169 self._event_handlers[message] = func
170
--> 171 super(XlibWindow, self).__init__(*args, **kwargs)
172
173 global _can_detect_autorepeat
/usr/local/lib/python3.7/dist-packages/pyglet/window/__init__.py in __init__(self, width, height, caption, resizable, style, fullscreen, visible, vsync, file_drops, display, screen, config, context, mode)
571
572 if not display:
--> 573 display = pyglet.canvas.get_display()
574
575 if not screen:
/usr/local/lib/python3.7/dist-packages/pyglet/canvas/__init__.py in get_display()
92
93 # Otherwise, create a new display and return it.
---> 94 return Display()
95
96
/usr/local/lib/python3.7/dist-packages/pyglet/canvas/xlib.py in __init__(self, name, x_screen)
121 self._display = xlib.XOpenDisplay(name)
122 if not self._display:
--> 123 raise NoSuchDisplayException('Cannot connect to "%s"' % name)
124
125 screen_count = xlib.XScreenCount(self._display)
NoSuchDisplayException: Cannot connect to "None"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment