diff --git a/CHANGELOG.md b/CHANGELOG.md index 24c72ed..2ce2161 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,9 +8,17 @@ - Trainers can control whether collectors should be reset prior to training. #1063 - Convenience constructor for `CollectStats` called `with_autogenerated_stats`. #1063 - `SamplingConfig` supports `batch_size=None`. #1077 -- Batch received new method: `to_numpy_`. #1098 +- Batch received new methods: `to_numpy_` and `to_torch_`. #1098, #1117 - `to_dict` in Batch supports also non-recursive conversion. #1098 -- Batch __eq__ now implemented, semantic equality check of batches is now possible. #1098 +- Batch `__eq__` implemented, semantic equality check of batches is now possible. #1098 +- `Batch.keys()` deprecated in favor of `Batch.get_keys()` (needed to make iteration consistent with naming) #1105. +- `Experiment` and `ExperimentConfig` now have a `name`, that can however be overridden when `Experiment.run()` is called. #1074 +- When building an `Experiment` from an `ExperimentConfig`, the user has the option to add info about seeds to the name. #1074 +- New method in `ExperimentConfig` called `build_default_seeded_experiments`. #1074 +- `SamplingConfig` has an explicit training seed, `test_seed` is inferred. #1074 +- New `evaluation` package for repeating the same experiment with multiple seeds and aggregating the results (important extension!). +Launchers for parallelization currently in alpha state. #1074 +- Loggers can now restore the logged data into python by using the new `restore_logged_data` method. #1074 ### Internal Improvements - `Collector`s rely less on state, the few stateful things are stored explicitly instead of through a `.data` attribute. #1063 @@ -26,6 +34,7 @@ instead of just `nn.Module`. #1032 - Exception no longer raised on `len` of empty `Batch`. #1084 - tests and examples are covered by `mypy`. #1077 - `NetBase` is more used, stricter typing by making it generic. #1077 +- Use explicit multiprocessing context for creating `Pipe` in `subproc.py`. #1102 ### Breaking Changes @@ -37,10 +46,19 @@ expicitly or pass `reset_before_collect=True` . #1063 - Changed interface of `dist_fn` in `PGPolicy` and all subclasses to take a single argument in both continuous and discrete cases. #1032 - `utils.net.common.Recurrent` now receives and returns a `RecurrentStateBatch` instead of a dict. #1077 -- The method `to_numpy` in `data.utils.batch.Batch` is not in-place anymore. Instead, a new method `to_numpy_` does the conversion in-place. #1098 +- The methods `to_numpy` and `to_torch` in `Batch` is not in-place anymore (use `to_numpy_` or `to_torch_` instead). #1098, #1117 +- `AtariEnvFactory` constructor (in examples, so not really breaking) now requires explicit train and test seeds. #1074 +- `EnvFactoryRegistered` now requires an explicit `test_seed` in the constructor. #1074 +- `BaseLogger.prepare_dict_for_logging` is now abstract. #1074 +- Removed deprecated and unused `BasicLogger` (only affects users who subclassed it). #1074 + ### Tests -- Fixed env seeding it test_sac_with_il.py so that the test doesn't fail randomly. #1081 +- Fixed env seeding it `test_sac_with_il.py` so that the test doesn't fail randomly. #1081 +### Dependencies +- [DeepDiff](https://github.com/seperman/deepdiff) added to help with diffs of batches in tests. #1098 +- Bumped black, idna, pillow +- New extra "eval" Started after v1.0.0 diff --git a/poetry.lock b/poetry.lock index 865b7b7..2a9fe13 100644 --- a/poetry.lock +++ b/poetry.lock @@ -6940,4 +6940,4 @@ vizdoom = ["vizdoom"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "719c5e7c9a09f731789aa753aeb7c37443c48a65e9bb058344c4763e17b7fa58" +content-hash = "c69f1a09a2679ff3ea3a7f4a6d05937ae98a61d05da0fefb5ddc4c2843df9d5b" diff --git a/pyproject.toml b/pyproject.toml index becba78..5adbabd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -89,7 +89,7 @@ eval = ["rliable", "joblib", "scipy", "jsonargparse", "docstring-parser"] [tool.poetry.group.dev] optional = true [tool.poetry.group.dev.dependencies] -black = { version = "^23.7.0", extras = ["jupyter"] } +black = { version = ">=23.7,<25.0", extras = ["jupyter"] } docutils = "0.20.1" jinja2 = "*" jupyter = "^1.0.0"