def _render_stacked_frames(self): if self._image_obs: # stack past frames along first dimension img = numpy_all_the_way(self._frames) if self.channel_config == 'CHW': return img elif self.channel_config == 'HWC': return np.transpose(img, axes=[1, 2, 0]) else: raise Exception(f'Unknown channel config {self.channel_config}') else: return np.array(self._frames).flatten()
def _maybe_trajectory_summaries(self, trajectory_buffer, env_steps): time_since_last = time.time() - self._last_trajectory_summary if time_since_last < self.params.gif_save_rate or not trajectory_buffer.complete_trajectories: return start_gif_summaries = time.time() self._last_trajectory_summary = time.time() num_envs = self.params.gif_summary_num_envs trajectories = [ numpy_all_the_way(t.obs)[:, :, :, -3:] for t in trajectory_buffer.complete_trajectories[:num_envs] ] self._write_gif_summaries(tag='obs_trajectories', gif_images=trajectories, step=env_steps) log.info('Took %.3f seconds to write gif summaries', time.time() - start_gif_summaries)
def _render_stacked_frames(self): if self._image_obs: return np.transpose(numpy_all_the_way(self._frames), axes=[1, 2, 0]) else: return np.array(self._frames).flatten()
def test_numpy_all_the_way(self): a = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) lst = [np.array([0, 1, 2]), np.array([3, 4, 5]), np.array([6, 7, 8])] numpy_arr = numpy_all_the_way(lst) self.assertTrue(np.array_equal(a, numpy_arr))