Giter Club home page Giter Club logo

revisiting-ppo's Introduction

Revisiting Design Choices in Proximal Policy Optimization

The PPO implementation is based on the open-source code for ICLR 2020 paper "Implementation Matters in Deep RL: A Case Study on PPO and TRPO": https://github.com/implementation-matters/code-for-paper.

All our analysis and plots are produced via Jupyter notebooks in the analysis folder.

Failure mode examples

The failure mode example environments are defined in analysis/envs.py, and the experiments are analyzed in the corresponding Jupyter notebooks in the analysis folder.

Beta policy implementation

The Beta policy is implemented as a CtsBetaPolicy class in src/policy_gradients/models.py.

MuJoCo experiments

We assume that the user has a machine with MuJoCo and mujoco_py properly set up and installed. To see if MuJoCo is properly installed, try running the following:

import gym
gym.make_env("Humanoid-v2")

The dependencies are listed in the src/requirements.txt file, can be installed via pip install -r requirements.txt.

As an example, to reproduce our MuJoCo Gaussian vs beta policy comparison figures: run the following commands:

  1. cd src/gaussian_vs_beta/
  2. python setup_agents.py: the setup_agents.py script contains detailed experiments settings and sets up configuration files for each agent.
  3. cd ../
  4. Edit the NUM_THREADS variables in the run_agents.py file according to your local machine.
  5. Train the agents: python run_agents.py gaussian_vs_beta/agent_configs
  6. Plot results in the corresponding Jupyter notebook in the analysis folder.

For other MuJoCo comparisons, similarly see the agent setup files in src/kl_direction and src/base_exp, or create your own custom agent setup file with the desired configurations.

For more details about the code, see the README file in the original GitHub repo: https://github.com/implementation-matters/code-for-paper.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.