docstr: Get the stacked frames of an observation
  
  :param enc_obs: ([float]) the encoded observation
  :return: ([float]) the decoded observation
code: def decode(self, enc_obs):
      """
      Get the stacked frames of an observation
  
      :param enc_obs: ([float]) the encoded observation
      :return: ([float]) the decoded observation
      """
      # enc_obs has shape [n_envs, n_steps + 1, nh, nw, nc]
      # dones has shape [n_envs, n_steps, nh, nw, nc]
      # returns stacked obs of shape [n_env, (n_steps + 1), nh, nw, nc]
      n_env, n_steps = self.n_env, self.n_steps
      if self.raw_pixels:
          obs_dim = [self.height, self.width, self.n_channels]
      else:
          obs_dim = [self.obs_dim]
  
      obs = np.zeros(
          [1, n_steps + 1, n_env] + obs_dim, dtype=self.obs_dtype
      )
      # [n_steps + nstack, n_env, nh, nw, nc]
      x_var = np.reshape(
          enc_obs, [n_env, n_steps + 1] + obs_dim
      ).swapaxes(1, 0)
      obs[-1, :] = x_var
  
      if self.raw_pixels:
          obs = obs.transpose((2, 1, 3, 4, 0, 5))
      else:
          obs = obs.transpose((2, 1, 3, 0))
      return np.reshape(
          obs, [n_env, (n_steps + 1)] + obs_dim[:-1] + [obs_dim[-1]]
      )
  
file_path: stable-baselines/stable_baselines/acer/buffer.py
imports: import numpy
label_desc: Use image node_id 4 for calling the Buffer obj's underlying member method code with example usage: obj.decode(enc_obs) and returns: np