Commit graph

44 commits

Author SHA1 Message Date
Antonin RAFFIN
8a08078ea2
Fix default arguments + add bugbear (#363)
* Fix potential bug + add bug bear

* Remove unused variables

* Minor: version bump
2021-03-25 11:35:21 +02:00
Antonin RAFFIN
944dfdafe4
Update doc: SB3-Contrib (#267)
* Fix big when saving/loading q-net alone

* Rename variables to match SB3-contrib

* Update docker image

* Set min version for tensorboard

* Add SB3-Contrib to doc

* Update DQN

* Apply suggestions from code review

Co-authored-by: Adam Gleave <adam@gleave.me>

* Update wording

Co-authored-by: Adam Gleave <adam@gleave.me>
2020-12-21 16:17:24 +01:00
Antonin RAFFIN
2c924f52f5
Update docs (custom policy, type hints) (#167)
* Change import

* Update custom policy doc

* Re-enable sphinx_autodoc_typehints

* Update docker image

* Attempt to fix read the doc build error

* Add sphinx_autodoc_typehints to read the doc env

* Fix pip version

* Add full custom policy example

* Fix
2020-09-29 20:41:14 +03:00
Antonin RAFFIN
23afedb254
Auto-formatting with black and isort (#97)
* Add auto formatting with black and isort

* Reformat code

* Ignore typing errors

* Add note about line length

* Add minimum version for isort

* Add commit-checks

* Update docker image

* Fixed lost import (during last merge)

* Fix opencv dependency
2020-07-16 16:12:16 +02:00
Noah
96b771f24e
Implement DQN (#28)
* Created DQN template according to the paper.
Next steps:
- Create Policy
- Complete Training
- Debug

* Changed Base Class

* refactor save, to be consistence with overriding the excluded_save_params function. Do not try to exclude the parameters twice.

* Added simple DQN policy

* Finished learn and train function
- missing correct loss computation

* changed collect_rollouts to work with discrete space

* moved discrete space collect_rollouts to dqn

* basic dqn working

* deleted SDE related code

* added gradient clipping and moved greedy policy to policy

* changed policy to implement target network
and added soft update(in fact standart tau is 1 so hard update)

* fixed policy setup

* rebase target_update_intervall on _n_updates

* adapted all tests
all tests passing

* Move to stable-baseline3

* Fixes for DQN

* Fix tests + add CNNPolicy

* Allow any optimizer for DQN

* added some util functions to create a arbitrary linear schedule, fixed pickle problem with old exploration schedule

* more documentation

* changed buffer dtype

* refactor and document

* Added Sphinx Documentation
Updated changelog.rst

* removed custom collect_rollouts as it is no longer necessary

* Implemented suggestions to clean code and documentation.

* extracted some functions on tests to reduce duplicated code

* added support for exploration_fraction

* Fixed exploration_fraction

* Added documentation

* Fixed get_linear_fn -> proper progress scaling

* Merged master

* Added nature reference

* Changed default parameters to https://www.nature.com/articles/nature14236/tables/1

* Fixed n_updates to be incremented correctly

* Correct train_freq

* Doc update

* added special parameter for DQN in tests

* different fix for test_discrete

* Update docs/modules/dqn.rst

Co-authored-by: Antonin RAFFIN <antonin.raffin@ensta.org>

* Update docs/modules/dqn.rst

Co-authored-by: Antonin RAFFIN <antonin.raffin@ensta.org>

* Update docs/modules/dqn.rst

Co-authored-by: Antonin RAFFIN <antonin.raffin@ensta.org>

* Added RMSProp in optimizer_kwargs, as described in nature paper

* Exploration fraction is inverse of 50.000.000 (total frames) / 1.000.000 (frames with linear schedule) according to nature paper

* Changelog update for buffer dtype

* standard exlude parameters should be always excluded to assure proper saving only if intentionally included by ``include`` parameter

* slightly more iterations on test_discrete to pass the test

* added param use_rms_prop instead of mutable default argument

* forgot alpha

* using huber loss, adam and learning rate 1e-4

* account for train_freq in update_target_network

* Added memory check for both buffers

* Doc updated for buffer allocation

* Added psutil Requirement

* Adapted test_identity.py

* Fixes with new SB3 version

* Fix for tensorboard name

* Convert assert to warning and fix tests

* Refactor off-policy algorithms

* Fixes

* test: remove next_obs in replay buffer

* Update changelog

* Fix tests and use tmp_path where possible

* Fix sampling bug in buffer

* Do not store next obs on episode termination

* Fix replay buffer sampling

* Update comment

* moved epsilon from policy to model

* Update predict method

* Update atari wrappers to match SB2

* Minor edit in the buffers

* Update changelog

* Merge branch 'master' into dqn

* Update DQN to new structure

* Fix tests and remove hardcoded path

* Fix for DQN

* Disable memory efficient replay buffer by default

* Fix docstring

* Add tests for memory efficient buffer

* Update changelog

* Split collect rollout

* Move target update outside `train()` for DQN

* Update changelog

* Update linear schedule doc

* Cleanup DQN code

* Minor edit

* Update version and docker images

Co-authored-by: Antonin RAFFIN <antonin.raffin@ensta.org>
2020-06-29 11:16:54 +02:00
Roland Gavrilescu
bb01253261
Tensorboard integration (#30)
* init commit tensorboard-integration

* Added tb logger to ppo (with output exclusions)

* fixed truncated stdout

* categorize stdout outputs by tag

* separated exclusions from values, added missing logs

* saving exclusions as dict instead of list

* reformatting, auto run indexing

* included renaming suggestions, fixed tests

* tb support for sac

* linting

* moved logging to base class

* tb support for td3

* removed histograms, non-verbose output working

* modifed changelog

* linting

* fixed type error

* moved logger config to utils

* removed episode_rewards log from ppo

* Enable tensorboard in tests

* Remove unused import

* Update logger sub titles

* Minor edit for PPO

* Update logger and tb log folder

* Pass correct logger to Callbacks

* updated docs

* added tb example image to docs

* add support for continuing training in tensorboard

* added tensorboard to docs index

* added tb test

* moved logger config to _setup_learn, updated tests

* accessing verbose from base class

* Update doc and tests

* Rename session -> time

* Update version

* Update logger truncate

* Update types

* Remove duplicated code

Co-authored-by: Antonin RAFFIN <antonin.raffin@ensta.org>
2020-06-01 11:55:44 +02:00
Antonin RAFFIN
54f6f5b6fb
Add flake8 linter and Github CI (#19)
* Cleanup code

* Add flake8 lint and github workflow

* Update build matrix

* Relax precision for python3.7
2020-05-12 17:55:01 +02:00
Antonin RAFFIN
299c28140e
Use conda env for building the doc (#16) 2020-05-11 17:39:41 +02:00
Antonin RAFFIN
b1794ebc52 [ci skip] Simplify quickstart example 2020-05-11 15:32:01 +02:00
Antonin RAFFIN
97aea21349 Update minimum gym version 2020-05-08 12:43:42 +02:00
Antonin RAFFIN
26981f1247 Build the doc 2020-05-07 17:35:29 +02:00
Antonin RAFFIN
e6ff4bbd6c Update setup 2020-05-07 16:24:19 +02:00
Antonin RAFFIN
aa66012764 Update requirements 2020-05-07 16:21:33 +02:00
Antonin RAFFIN
8046a24719 More doc + sync VecEnvs + atari 2020-05-07 16:08:23 +02:00
Antonin RAFFIN
73afaf157c Add version.txt to package 2020-05-07 12:19:29 +02:00
Antonin RAFFIN
d17f29c8ad Add base doc 2020-05-07 10:10:51 +02:00
Antonin RAFFIN
94b1267817 Update long description 2020-05-07 08:59:54 +02:00
Antonin RAFFIN
2c34a4d694 Sync with Stable-Baselines 2020-05-05 16:28:38 +02:00
Antonin RAFFIN
d542732c8d Rename to stable-baselines3 2020-05-05 15:02:35 +02:00
Antonin RAFFIN
9485b90a41 Sync predict with SB and add version file 2020-03-18 15:11:19 +01:00
Antonin RAFFIN
b37c23c149 Bump version and fix 2020-03-16 14:05:21 +01:00
Antonin Raffin
70e601c03c Improve code and bump version 2020-03-12 15:34:35 +01:00
Antonin Raffin
6ebad92e1b Remove default seed and bump dependencies 2020-03-10 17:43:54 +01:00
Antonin Raffin
80fb62e22d Bump version 2020-03-10 17:10:15 +01:00
Antonin Raffin
26ccf499b3 Use normal sampling for SAC 2020-02-21 14:50:28 +01:00
Antonin Raffin
809a3d3d38 Release 0.2.0 2020-02-14 14:39:24 +01:00
Antonin Raffin
f1a4fa2d3f Improve predict method 2020-02-12 15:25:05 +01:00
Antonin Raffin
c2318149dd Update changelog and version 2020-02-03 15:50:40 +01:00
Antonin Raffin
e3c5b1621e Sync Monitor with Stable Baselines 2020-02-03 15:07:35 +01:00
Antonin Raffin
ff0eddfb17 Partially type base class 2020-01-22 17:51:27 +01:00
Antonin Raffin
37f9f13684 Revert all changes for python 2
+ Add makefile and pytype
2020-01-22 16:18:27 +01:00
Antonin Raffin
9e250b6818 Build doc 2020-01-20 16:19:35 +01:00
Antonin Raffin
b8df12afe2 Release v0.1.0 2020-01-20 13:01:14 +01:00
Antonin Raffin
89db65b1fb Improve logger testing + add readers 2020-01-20 11:58:00 +01:00
Antonin Raffin
d3a718b94e Add extra dependency 2020-01-08 11:26:57 +01:00
Antonin Raffin
69428346bd Bump version 2019-12-19 15:32:03 +01:00
Antonin Raffin
6c423add8d Bump version 2019-12-05 16:44:27 +01:00
Antonin Raffin
f2a61949ae Bump version and change default noise clipping 2019-11-08 14:59:42 +01:00
Antonin Raffin
d22caac616 Working SAC 2019-09-24 14:15:12 +02:00
Antonin Raffin
255ff10bff PPO VecEnv compat 2019-09-20 15:19:04 +02:00
Antonin Raffin
5e38080937 Code cleanup 2019-09-06 14:04:40 +02:00
Antonin Raffin
90882ee846 Fixes for python 2 + env from string 2019-09-06 11:46:25 +02:00
Antonin Raffin
904742714d Fixes for python 2 2019-09-06 11:43:02 +02:00
Antonin Raffin
46d8d9725b Init: TD3 2019-09-05 17:29:41 +02:00