All Projects → cyoon1729 → distributedRL

cyoon1729 / distributedRL

Licence: MIT license
A framework for easy prototyping of distributed reinforcement learning algorithms

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to distributedRL

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 (+138.71%)
Mutual labels:  dqn
AI BIG DATAS ALGORITHM
大数据+人工智能+数据结构相关案例项目
Stars: ✭ 28 (-69.89%)
Mutual labels:  dqn
dynamic-queue
The dynamic queue
Stars: ✭ 17 (-81.72%)
Mutual labels:  zeromq
dqn-obstacle-avoidance
Deep Reinforcement Learning for Fixed-Wing Flight Control with Deep Q-Network
Stars: ✭ 57 (-38.71%)
Mutual labels:  dqn
node-ray
Debug your NodeJS & web code with Ray to fix problems faster
Stars: ✭ 39 (-58.06%)
Mutual labels:  ray
faabric
Messaging and state layer for distributed serverless applications
Stars: ✭ 39 (-58.06%)
Mutual labels:  zeromq
reinforcement learning with Tensorflow
Minimal implementations of reinforcement learning algorithms by Tensorflow
Stars: ✭ 28 (-69.89%)
Mutual labels:  dqn
logrl
Logarithmic Reinforcement Learning
Stars: ✭ 25 (-73.12%)
Mutual labels:  dqn
funboost
pip install funboost,python全功能分布式函数调度框架,。支持python所有类型的并发模式和全球一切知名消息队列中间件,python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数。旧名字是function_scheduling_distributed_framework
Stars: ✭ 351 (+277.42%)
Mutual labels:  zeromq
MetaTrader4-Bridge
Communication layer between MetaTrader 4 and your project.
Stars: ✭ 66 (-29.03%)
Mutual labels:  zeromq
Rainy
☔ Deep RL agents with PyTorch☔
Stars: ✭ 39 (-58.06%)
Mutual labels:  dqn
RL-FlappyBird
Using reinforcement learning to train FlappyBird.
Stars: ✭ 68 (-26.88%)
Mutual labels:  dqn
malib
A parallel framework for population-based multi-agent reinforcement learning.
Stars: ✭ 341 (+266.67%)
Mutual labels:  ray
UAV-DDPG
Code for paper "Computation Offloading Optimization for UAV-assisted Mobile Edge Computing: A Deep Deterministic Policy Gradient Approach"
Stars: ✭ 133 (+43.01%)
Mutual labels:  dqn
Bynar
Server remediation as a service
Stars: ✭ 53 (-43.01%)
Mutual labels:  zeromq
pytorch-distributed
Ape-X DQN & DDPG with pytorch & tensorboard
Stars: ✭ 98 (+5.38%)
Mutual labels:  dqn
ofxRaycaster
Plane, 2D and 3D Ray objects for openFrameworks.It checks for the intersection of a ray with a segment, a sphere, a triangle, a plane, an ofPrimitive, an ofPolyline an with an ofMesh.
Stars: ✭ 54 (-41.94%)
Mutual labels:  ray
app
Buggregator is a beautiful, lightweight debug server build on Laravel that helps you catch your smpt, sentry, var-dump, monolog, ray outputs. It runs without installation on multiple platforms.
Stars: ✭ 259 (+178.49%)
Mutual labels:  ray
DQN-pytorch
A PyTorch implementation of Human-Level Control through Deep Reinforcement Learning
Stars: ✭ 23 (-75.27%)
Mutual labels:  dqn
ZeroMQ
🚀 Client/Server & Pub/Sub Examples with ZeroMQ & Boost
Stars: ✭ 33 (-64.52%)
Mutual labels:  zeromq

distributedRL

distributedRL is a framework for prototyping disrtibuted reinforcement learning using Pytorch, Ray, and ZeroMQ (and more). You can make use of the structural components to easily distribute your reinforcement learning algorithm, on a single-machine.

Currently, an implementation of Ape-X DQN is available. IMPALA and SEED are planned to be implemented.

Feel free to reach out (cjy2129 at columbia dot edu) or raise an issue if you have any questions!

A note about a few choices

  • ApeXLearner and ApeXWorker are implemented as abstract classes (that inherit common.abstract.Learner and common.abstract.Worker respectively). To extend Ape-X to any off-policy RL algorithm, you just have to implement algorithm-specific details, such as action selection, environment step, and learning step (check the abstract classes for more detail).
  • I use ZeroMQ for inter-process communication instead of the Ray's built-in features. (1) I wanted the data-passing mechanism and serialization to be a bit more explicit, and (2) ray's inter-process communication forbids calling remote operations, which I found to be a bit restricting for this purpose.

Installation

clone the repository, then

conda env create -f environment.yml
conda activate distrl
pip install -e .

A Short Tutorial

To be added

Benchmarking

To be added

Acknowledgements

I thank @Avrech for his helpful discussion, suggestions and enhancements. In particular, on identifying bugs and bottlenecks and improving asynchrony of the Ape-X implementation.

References/Papers:

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