class_docstr: Optimized version of SubprocVecEnv that uses shared variables to communicate observations.
class_docstr_tok: ["Optimized","version","of","SubprocVecEnv","that","uses","shared","variables","to","communicate","observations","."]
code: def _decode_obses(self, obs):
      result = {}
      for k in self.obs_keys:
          bufs = [b[k] for b in self.obs_bufs]
          o = [
              np.frombuffer(
                  b.get_obj(), dtype=self.obs_dtypes[k]
              ).reshape(self.obs_shapes[k])
              for b in bufs
          ]
          result[k] = np.array(o)
      return dict_to_obs(result)
  
file_path: baselines/baselines/common/vec_env/shmem_vec_env.py
imports: import multiprocessing
  import numpy
  from .vec_env import VecEnv, CloudpickleWrapper, clear_mpi_env_vars
  import ctypes
  from baselines import logger
  from .util import dict_to_obs, obs_space_info, obs_to_dict
label_desc: Use image node_id 7 for calling the ShmemVecEnv obj's underlying member method code with example usage: obj._decode_obses(obs) and returns: dict_to_obs