docstr: randomly read a frame from the buffer
  
  :return: ([float], [float], [float], [float], [bool], [float])
           observations, actions, rewards, mus, dones, maskes
code: def get(self):
      """
      randomly read a frame from the buffer
  
      :return: ([float], [float], [float], [float], [bool], [float])
               observations, actions, rewards, mus, dones, maskes
      """
      # returns
      # obs [n_env, (n_steps + 1), nh, nw, n_stack*nc]
      # actions, rewards, dones [n_env, n_steps]
      # mus [n_env, n_steps, n_act]
      n_env = self.n_env
      assert self.can_sample()
  
      # Sample exactly one id per env. If you sample across envs, then higher correlation in samples from same env.
      idx = np.random.randint(0, self.num_in_buffer, n_env)
      envx = np.arange(n_env)
  
      dones = self.take(self.dones, idx, envx)
      enc_obs = self.take(self.enc_obs, idx, envx)
      obs = self.decode(enc_obs)
      actions = self.take(self.actions, idx, envx)
      rewards = self.take(self.rewards, idx, envx)
      mus = self.take(self.mus, idx, envx)
      masks = self.take(self.masks, idx, envx)
      return obs, actions, rewards, mus, dones, masks
  
file_path: stable-baselines/stable_baselines/acer/buffer.py
imports: import numpy
label_desc: Use image node_id 7 for calling the Buffer obj's underlying member method code with example usage: obj.get() and returns: obs,  actions,  rewards,  mus,  dones,  masks