All Projects → garlicdevs → Fruit-API

garlicdevs / Fruit-API

Licence: GPL-3.0 license
A Universal Deep Reinforcement Learning Framework

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Fruit-API

Master-Thesis
Deep Reinforcement Learning in Autonomous Driving: the A3C algorithm used to make a car learn to drive in TORCS; Python 3.5, Tensorflow, tensorboard, numpy, gym-torcs, ubuntu, latex
Stars: ✭ 33 (-45.9%)
Mutual labels:  deep-reinforcement-learning, reinforcement-learning-algorithms, actor-critic
Reinforcement Learning
Deep Reinforcement Learning Algorithms implemented with Tensorflow 2.3
Stars: ✭ 61 (+0%)
Mutual labels:  reinforcement-learning-algorithms, atari, actor-critic
Pytorch A2c Ppo Acktr Gail
PyTorch implementation of Advantage Actor Critic (A2C), Proximal Policy Optimization (PPO), Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation (ACKTR) and Generative Adversarial Imitation Learning (GAIL).
Stars: ✭ 2,632 (+4214.75%)
Mutual labels:  deep-reinforcement-learning, atari, actor-critic
robotic-warehouse
Multi-Robot Warehouse (RWARE): A multi-agent reinforcement learning environment
Stars: ✭ 62 (+1.64%)
Mutual labels:  environment, multi-agent, multi-agent-reinforcement-learning
Pytorch Drl
PyTorch implementations of various Deep Reinforcement Learning (DRL) algorithms for both single agent and multi-agent.
Stars: ✭ 233 (+281.97%)
Mutual labels:  deep-reinforcement-learning, actor-critic
jax-rl
JAX implementations of core Deep RL algorithms
Stars: ✭ 61 (+0%)
Mutual labels:  deep-reinforcement-learning, actor-critic
WildWorld
Sandbox freestyle multiplayer game/engine in LÖVE/LUA.
Stars: ✭ 35 (-42.62%)
Mutual labels:  games, multiplayer-game
Neural-Fictitous-Self-Play
Scalable Implementation of Neural Fictitous Self-Play
Stars: ✭ 52 (-14.75%)
Mutual labels:  games, reinforcement-learning-algorithms
Machine Learning Is All You Need
🔥🌟《Machine Learning 格物志》: ML + DL + RL basic codes and notes by sklearn, PyTorch, TensorFlow, Keras & the most important, from scratch!💪 This repository is ALL You Need!
Stars: ✭ 173 (+183.61%)
Mutual labels:  deep-reinforcement-learning, actor-critic
Galaxy-Attack
An inspiration of the original Atari Space Invaders game built in pygame 👾 🎮
Stars: ✭ 32 (-47.54%)
Mutual labels:  games, atari
GoBigger
Come & try Decision-Intelligence version of "Agar"! Gobigger could also help you with multi-agent decision intelligence study.
Stars: ✭ 410 (+572.13%)
Mutual labels:  environment, multi-agent
yarll
Combining deep learning and reinforcement learning.
Stars: ✭ 84 (+37.7%)
Mutual labels:  deep-reinforcement-learning, reinforcement-learning-algorithms
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 (+209.84%)
Mutual labels:  deep-reinforcement-learning, actor-critic
Reinforcement Learning
Minimal and Clean Reinforcement Learning Examples
Stars: ✭ 2,863 (+4593.44%)
Mutual labels:  deep-reinforcement-learning, actor-critic
Pytorch sac
PyTorch implementation of Soft Actor-Critic (SAC)
Stars: ✭ 174 (+185.25%)
Mutual labels:  deep-reinforcement-learning, actor-critic
Crystalshire
Legacy VB6 open-source ORPG
Stars: ✭ 24 (-60.66%)
Mutual labels:  games, multiplayer-game
Rlenv.directory
Explore and find reinforcement learning environments in a list of 150+ open source environments.
Stars: ✭ 79 (+29.51%)
Mutual labels:  environment, deep-reinforcement-learning
king-pong
Deep Reinforcement Learning Pong Agent, King Pong, he's the best
Stars: ✭ 23 (-62.3%)
Mutual labels:  deep-reinforcement-learning, reinforcement-learning-algorithms
Baby A3c
A high-performance Atari A3C agent in 180 lines of PyTorch
Stars: ✭ 144 (+136.07%)
Mutual labels:  deep-reinforcement-learning, actor-critic
Minimalrl
Implementations of basic RL algorithms with minimal lines of codes! (pytorch based)
Stars: ✭ 2,051 (+3262.3%)
Mutual labels:  deep-reinforcement-learning, policy-gradients

Logo

Introduction

Fruit API (http://fruitlab.org/) is a universal deep reinforcement learning framework, which is designed meticulously to provide a friendly user interface, a fast algorithm prototyping tool, and a multi-purpose framework for RL research community. Specifically, Fruit API has the following noticeable contributions:

  • Friendly API: Fruit API follows a modular design combined with the OOP in Python to provide a solid foundation and an easy-to-use user interface via a simplified API. Based on the design, our ultimate goal is to provide researchers a means to develop reinforcement learning (RL) algorithms with little effort. In particular, it is possible to develop a new RL algorithm under 100 lines of code. What users need to do is to create a Config, a Learner, and plug them into the framework. We also provides a lot of sample Configs and Learners in a hierarchical structure so that users can inherit a suitable one.

Figure 1

  • Portability: The framework can work properly in different operating systems including Windows, Linux, and Mac OS.

  • Interoperability: We keep in mind that Fruit API should work with any deep learning libraries such as PyTorch, Tensorflow, Keras, etc. Researchers would define the neural network architecture in the config file by using their favourite libraries. Instead of implementing a lot of deep RL algorithms, we provide a flexible way to integrate existing deep RL libraries by introducing plugins. Plugins extract learners from other deep RL libraries and plug into FruitAPI.

  • Generality: The framework supports different disciplines in reinforement learning such as multiple objectives, multiple agents, and human-agent interaction.

We also implemented a set of deep RL baselines in different RL disciplines as follows.

RL baselines

  • Monte-Carlo
  • Q-Learning

Value-based deep RL baselines:

  • Deep Q-Network (DQN)
  • Double DQN
  • Dueling network with DQN
  • Prioritized Experience Replay (proportional approach)
  • DQN variants (asynchronous/synchronous method)

Policy-based deep RL baselines:

  • A3C

Multi-agent deep RL:

  • Multi-agent A3C
  • Multi-agent A3C with communication map

Multi-objective RL/deep RL:

  • Q-Learning
  • Multi-objective Q-Learning (linear and non-linear method)
  • Multi-objective DQN (linear and non-linear method)
  • Multi-objective A3C (linear and non-linear method)
  • Single-policy/multi-policy method
  • Hypervolume

Human-agent interaction

  • A3C with map
  • Divide and conquer strategy with DQN

Plugins

  • TensorForce plugin (still experimenting). By using TensorForce plugin, it is possible to use all deep RL algorithms implemented in TensorForce library via FruitAPI such as: PPO, TRPO, VPG, DDPG/DPG.
  • Other plugins (OpenAI Baselines, RLLab) are coming soon.

Built-in environments

  • Arcade learning environment (Atari games)
  • OpenAI Gym
  • DeepMind Lab
  • Carla (self-driving car)
  • TensorForce's environments:
    • OpenAI Retro
    • DeepMind Pycolab
    • Unreal Engine
    • Maze Explorer
    • Robotics - OpenSim
    • Pygame Learning environment
    • ViZDoom

External environments can be integrated into the framework easily by plugging into FruitEnvironment. Finally, we developed 5 extra environments as a testbed to examine different disciplines in deep RL:

  • Mountain car (multi-objective environment/graphical support)
  • Deep sea treasure (multi-objective environment/graphical support)
  • Tank battle (multi-agent/multi-objective/human-agent cooperation environment)
  • Food collector (multi-objective environment)
  • Milk factory (multi-agent/heterogeneous environment)

Video demonstrations can be found here (click on the images):

Documentation

  1. Installation guide

  2. Quick start

  3. API reference

Please visit our official website here for more updates, tutorials, sample codes, etc.

References

ReinforcePy is a great repository that we referenced during the development of Fruit API.

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].