explaingit

google/dopamine

10,876Jupyter NotebookAudience · researcherComplexity · 3/5LicenseSetup · moderate

TLDR

Dopamine is a small, easy-to-modify research framework from Google for experimenting with reinforcement learning algorithms like DQN and Rainbow, using Atari games or robot simulators as test environments.

Mindmap

mindmap
  root((Dopamine))
    What it does
      RL experimentation
      Readable algorithm code
      Baseline results
    Algorithms
      DQN
      Rainbow
      SAC
    Environments
      Atari games
      MuJoco robots
    Tech Stack
      Python
      JAX
      TensorFlow
    Audience
      AI researchers
      ML students
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run classic reinforcement learning algorithms like DQN or Rainbow on Atari games to benchmark a new idea against established baselines.

USE CASE 2

Modify one of Dopamine's small, readable algorithm implementations to test a research hypothesis without building from scratch.

USE CASE 3

Use the included Jupyter notebooks and baseline results to verify your experimental setup matches expected performance.

USE CASE 4

Train a virtual robot in MuJoco using SAC and compare results against Dopamine's published benchmarks.

Tech stack

PythonJAXTensorFlowJupyter Notebook

Getting it running

Difficulty · moderate Time to first run · 30min

Requires pip install or cloning from source, Docker containers are available to avoid manual dependency setup.

Use freely for any purpose, including commercial use, this is not an official Google product.

In plain English

Dopamine is a research framework from Google for experimenting with reinforcement learning algorithms. Reinforcement learning is a field of AI where a software agent learns to make decisions by trying things out and receiving feedback, similar to how a person learns through trial and error. Dopamine is designed to make it quick and easy to try out new ideas in this space. The framework is intentionally small and straightforward. Rather than offering a massive collection of tools, it provides a handful of well-tested algorithms that researchers can study and modify directly. This includes algorithms with names like DQN, Rainbow, and SAC, which are approaches to training agents to play games or control simulated robots. These implementations use a library called JAX, with older TensorFlow versions also available for some agents. Dopamine works with two main types of training environments: classic Atari video games, which are a standard benchmark for measuring how well a learning algorithm performs, and MuJoco, a physics simulator used for training virtual robots to walk or manipulate objects. You can install it via pip or clone the source code directly. The README recommends cloning from source if you plan to modify the code, which is the primary use case. Docker containers are also available for getting started without manual setup. Google provides baseline results and Jupyter notebooks to help researchers understand what performance to expect and how to run experiments. This is not an official Google product, though it was created by Google researchers.

Copy-paste prompts

Prompt 1
How do I install Dopamine and run the DQN agent on a standard Atari game to reproduce the baseline results?
Prompt 2
Show me how to modify Dopamine's Rainbow implementation to add a custom exploration strategy and run an experiment.
Prompt 3
How do I set up Dopamine with JAX instead of TensorFlow and train an SAC agent on a MuJoco environment?
Prompt 4
Walk me through the Dopamine Jupyter notebook for visualizing training curves and comparing multiple agents.
Prompt 5
What's the fastest way to add a new reinforcement learning algorithm to Dopamine so it works with the existing Atari training loop?
Open on GitHub → Explain another repo

← google on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.