def __init__(self, output_path, frame_shape, frames_per_sec): self.proc = None self.output_path = output_path # Frame shape should be lines-first, so w and h are swapped h, w, pixfmt = frame_shape if pixfmt != 3 and pixfmt != 4: raise error.InvalidFrame( "Your frame has shape {}, but we require (w,h,3) or (w,h,4), i.e. RGB values for a w-by-h image, with an optional alpha channl." .format(frame_shape)) self.wh = (w, h) self.includes_alpha = (pixfmt == 4) self.frame_shape = frame_shape self.frames_per_sec = frames_per_sec if distutils.spawn.find_executable('avconv') is not None: self.backend = 'avconv' elif distutils.spawn.find_executable('ffmpeg') is not None: self.backend = 'ffmpeg' else: raise error.DependencyNotInstalled( """Found neither the ffmpeg nor avconv executables. On OS X, you can install ffmpeg via `brew install ffmpeg`. On most Ubuntu variants, `sudo apt-get install ffmpeg` should do it. On Ubuntu 14.04, however, you'll need to install avconv with `sudo apt-get install libav-tools`.""" ) self.start()
import os from os import path import numpy as np import six from environments.mujoco.rand_param_envs import gym from environments.mujoco.rand_param_envs.gym import error, spaces from environments.mujoco.rand_param_envs.gym.utils import seeding try: from environments.mujoco.rand_param_envs import mujoco_py from environments.mujoco.rand_param_envs.mujoco_py.mjlib import mjlib except ImportError as e: raise error.DependencyNotInstalled( "{}. (HINT: you need to install mujoco_py, and also perform the setup instructions here: https://github.com/openai/mujoco-py/.)" .format(e)) class MujocoEnv(gym.Env): """Superclass for all MuJoCo environments. """ def __init__(self, model_path, frame_skip): if model_path.startswith("/"): fullpath = model_path else: fullpath = os.path.join(os.path.dirname(__file__), "assets", model_path) if not path.exists(fullpath): raise IOError("File %s does not exist" % fullpath) self.frame_skip = frame_skip
from environments.mujoco.rand_param_envs.gym import error try: import pachi_py except ImportError as e: # The dependency group [pachi] should match the name is setup.py. raise error.DependencyNotInstalled( '{}. (HINT: you may need to install the Go dependencies via "pip install gym[pachi]".)' .format(e)) import numpy as np from environments.mujoco.rand_param_envs import gym from environments.mujoco.rand_param_envs.gym import spaces from environments.mujoco.rand_param_envs.gym.utils import seeding from six import StringIO import sys import six # The coordinate representation of Pachi (and pachi_py) is defined on a board # with extra rows and columns on the margin of the board, so positions on the board # are not numbers in [0, board_size**2) as one would expect. For this Go env, we instead # use an action representation that does fall in this more natural range. def _pass_action(board_size): return board_size**2 def _resign_action(board_size): return board_size**2 + 1
import numpy as np import os from environments.mujoco.rand_param_envs import gym from environments.mujoco.rand_param_envs.gym import error, spaces from environments.mujoco.rand_param_envs.gym import utils from environments.mujoco.rand_param_envs.gym.utils import seeding try: import atari_py except ImportError as e: raise error.DependencyNotInstalled( "{}. (HINT: you can install Atari dependencies by running 'pip install gym[atari]'.)" .format(e)) import logging logger = logging.getLogger(__name__) def to_ram(ale): ram_size = ale.getRAMSize() ram = np.zeros((ram_size), dtype=np.uint8) ale.getRAM(ram) return ram class AtariEnv(gym.Env, utils.EzPickle): metadata = {'render.modes': ['human', 'rgb_array']} def __init__(self, game='pong', obs_type='ram',