Dominik Jain
20074931d5
Improve docstrings
2024-01-16 14:52:31 +01:00
Dominik Jain
05a8cf4e74
Refactoring, improving class name EnvFactoryGymnasium -> EnvFactoryRegistered
2024-01-16 14:52:31 +01:00
Dominik Jain
c9cb41bf55
Make envpool usage configuration more explicit
2024-01-16 14:52:31 +01:00
Dominik Jain
eaab7b0a4b
Improve environment factory abstractions in high-level API:
...
* EnvFactory now uses the creation of a single environment as
the basic functionality which the more high-level functions build
upon
* Introduce enum EnvMode to indicate the purpose for which an env
is created, allowing the factory creation process to change its
behaviour accordingly
* Add EnvFactoryGymnasium to provide direct support for envs that
can be created via gymnasium.make
- EnvPool is supported via an injectible EnvPoolFactory
- Existing EnvFactory implementations are now derived from
EnvFactoryGymnasium
* Use a separate environment (which uses new EnvMode.WATCH) for
watching agent performance after training (instead of using test
environments, which the user may want to configure differently)
2024-01-12 17:13:42 +01:00
Dominik Jain
97a241a6fc
Fix: DiscreteEnvironments.from_factory used incorrect EnvType
2024-01-08 15:58:41 +01:00
Dominik Jain
e8cc80f990
Environments: Add option to a use a different factory for test envs
...
to `from_factory` convenience construction mechanisms
2023-12-21 13:13:51 +01:00
Michael Panchenko
2e39a252e3
Docstring: minor changes to let ruff pass
2023-12-04 13:52:46 +01:00
Dominik Jain
dae4000cd2
Revert "Depend on sensAI instead of copying its utils (logging, string)"
...
This reverts commit fdb0eba93d81fa5e698770b4f7088c87fc1238da.
2023-11-08 19:11:39 +01:00
Dominik Jain
fdb0eba93d
Depend on sensAI instead of copying its utils (logging, string)
2023-10-27 20:15:58 +02:00
Dominik Jain
96298eafd8
Add convenient construction mechanisms for Environments
...
(based on factory function for a single environment)
2023-10-25 21:20:07 +02:00
Dominik Jain
b5a891557f
Revert to simplified environment factory, removing unnecessary config object
...
(configuration shall be part of the factory instance)
2023-10-24 13:14:23 +02:00
Dominik Jain
6cbee188b8
Change interface of EnvFactory to ensure that configuration
...
of number of environments in SamplingConfig is used
(values are now passed to factory method)
This is clearer and removes the need to pass otherwise
unnecessary configuration to environment factories at
construction
2023-10-19 11:37:20 +02:00
Dominik Jain
e63d8d4147
Use ToStringMixin in dataclasses to detect recurring objects in larger object trees
2023-10-18 20:44:18 +02:00
Dominik Jain
4b270eaa2d
Add documentation, improve structure of 'module' package
2023-10-18 20:44:18 +02:00
Dominik Jain
023b33c917
Make mypy happy
2023-10-18 20:44:18 +02:00
Dominik Jain
3691ed2abc
Support obs_rms persistence for MuJoCo by adding a general mechanism
...
for attaching persistence to Environments instances
2023-10-18 20:44:17 +02:00
Dominik Jain
73a6d15eee
Log Environments
2023-10-18 20:44:17 +02:00
Dominik Jain
a161a9cf58
Improve type annotations, fix type issues and add checks
2023-10-18 20:44:17 +02:00
Dominik Jain
6b6d9ea609
Add support for discrete PPO
...
* Refactored module `module` (split into submodules)
* Basic support for discrete environments
* Implement Atari env. factory
* Implement DQN-based actor factory
* Implement notion of reusing agent preprocessing network for critic
* Add example atari_ppo_hl
2023-10-18 20:44:16 +02:00
Michael Panchenko
5bcf514c55
Add alternative functional interface for environment creation
...
where a persistable configuration object is passed as an
argument, as this can help to ensure persistability (making the
requirement explicit)
2023-10-18 20:44:16 +02:00
Dominik Jain
e993425aa1
Add high-level API support for TD3
...
* Created mixins for agent factories to reduce code duplication
* Further factorised params & mixins for experiment factories
* Additional parameter abstractions
* Implement high-level MuJoCo TD3 example
2023-10-18 20:44:16 +02:00
Dominik Jain
367778d37f
Improve high-level policy parametrisation
...
Policy objects are now parametrised by converting the parameter
dataclass instances to kwargs, using some injectable conversions
along the way
2023-10-18 20:44:16 +02:00
Dominik Jain
37dc07e487
Add high-level experiment builder interface
2023-10-18 20:44:05 +02:00
Dominik Jain
316eb3c579
Add SAC high-level interface
2023-10-09 13:02:01 +02:00
Dominik Jain
16ed5fd2a5
Initial high-level interfaces, demonstrated in mujoco_ppo_hl
2023-10-09 13:01:35 +02:00