{"id":15066234,"url":"https://github.com/sforaidl/genrl","last_synced_at":"2025-10-09T07:13:34.854Z","repository":{"id":38392054,"uuid":"250262642","full_name":"SforAiDl/genrl","owner":"SforAiDl","description":"A PyTorch reinforcement learning library for generalizable and reproducible algorithm implementations with an aim to improve accessibility in RL","archived":false,"fork":false,"pushed_at":"2022-12-27T15:36:33.000Z","size":8066,"stargazers_count":413,"open_issues_count":61,"forks_count":58,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-09-04T12:59:00.478Z","etag":null,"topics":["algorithm-implementations","benchmarking","data-science","deep-learning","gym","hacktoberfest","machine-learning","neural-network","openai","python","pytorch","reinforcement-learning","reinforcement-learning-algorithms"],"latest_commit_sha":null,"homepage":"https://genrl.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SforAiDl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-26T13:14:19.000Z","updated_at":"2025-08-25T22:29:59.000Z","dependencies_parsed_at":"2023-01-31T04:45:12.224Z","dependency_job_id":null,"html_url":"https://github.com/SforAiDl/genrl","commit_stats":null,"previous_names":["sforaidl/jigglypuffrl"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/SforAiDl/genrl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SforAiDl%2Fgenrl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SforAiDl%2Fgenrl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SforAiDl%2Fgenrl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SforAiDl%2Fgenrl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SforAiDl","download_url":"https://codeload.github.com/SforAiDl/genrl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SforAiDl%2Fgenrl/sbom","scorecard":{"id":128325,"data":{"date":"2025-08-11","repo":{"name":"github.com/SforAiDl/genrl","commit":"ce767e43859a65e67d3ec1f7ca59b751b114615f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":2,"reason":"Found 8/30 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/cancel.yml:1","Warn: no topLevel permission defined: .github/workflows/codecov.yml:1","Warn: no topLevel permission defined: .github/workflows/lint-check.yml:1","Warn: no topLevel permission defined: .github/workflows/stale.yml:1","Warn: no topLevel permission defined: .github/workflows/test_linux.yml:1","Warn: no topLevel permission defined: .github/workflows/test_macos.yml:1","Warn: no topLevel permission defined: .github/workflows/test_windows.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/cancel.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/cancel.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codecov.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/codecov.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codecov.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/codecov.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codecov.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/codecov.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/codecov.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/codecov.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-check.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/lint-check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-check.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/lint-check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-check.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/lint-check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/stale.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_linux.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_linux.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_linux.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_linux.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_linux.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_linux.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_linux.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_linux.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_linux.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_linux.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_linux.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_linux.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_macos.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_macos.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_macos.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_macos.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_macos.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_macos.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_macos.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_macos.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_macos.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_macos.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_macos.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_macos.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_windows.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_windows.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_windows.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_windows.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_windows.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_windows.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_windows.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_windows.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test_windows.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_windows.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test_windows.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/SforAiDl/genrl/test_windows.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .scripts/unix_cpu_build.sh:4","Warn: pipCommand not pinned by hash: .scripts/unix_cpu_build.sh:5","Warn: pipCommand not pinned by hash: .scripts/unix_cpu_build.sh:6","Warn: pipCommand not pinned by hash: .github/workflows/codecov.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/codecov.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/codecov.yml:35","Warn: pipCommand not pinned by hash: .github/workflows/lint-check.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/lint-check.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/lint-check.yml:35","Info:   0 out of  22 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   9 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'","Warn: branch protection not enabled for branch 'v0.0.2'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"54 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-42986 / GHSA-43fp-rhv2-5gv8","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: PYSEC-2022-42991 / GHSA-v3c5-jqr6-7qm8","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: GHSA-qr4w-53vh-m672","Warn: Project is vulnerable to: PYSEC-2023-183","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: PYSEC-2021-41 / GHSA-3wvg-mj6g-m9cv","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: GHSA-4fx9-vc88-q2xc","Warn: Project is vulnerable to: PYSEC-2021-35 / GHSA-57h3-9rgr-c24m","Warn: Project is vulnerable to: PYSEC-2021-331 / GHSA-7534-mm45-c74v","Warn: Project is vulnerable to: PYSEC-2021-137 / GHSA-77gc-v2xv-rvvh","Warn: Project is vulnerable to: PYSEC-2021-92 / GHSA-7r7m-5h27-29hp","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2022-10 / GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2021-36 / GHSA-8xjq-8fcg-g5hw","Warn: Project is vulnerable to: PYSEC-2021-42 / GHSA-95q3-8gr9-gm8w","Warn: Project is vulnerable to: PYSEC-2021-317 / GHSA-98vv-pw6r-q6q4","Warn: Project is vulnerable to: PYSEC-2021-38 / GHSA-9hx2-hgq2-2g4f","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: PYSEC-2021-40 / GHSA-f4w8-cv6p-x6r5","Warn: Project is vulnerable to: PYSEC-2021-69 / GHSA-f5g8-5qq7-938w","Warn: Project is vulnerable to: PYSEC-2021-139 / GHSA-g6rj-rv7j-xwp4","Warn: Project is vulnerable to: PYSEC-2021-71 / GHSA-hf64-x4gq-p99h","Warn: Project is vulnerable to: PYSEC-2021-94 / GHSA-hjfx-8p6c-g7gx","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: GHSA-jgpv-4h4c-xhw3","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2021-37 / GHSA-mvg9-xffr-p774","Warn: Project is vulnerable to: PYSEC-2021-39 / GHSA-p43w-g3c5-g5mq","Warn: Project is vulnerable to: PYSEC-2022-8 / GHSA-pw3c-h7wp-cvhx","Warn: Project is vulnerable to: PYSEC-2021-93 / GHSA-q5hq-fp76-qmrc","Warn: Project is vulnerable to: PYSEC-2021-138 / GHSA-rwv7-3v45-hg29","Warn: Project is vulnerable to: PYSEC-2021-70 / GHSA-vqcj-wrf2-7v73","Warn: Project is vulnerable to: PYSEC-2022-9 / GHSA-xrcv-f9gm-v42c","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579","Warn: Project is vulnerable to: GHSA-3749-ghw9-m3mg","Warn: Project is vulnerable to: PYSEC-2022-43015 / GHSA-47fc-vmwq-366v","Warn: Project is vulnerable to: PYSEC-2025-41 / GHSA-53q9-r3pm-6pq6","Warn: Project is vulnerable to: PYSEC-2024-252 / GHSA-5pcm-hx3q-hm94","Warn: Project is vulnerable to: GHSA-887c-mr87-cxwp","Warn: Project is vulnerable to: PYSEC-2024-251 / GHSA-pg7h-5qx3-wjr3","Warn: Project is vulnerable to: PYSEC-2024-250","Warn: Project is vulnerable to: PYSEC-2024-259","Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":-1,"reason":"internal error: internal error: Client.Checks.ListCheckRunsForRef: error during graphqlHandler.setupCheckRuns: non-200 OK status code: 502 Bad Gateway body: \"\u003chtml\u003e\\r\\n\u003chead\u003e\u003ctitle\u003e502 Bad Gateway\u003c/title\u003e\u003c/head\u003e\\r\\n\u003cbody\u003e\\r\\n\u003ccenter\u003e\u003ch1\u003e502 Bad Gateway\u003c/h1\u003e\u003c/center\u003e\\r\\n\u003chr\u003e\u003ccenter\u003enginx\u003c/center\u003e\\r\\n\u003c/body\u003e\\r\\n\u003c/html\u003e\\r\\n\"","details":null,"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T04:35:04.798Z","repository_id":38392054,"created_at":"2025-08-16T04:35:04.798Z","updated_at":"2025-08-16T04:35:04.798Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000985,"owners_count":26082971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm-implementations","benchmarking","data-science","deep-learning","gym","hacktoberfest","machine-learning","neural-network","openai","python","pytorch","reinforcement-learning","reinforcement-learning-algorithms"],"created_at":"2024-09-25T01:04:01.745Z","updated_at":"2025-10-09T07:13:34.805Z","avatar_url":"https://github.com/SforAiDl.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n    \u003cbr\u003e\n    \u003cimg src=\"https://github.com/SforAiDl/genrl/blob/master/docs/source/assets/images/genrl.png\" width=\"200\"/\u003e\n    \u003cbr\u003e\n\u003c/p\u003e\n\u003cdiv align='center'\u003e\n\n[![pypi](https://img.shields.io/badge/pypi%20package-v0.0.2-blue)](https://pypi.org/project/genrl/)\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/genrl.svg)](https://pypi.python.org/pypi/ansicolortags/)\n[![Downloads](https://pepy.tech/badge/genrl)](https://pepy.tech/project/genrl)\n[![codecov](https://codecov.io/gh/SforAiDl/genrl/branch/master/graph/badge.svg)](https://codecov.io/gh/SforAiDl/genrl)\n[![GitHub license](https://img.shields.io/github/license/SforAiDl/genrl)](https://github.com/SforAiDl/genrl/blob/master/LICENSE)\n\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/SforAiDl/genrl.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/SforAiDl/genrl/context:python)\n[![Maintainability](https://api.codeclimate.com/v1/badges/c3f6e7d31c078528e0e1/maintainability)](https://codeclimate.com/github/SforAiDl/genrl/maintainability)\n[![CodeFactor](https://www.codefactor.io/repository/github/sforaidl/genrl/badge)](https://www.codefactor.io/repository/github/sforaidl/genrl)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/SforAiDl/genrl.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/SforAiDl/genrl/alerts/)\n\n[![Build Status](https://travis-ci.com/SforAiDl/genrl.svg?branch=master)](https://travis-ci.com/SforAiDl/genrl)\n[![Documentation Status](https://readthedocs.org/projects/genrl/badge/?version=latest)](https://genrl.readthedocs.io/en/latest/?badge=latest)\n![Tests MacOS](https://github.com/SforAiDl/genrl/workflows/Tests%20MacOS/badge.svg)\n![Tests Linux](https://github.com/SforAiDl/genrl/workflows/Tests%20Linux/badge.svg)\n![Tests Windows](https://github.com/SforAiDl/genrl/workflows/Tests%20Windows/badge.svg)\n\n[![Slack - Chat](https://img.shields.io/badge/Slack-Chat-blueviolet)](https://join.slack.com/t/genrlworkspace/shared_invite/zt-gwlgnymd-Pw3TYC~0XDLy6VQDml22zg)\n\n\u003c/div\u003e\n\n[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/0)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/0)[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/1)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/1)[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/2)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/2)[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/3)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/3)[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/4)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/4)[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/5)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/5)[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/6)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/6)[![](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/images/7)](https://sourcerer.io/fame/Sharad24/Sharad24/genrl/links/7)\n\n---\n\n**GenRL is a PyTorch reinforcement learning library centered around reproducible, generalizable algorithm implementations and improving accessibility in Reinforcement Learning** \n\n**GenRL's current release is at v0.0.2. Expect breaking changes**\n\nReinforcement learning research is moving faster than ever before. In order to keep up with the growing trend and ensure that RL research remains reproducible, GenRL aims to aid faster paper reproduction and benchmarking by providing the following main features:\n\n- **PyTorch-first**: Modular, Extensible and Idiomatic Python\n- **Tutorials and Example**: 20+ Tutorials from basic RL to SOTA Deep RL algorithm (with explanations)!\n- **Unified Trainer and Logging class**: code reusability and high-level UI\n- **Ready-made algorithm implementations**: ready-made implementations of popular RL algorithms.\n- **Faster Benchmarking**: automated hyperparameter tuning, environment implementations etc.\n\nBy integrating these features into GenRL, we aim to eventually support **any new algorithm implementation in less than 100 lines**.\n\n**If you're interested in contributing, feel free to go through the issues and open PRs for code, docs, tests etc. In case of any questions, please check out the [Contributing Guidelines](CONTRIBUTING.md)**\n\n\n## Installation\n\nGenRL is compatible with Python 3.6 or later and also depends on `pytorch` and `openai-gym`. The easiest way to install GenRL is with pip, Python's preferred package installer.\n\n    $ pip install genrl\n\nNote that GenRL is an active project and routinely publishes new releases. In order to upgrade GenRL to the latest version, use pip as follows.\n\n    $ pip install -U genrl\n\nIf you intend to install the latest unreleased version of the library (i.e from source), you can simply do:\n\n    $ git clone https://github.com/SforAiDl/genrl.git\n    $ cd genrl\n    $ python setup.py install\n\n## Usage\nTo train a Soft Actor-Critic model from scratch on the `Pendulum-v0` gym environment and log rewards on tensorboard\n```python\nimport gym\n\nfrom genrl.agents import SAC\nfrom genrl.trainers import OffPolicyTrainer\nfrom genrl.environments import VectorEnv\n\nenv = VectorEnv(\"Pendulum-v0\")\nagent = SAC('mlp', env)\ntrainer = OffPolicyTrainer(agent, env, log_mode=['stdout', 'tensorboard'])\ntrainer.train()\n```\n\nTo train a Tabular Dyna-Q model from scratch on the `FrozenLake-v0` gym environment and plot rewards:\n```python\nimport gym\n\nfrom genrl.agents import QLearning\nfrom genrl.trainers import ClassicalTrainer\n\nenv = gym.make(\"FrozenLake-v0\")\nagent = QLearning(env)\ntrainer = ClassicalTrainer(agent, env, mode=\"dyna\", model=\"tabular\", n_episodes=10000)\nepisode_rewards = trainer.train()\ntrainer.plot(episode_rewards)\n```\n\n## Tutorials\n- [Multi Armed Bandits](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/bandit_overview.html)\n    - [Upper Confidence Bound](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/ucb.html)\n    - [Thompson Sampling](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/thompson_sampling.html)\n    - [Bayesian](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/bayesian.html)\n    - [Softmax Action Selection](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/gradients.html)\n- [Contextual Bandits](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/contextual_overview.html)\n    - [Linear Posterior Inference](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/linpos.html)\n    - [Variational Inference](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/variational.html)\n    - [https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/bootstrap.html](Bootstrap)\n    - [Parameter Noise Sampling](https://genrl.readthedocs.io/en/latest/usage/tutorials/bandit/noise.html)\n- [Deep Reinforcement Learning Background](https://genrl.readthedocs.io/en/latest/usage/tutorials/Deep/Background.html)\n    - [Vanilla Policy Gradients](https://genrl.readthedocs.io/en/latest/usage/tutorials/Deep/VPG.html)\n    - [Advantage Actor Critic](https://genrl.readthedocs.io/en/latest/usage/tutorials/Deep/A2C.html)\n    - [Proximal Policy Optimization](https://genrl.readthedocs.io/en/latest/usage/tutorials/Deep/PPO.html)\n    \n## Algorithms\n\n### Deep RL\n - DQN (Deep Q Networks)\n    - DQN\n    - Double DQN\n    - Dueling DQN\n    - Noisy DQN\n    - Categorical DQN\n - VPG (Vanilla Policy Gradients)\n - A2C (Advantage Actor-Critic)\n - PPO (Proximal Policy Optimization)\n - DDPG (Deep Deterministic Policy Gradients)\n - TD3 (Twin Delayed DDPG)\n - SAC (Soft Actor Critic)\n\n### Classical RL\n - SARSA\n - Q Learning\n\n### Bandit RL\n - Multi Armed Bandits\n    - Eps Greedy\n    - UCB\n    - Thompson Sampling\n    - Bayesian Bandits\n    - Softmax Explorer\n  - Contextual Bandits\n    - Eps Greedy\n    - UCB\n    - Thompson Sampling\n    - Bayesian Bandits\n    - Softmax Explorer\n - Deep Contextual Bandits\n    - Variation Inference\n    - Noise sampling for neural network parameters\n    - Epsilon greedy with a neural network\n    - Bayesian Regression on for posterior inference\n    - Bootstraped Ensemble\n    \n\n#### Credits and Similar Libraries:\n- [Gym](https://gym.openai.com/) - Environments \n- [Ray](https://github.com/ray-project/ray)\n- [OpenAI Baselines](https://github.com/openai/baselines) - Logger\n- [Stable Baselines 3](https://github.com/DLR-RM/stable-baselines3): Stable Baselines aims to provide _baselines_ for Deep RL Algorithms. \n- [pytorch-a2c-ppo-acktr](https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail)\n- [Deep Contextual Bandits](https://github.com/tensorflow/models/tree/archive/research/deep_contextual_bandits)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsforaidl%2Fgenrl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsforaidl%2Fgenrl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsforaidl%2Fgenrl/lists"}