All Projects → eric-heiden → deep-rl-docker

eric-heiden / deep-rl-docker

Licence: MIT license
Docker image with OpenAI Gym, Baselines, MuJoCo and Roboschool, utilizing TensorFlow and JupyterLab.

Programming Languages

Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to deep-rl-docker

Drqn Tensorflow
Deep recurrent Q Learning using Tensorflow, openai/gym and openai/retro
Stars: ✭ 127 (+188.64%)
Mutual labels:  openai-gym
Hands On Intelligent Agents With Openai Gym
Code for Hands On Intelligent Agents with OpenAI Gym book to get started and learn to build deep reinforcement learning agents using PyTorch
Stars: ✭ 189 (+329.55%)
Mutual labels:  openai-gym
awesome-isaac-gym
A curated list of awesome NVIDIA Issac Gym frameworks, papers, software, and resources
Stars: ✭ 373 (+747.73%)
Mutual labels:  openai-gym
Ravens
Train robotic agents to learn pick and place with deep learning for vision-based manipulation in PyBullet. Transporter Nets, CoRL 2020.
Stars: ✭ 133 (+202.27%)
Mutual labels:  openai-gym
Coach
Reinforcement Learning Coach by Intel AI Lab enables easy experimentation with state of the art Reinforcement Learning algorithms
Stars: ✭ 2,085 (+4638.64%)
Mutual labels:  openai-gym
Gymfc
A universal flight control tuning framework
Stars: ✭ 210 (+377.27%)
Mutual labels:  openai-gym
Hierarchical Actor Critic Hac Pytorch
PyTorch implementation of Hierarchical Actor Critic (HAC) for OpenAI gym environments
Stars: ✭ 116 (+163.64%)
Mutual labels:  openai-gym
RLGC
An open-source platform for applying Reinforcement Learning for Grid Control (RLGC)
Stars: ✭ 85 (+93.18%)
Mutual labels:  openai-gym
Tensorflow Rl
Implementations of deep RL papers and random experimentation
Stars: ✭ 176 (+300%)
Mutual labels:  openai-gym
Ma Gym
A collection of multi agent environments based on OpenAI gym.
Stars: ✭ 226 (+413.64%)
Mutual labels:  openai-gym
Holdem
🃏 OpenAI Gym No Limit Texas Hold 'em Environment for Reinforcement Learning
Stars: ✭ 135 (+206.82%)
Mutual labels:  openai-gym
Gym Fx
Forex trading simulator environment for OpenAI Gym, observations contain the order status, performance and timeseries loaded from a CSV file containing rates and indicators. Work In Progress
Stars: ✭ 151 (+243.18%)
Mutual labels:  openai-gym
Ns3 Gym
ns3-gym - The Playground for Reinforcement Learning in Networking Research
Stars: ✭ 221 (+402.27%)
Mutual labels:  openai-gym
Reinforcement learning
Implementation of selected reinforcement learning algorithms in Tensorflow. A3C, DDPG, REINFORCE, DQN, etc.
Stars: ✭ 132 (+200%)
Mutual labels:  openai-gym
yarll
Combining deep learning and reinforcement learning.
Stars: ✭ 84 (+90.91%)
Mutual labels:  openai-gym
Reinforcementlearning Atarigame
Pytorch LSTM RNN for reinforcement learning to play Atari games from OpenAI Universe. We also use Google Deep Mind's Asynchronous Advantage Actor-Critic (A3C) Algorithm. This is much superior and efficient than DQN and obsoletes it. Can play on many games
Stars: ✭ 118 (+168.18%)
Mutual labels:  openai-gym
Deep Reinforcement Learning Gym
Deep reinforcement learning model implementation in Tensorflow + OpenAI gym
Stars: ✭ 200 (+354.55%)
Mutual labels:  openai-gym
Deep-Reinforcement-Learning-With-Python
Master classic RL, deep RL, distributional RL, inverse RL, and more using OpenAI Gym and TensorFlow with extensive Math
Stars: ✭ 222 (+404.55%)
Mutual labels:  openai-gym
OpenAI-Gym-Hearts
OpenAI Gym Hearts Card Game
Stars: ✭ 21 (-52.27%)
Mutual labels:  openai-gym
A3c continuous
A continuous action space version of A3C LSTM in pytorch plus A3G design
Stars: ✭ 223 (+406.82%)
Mutual labels:  openai-gym

deep-rl-docker 🐳 🤖

Docker image with OpenAI Gym, Baselines, MuJoCo and Roboschool, utilizing TensorFlow and JupyterLab.

Roboschool

Build

MoJoCo 1.50 and 1.31 will be installed under .mujoco in the container's home directory. Provide your MuJoCo key file (mjkey.txt) in the directory internal so that it can be placed at the required locations of the MuJoCo installations. At the moment, only institutional licenses are supported.

Dependent on the device version (CPU-only or NVIDIA GPU support), build the container as follows:

./build.sh [cpu|gpu]

If no first argument for device type is provided the CPU version will be installed.

When using the GPU version, make sure the NVIDIA requirements to run TensorFlow with GPU support are satisfied. It helps to follow NVIDIA's cuDNN installation guide.

Run

Execute run.sh or run_gpu.sh. This will run the container in foreground mode, i.e. its console becomes attached to the process’s standard input, output, and standard error.

All RL-related dependencies (Roboschool, Gym, etc.) are available from within the python3 environment.

Jupyter Lab will be published on port 8888. If you run TensorBoard it will be accessible on port 6006. Ports are tunneled through to your host system and can be reconfigured in run.sh or run_gpu.sh.

The container will install its home directory under $HOME/.deep-rl-docker on the host system via a shared volume. The docker's user has the same user identifier (UID) as the host system's user running the container to ensure file permissions are set up correctly in the shared volumes.

Running deep-rl-docker on OSX with visualizations

Currently we do not have a solution to run the deep-rl-docker on OSX with visualizations in roboschool due to OpenGL problems. A workaround using Oracle VirtualBox that works with Virtual Machines (VMs) is listed below:

  1. Download and install VirtualBox
  2. In VirtualBox, create a VM for Linux, Ubuntu (64-bit) with the following settings:
    • Memory size: 5 GB+
    • Hard drive: Create a virtual hard disk, check VDI, check Fixed size, assign 20 GB+
    • Select your new VM in VirtualBox, and press the Settings icon
    • Under Display: Video Memory: maximum (128 MB), check Enable 3D Acceleration,
  3. Download Ubuntu and install it in the virtual machine you created in the previous step.
  4. Follow this guide to install VirtualBox Guest Additions for Linux.
  5. Execute the following command to install CompizConfig Settings Manager:
sudo apt-get install compizconfig-settings-manager
  1. Launch CompizConfig, click on OpenGL, put Texture Filter: Fast, uncheck Framebuffer object
  2. Reboot your machine, and execute run.sh or run_gpu.sh.

Running the image natively might cause the Docker disk image to grow indefinitely, a known bug in Docker to which a workaround exists here.

Save changes

Commit changes made to the container (e.g. installations, file changes inside the container and not a shared volume) via

docker commit $CONTAINER

Where $CONTAINER is the ID of the docker container. Issue docker ps to see all installed containers and their ID's.

Resume

Start and reattach an existing docker container via

docker start  $CONTAINER
docker attach $CONTAINER

Where $CONTAINER is the ID of the docker container. Issue docker ps to see all installed containers and their ID's.

Examples

Here are some cool demos to run:

Roboschool

[vglrun] python3 $ROBOSCHOOL_PATH/agent_zoo/demo_race1.py
[vglrun] python3 $ROBOSCHOOL_PATH/agent_zoo/demo_keyboard_humanoid1.py

VirtualGL (vglrun) is required to support hardware-accelerated rendering if the NVIDIA drivers are not set up. This command should be omitted when running the NVIDIA GPU version of this container.

MuJoCo

Make sure the OpenGL libraries from your host system are available in /external_libs, as configured when running the container via run_gpu.sh.

cd ~/.mujoco/mjpro150/bin
LD_LIBRARY_PATH=.:/external_libs/ ./simulate ../model/humanoid.xml

OpenAI Gym (from the OpenAI blog post on DQN)

# Train model and save the results to cartpole_model.pkl
python3 -m baselines.deepq.experiments.train_cartpole
# Load the model saved in cartpole_model.pkl and visualize the learned policy
python3 -m baselines.deepq.experiments.enjoy_cartpole

TODO

  • Fix Roboschool, Baselines dependency to specific GitHub-commit(?), retry full install on OSX/improve
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].