Download gym_util/video_wrapper.py from ducido/diffusion_policy_gbc: direct link, hf CLI and curl.
- Browser
- Download file 1.26 kB
-
https://huggingface.co/ducido/diffusion_policy_gbc/resolve/main/gym_util/video_wrapper.py
- Command line
-
hf download hf://ducido/diffusion_policy_gbc/gym_util/video_wrapper.py
-
curl -L -o video_wrapper.py https://huggingface.co/ducido/diffusion_policy_gbc/resolve/main/gym_util/video_wrapper.py
1.26 kB
| import gym | |
| import numpy as np | |
| class VideoWrapper(gym.Wrapper): | |
| def __init__(self, | |
| env, | |
| mode='rgb_array', | |
| enabled=True, | |
| steps_per_render=1, | |
| **kwargs | |
| ): | |
| super().__init__(env) | |
| self.mode = mode | |
| self.enabled = enabled | |
| self.render_kwargs = kwargs | |
| self.steps_per_render = steps_per_render | |
| self.frames = list() | |
| self.step_count = 0 | |
| def reset(self, **kwargs): | |
| obs = super().reset(**kwargs) | |
| self.frames = list() | |
| self.step_count = 1 | |
| if self.enabled: | |
| frame = self.env.render( | |
| mode=self.mode, **self.render_kwargs) | |
| assert frame.dtype == np.uint8 | |
| self.frames.append(frame) | |
| return obs | |
| def step(self, action): | |
| result = super().step(action) | |
| self.step_count += 1 | |
| if self.enabled and ((self.step_count % self.steps_per_render) == 0): | |
| frame = self.env.render( | |
| mode=self.mode, **self.render_kwargs) | |
| assert frame.dtype == np.uint8 | |
| self.frames.append(frame) | |
| return result | |
| def render(self, mode='rgb_array', **kwargs): | |
| return self.frames | |