1. 程式人生 > >A GPU ready Docker container for OpenAI Gym Development with TensorFlow

A GPU ready Docker container for OpenAI Gym Development with TensorFlow

So, you want to write an agent, competing in the OpenAI Gym, you want to use Keras or TensorFlow or something similar and you don’t want everything installed on your workstation? You have come to the right place!

This post outlines the concept behind the Github repository below

It’s for anyone who has a decent workstation and wants to get into deep reinforcement learning

without all the troubles of finding your way through the jungle of dependencies. I fought through nvidia-driver dependencies, missing libraries, python version mismatches, jupyter kernels reported wrongly, compiler dependencies missing etc. etc. Now, you don’t have to anymore.

Because of the nvidia TOS, I cannot package this as an image, as the cudnn library may not be distributed by me. Sorry!

The build of the image takes about 20 minutes on a 20MBit DSL and the size will be about 5GB in total. Yes, it’s that big. Maybe I’ll get it a bit lighter in the future, but the nvidia dependencies as well as the X and make-utils are quiet large.

What’s included

  • Jupyter Notebooks with a Python3 kernel
  • OpenAI Gym
  • OpenAI Roboschool based on bullet3 (FOSS, not proprietary! yay)
  • TensorFlow-GPU
  • nvidia gpu access from the container
  • a lot of Python libraries for data science work as shown below
  • ffmpeg, X, xvfb for remote GUI access
# python3 packagesjupyter pandas matplotlib scipy seaborn scikit-learn scikit-Image sympy cython patsy statsmodels cloudpickle dill numba bokeh tensorflow-gpu gym pyopengl

How to get started

This is what you need to get started

  • Docker
  • NVidia GPU with CUDA (drivers)
  • Unix machine (I use Ubuntu 17.10), if you are on MacOS, I’d welcome some feedback on GitHub
  • cudnn library files, which require a registration with nvidia, more on that in the TensorFlow docs

More details can be found on the GitHub project page. If there is any issues or feedback, feel free to create an issue. I intend to merge this into some larger project, I am just not sure which one. Is it a Jupyter image or a TensorFlow or OpenAI? Let me know what you think!