DistributedReinforcementLearning

A reinforcement learning package for Julia

https://github.com/juliareinforcementlearning/reinforcementlearning.jl

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: researchgate.net
  • Committers with academic emails
    1 of 61 committers (1.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary

Keywords

deep-q-network deep-reinforcement-learning julia machine-learning reinforcement-learning

Keywords from Contributors

flux optim the-human-brain polytope julialang automatic-differentiation agents graphics physics pde
Last synced: 6 months ago · JSON representation ·

Repository

A reinforcement learning package for Julia

Basic Info
Statistics
  • Stars: 635
  • Watchers: 12
  • Forks: 109
  • Open Issues: 25
  • Releases: 35
Topics
deep-q-network deep-reinforcement-learning julia machine-learning reinforcement-learning
Created over 7 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog Funding License Citation

README.md

"Make It Work Make It Right Make It Fast"


ReinforcementLearning.jl, as the name says, is a package for reinforcement learning research in Julia.

Our design principles are:

  • Reusability and extensibility: Provide elaborately designed components and interfaces to help users implement new algorithms.
  • Easy experimentation: Make it easy for new users to run benchmark experiments, compare different algorithms, evaluate and diagnose agents.
  • Reproducibility: Facilitate reproducibility from traditional tabular methods to modern deep reinforcement learning algorithms.

🏹 Get Started

```julia julia> ] add ReinforcementLearning

julia> using ReinforcementLearning

julia> run( RandomPolicy(), CartPoleEnv(), StopAfterNSteps(1_000), TotalRewardPerEpisode() ) ```

The above simple example demonstrates four core components in a general reinforcement learning experiment:

Check out the tutorial page to learn how these four components are assembled together to solve many interesting problems. We also write blog occasionally to explain the implementation details of some algorithms. Among them, the most recommended one is An Introduction to ReinforcementLearning.jl, which explains the design idea of this package.

🙋 Why ReinforcementLearning.jl?

🚀 Fast Speed

[TODO:]

🧰 Feature Rich

[TODO:]

🌲 Project Structure

ReinforcementLearning.jl itself is just a wrapper around several other subpackages. The relationship between them is depicted below:

+-----------------------------------------------------------------------------------+
|                                                                                   |
|  ReinforcementLearning.jl                                                         |
|                                                                                   |
|      +------------------------------+                                             |
|      | ReinforcementLearningBase.jl |                                             |
|      +----|-------------------------+                                             |
|           |                                                                       |
|           |     +--------------------------------------+                          |
|           +---->+ ReinforcementLearningEnvironments.jl |                          |
|           |     +--------------------------------------+                          |
|           |                                                                       |
|           |     +------------------------------+                                  |
|           +---->+ ReinforcementLearningCore.jl |                                  |
|                 +----|-------------------------+                                  |
|                      |                                                            |
|                      |     +-----------------------------+                        |
|                      +---->+ ReinforcementLearningZoo.jl |                        |
|                            +----|------------------------+                        |
|                                 |                                                 |
|                                 |     +-------------------------------------+     |
|                                 +---->+ DistributedReinforcementLearning.jl |     |
|                                       +-------------------------------------+     |
|                                                                                   |
+------|----------------------------------------------------------------------------+
       |
       |     +-------------------------------------+
       +---->+ ReinforcementLearningExperiments.jl |
       |     +-------------------------------------+
       |
       |     +----------------------------------------+
       +---->+ ReinforcementLearningAnIntroduction.jl |
             +----------------------------------------+

✋ Getting Help

Are you looking for help with ReinforcementLearning.jl? Here are ways to find help: 1. Read the online documentation! Most likely the answer is already provided in an example or in the API documents. Search using the search bar in the upper left. <!-- cspell:disable-next --> 2. Chat with us in Julia Slack in the #reinforcement-learnin channel. 3. Post a question in the Julia discourse forum in the category "Machine Learning" and use "reinforcement-learning" as a tag. 4. For issues with unexpected behavior or defects in ReinforcementLearning.jl, then please open an issue on the ReinforcementLearning GitHub page with a minimal working example and steps to reproduce.

🖖 Supporting

ReinforcementLearning.jl is a MIT licensed open source project with its ongoing development made possible by many contributors in their spare time. However, modern reinforcement learning research requires huge computing resource, which is unaffordable for individual contributors. So if you or your organization could provide the computing resource in some degree and would like to cooperate in some way, please contact us!

This package is written in pure Julia. Please consider supporting the JuliaLang org if you find this package useful. ❤

✍️ Citing

If you use ReinforcementLearning.jl in a scientific publication, we would appreciate references to the CITATION.bib.

✨ Contributors

Thanks goes to these wonderful people (emoji key):


jbrea

💻 📖 🚧

Jun Tian

💻 📖 🚧 🤔

Aman Bhatia

📖

Alexander Terenin

💻

Sid-Bhatia-0

💻

norci

💻 🚧

Sriram

💻

Pavan B Govindaraju

💻

Alex Lewandowski

💻

Raj Ghugare

💻

Roman Bange

💻

Felix Chalumeau

💻

Rishabh Varshney

💻

Zachary Sunberg

💻 📖 🚧 🤔

Jonathan Laurent

🤔

Andriy Drozdyuk

📖

Ritchie Lee

🐛

Xirui Zhao

💻

Nerd

📖

Albin Heimerson

💻 📖 🚧

michelangelo21

🐛

GuoYu Yang

📖 💻 🐛

Prasidh Srikumar

💻

Ilan Coulon

💻

Jinrae Kim

📖 🐛

luigiannelli

🐛

Jacob Boerma

💻

Xavier Valcarce

🐛

Ashwani Rathee

💻

Goran Nakerst

💻

ultradian

📖

Ikko Ashimine

📖

Krishna Bhogaonker

🐛

Philipp A. Kienscherf

🐛

Stefan Krastanov

📖

LaarsOman

📖

Bo Lu

💻

Peter Chen

💻 📖

Shuhua Gao

💻 💬

johannes-fischer

💻

Tom Marty

🐛 💻

Abhinav Bhatia

🐛 💻

Harley Wiltzer

💻 📖 🐛

Dylan Asmar

💻

andreyzhitnikov

🐛

Andrea PIERRÉ

📖

Mo8it

💻

Benoît Legat

📖

Henri Dehaybe

💻 📖

NPLawrence

💻

Bileam Scheuvens

📖

Jarbus

🐛

tyleringebrand

🐛

baedan

💻

ll7

📖

Matthew LeMay

📖

Ludvig Killingberg

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Owner

  • Name: JuliaReinforcementLearning
  • Login: JuliaReinforcementLearning
  • Kind: organization

A collection of tools for reinforcement learning research in Julia

Citation (CITATION.bib)

@misc{Tian2020Reinforcement,
  author       = {Jun Tian and other contributors},
  title        = {ReinforcementLearning.jl: A Reinforcement Learning Package for the Julia Programming Language},
  year         = 2020,
  url          = {https://github.com/JuliaReinforcementLearning/ReinforcementLearning.jl}
}

GitHub Events

Total
  • Create event: 12
  • Issues event: 5
  • Release event: 3
  • Watch event: 49
  • Delete event: 2
  • Issue comment event: 47
  • Push event: 13
  • Pull request review event: 1
  • Pull request event: 15
  • Fork event: 4
Last Year
  • Create event: 12
  • Issues event: 5
  • Release event: 3
  • Watch event: 49
  • Delete event: 2
  • Issue comment event: 47
  • Push event: 13
  • Pull request review event: 1
  • Pull request event: 15
  • Fork event: 4

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 1,460
  • Total Committers: 61
  • Avg Commits per committer: 23.934
  • Development Distribution Score (DDS): 0.583
Past Year
  • Commits: 47
  • Committers: 5
  • Avg Commits per committer: 9.4
  • Development Distribution Score (DDS): 0.106
Top Committers
Name Email Commits
Jun Tian f****y@f****m 609
github-actions[bot] 4****] 207
Jeremiah 4****s 135
Johanni Brea j****a 82
noreply n****y@j****g 73
Henri Dehaybe 4****h 68
allcontributors[bot] 4****] 50
Prasidh Srikumar 4****D 28
norci n****i 24
Guoyu Yang 9****4@q****m 23
Peter Chen c****1@g****m 18
Albin Heimerson a****m@h****m 17
Sid-Bhatia-0 3****0 16
Johanni Brea j****a@g****m 10
Sriram s****k@g****m 7
Mytolo M****o 6
Alexander Terenin a****n 5
Mo8it 7****t 5
root r****t@i****h 4
Pavan BG g****c@y****m 4
Julia TagBot 5****t 4
Andrea PIERRÉ 6****l 4
Bo Lu b****a 3
CasBex 1****x 3
Ilan Coulon i****n@g****m 3
Joel Reymont 1****t 3
Ludvig Killingberg l****k 3
Roman Bange 1****e 3
baedan 1****n 3
Shuhua Gao n****a@g****m 3
and 31 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 80
  • Total pull requests: 275
  • Average time to close issues: 4 months
  • Average time to close pull requests: 16 days
  • Total issue authors: 41
  • Total pull request authors: 21
  • Average comments per issue: 10.36
  • Average comments per pull request: 1.19
  • Merged pull requests: 157
  • Bot issues: 0
  • Bot pull requests: 110
Past Year
  • Issues: 3
  • Pull requests: 13
  • Average time to close issues: 27 days
  • Average time to close pull requests: 13 days
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 1.67
  • Average comments per pull request: 0.15
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • jeremiahpslewis (11)
  • HenriDeh (5)
  • joelreymont (4)
  • CasBex (4)
  • filchristou (4)
  • dharux (3)
  • tyler-ingebrand (2)
  • Mytolo (2)
  • hespanha (2)
  • gggoes (2)
  • EliottEccidio (2)
  • ZdM87 (2)
  • Van314159 (2)
  • alerem18 (2)
  • johannes-fischer (2)
Pull Request Authors
  • jeremiahpslewis (136)
  • github-actions[bot] (110)
  • HenriDeh (29)
  • allcontributors[bot] (9)
  • Mytolo (8)
  • joelreymont (5)
  • CasBex (3)
  • jbrea (3)
  • dependabot[bot] (2)
  • hespanha (2)
  • SanteriVtj (2)
  • dharux (2)
  • SimonHashtag (2)
  • navaxel (1)
  • filchristou (1)
Top Labels
Issue Labels
P1 (3) v0.12 (3) enhancement (2) bug (2) design (1) help wanted (1)
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 9
  • Total downloads:
    • julia 178 total
  • Total dependent packages: 41
    (may contain duplicates)
  • Total dependent repositories: 21
    (may contain duplicates)
  • Total versions: 232
juliahub.com: ReinforcementLearningBase

A reinforcement learning package for Julia

  • Versions: 40
  • Dependent Packages: 15
  • Dependent Repositories: 20
  • Downloads: 46 Total
Rankings
Forks count: 1.0%
Stargazers count: 1.2%
Dependent repos count: 1.7%
Average: 2.1%
Dependent packages count: 4.5%
Last synced: 6 months ago
juliahub.com: ReinforcementLearning

A reinforcement learning package for Julia

  • Versions: 13
  • Dependent Packages: 8
  • Dependent Repositories: 1
  • Downloads: 37 Total
Rankings
Forks count: 1.0%
Stargazers count: 1.2%
Average: 4.6%
Dependent repos count: 7.7%
Dependent packages count: 8.6%
Last synced: 6 months ago
juliahub.com: ReinforcementLearningCore

A reinforcement learning package for Julia

  • Versions: 66
  • Dependent Packages: 9
  • Dependent Repositories: 0
  • Downloads: 46 Total
Rankings
Stargazers count: 0.9%
Forks count: 1.2%
Average: 5.4%
Dependent packages count: 9.4%
Dependent repos count: 9.9%
Last synced: 6 months ago
juliahub.com: ReinforcementLearningEnvironments

A reinforcement learning package for Julia

  • Versions: 53
  • Dependent Packages: 5
  • Dependent Repositories: 0
  • Downloads: 39 Total
Rankings
Stargazers count: 0.9%
Forks count: 1.2%
Average: 6.3%
Dependent repos count: 9.9%
Dependent packages count: 13.2%
Last synced: 6 months ago
juliahub.com: ReinforcementLearningZoo

A reinforcement learning package for Julia

  • Versions: 41
  • Dependent Packages: 3
  • Dependent Repositories: 0
  • Downloads: 6 Total
Rankings
Stargazers count: 0.9%
Forks count: 1.2%
Average: 6.3%
Dependent repos count: 9.9%
Dependent packages count: 13.2%
Last synced: 6 months ago
juliahub.com: ReinforcementLearningDatasets

A reinforcement learning package for Julia

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 0.9%
Forks count: 1.2%
Dependent repos count: 9.9%
Average: 12.8%
Dependent packages count: 38.9%
Last synced: 6 months ago
juliahub.com: ReinforcementLearningExperiments

A reinforcement learning package for Julia

  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 3 Total
Rankings
Stargazers count: 0.9%
Forks count: 1.2%
Dependent repos count: 9.9%
Average: 12.8%
Dependent packages count: 38.9%
Last synced: 6 months ago
juliahub.com: DistributedReinforcementLearning

A reinforcement learning package for Julia

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 0.9%
Forks count: 1.2%
Dependent repos count: 9.9%
Average: 12.8%
Dependent packages count: 38.9%
Last synced: 7 months ago
juliahub.com: ReinforcementLearningFarm

A reinforcement learning package for Julia

  • Versions: 3
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 9.6%
Average: 24.2%
Dependent packages count: 38.8%
Last synced: 6 months ago

Dependencies

.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
  • julia-actions/setup-julia v1 composite
  • marceloprado/has-changed-path v1 composite
.github/workflows/cspell.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v1 composite
Dockerfile docker
  • $IMAGE latest build
.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v1 composite