Add wrappers to experimental (#201)

This commit is contained in:
Mark Towers
2022-12-10 22:04:14 +00:00
committed by GitHub
parent 93ee100987
commit f208f874a0
61 changed files with 1987 additions and 659 deletions

View File

@@ -14,7 +14,9 @@ experimental/vector_wrappers
## Functional Environments
```{eval-rst}
The gymnasium ``Env`` provides high flexibility for the implementation of individual environments however this can complicate parallelism of environments. Therefore, we propose the :class:`gymnasium.experimental.FuncEnv` where each part of environment has its own function related to it.
```
## Wrappers
@@ -36,64 +38,32 @@ Gymnasium already contains a large collection of wrappers, but we believe that t
* - Old name
- New name
- Vector version
- Tree structure
* - :class:`wrappers.TransformObservation`
- :class:`experimental.wrappers.LambdaObservationV0`
- VectorLambdaObservation
- No
* - :class:`wrappers.FilterObservation`
- :class:`experimental.wrappers.FilterObservationV0`
- VectorFilterObservation (*)
- Yes
* - :class:`wrappers.FlattenObservation`
- :class:`experimental.wrappers.FlattenObservationV0`
- VectorFlattenObservation (*)
- No
* - :class:`wrappers.GrayScaleObservation`
- :class:`experimental.wrappers.GrayscaleObservationV0`
- VectorGrayscaleObservation (*)
- Yes
* - :class:`wrappers.ResizeObservation`
- :class:`experimental.wrappers.ResizeObservationV0`
- VectorResizeObservation (*)
- Yes
* - Not Implemented
* - ``supersuit.reshape_v0``
- :class:`experimental.wrappers.ReshapeObservationV0`
- VectorReshapeObservation (*)
- Yes
* - Not Implemented
- :class:`experimental.wrappers.RescaleObservationV0`
- VectorRescaleObservation (*)
- Yes
* - Not Implemented
* - ``supersuit.dtype_v0``
- :class:`experimental.wrappers.DtypeObservationV0`
- VectorDtypeObservation (*)
- Yes
* - :class:`wrappers.PixelObservationWrapper`
- PixelObservation
- VectorPixelObservation
- No
- :class:`experimental.wrappers.PixelObservationV0`
* - :class:`wrappers.NormalizeObservation`
- NormalizeObservation
- VectorNormalizeObservation
- No
- :class:`experimental.wrappers.NormalizeObservationV0`
* - :class:`wrappers.TimeAwareObservation`
- :class:`experimental.wrappers.TimeAwareObservationV0`
- VectorTimeAwareObservation
- No
* - :class:`wrappers.FrameStack`
- FrameStackObservation
- VectorFrameStackObservation
- No
* - Not Implemented
- :class:`experimental.wrappers.FrameStackObservationV0`
* - ``supersuit.delay_observations_v0``
- :class:`experimental.wrappers.DelayObservationV0`
- VectorDelayObservation
- No
* - :class:`wrappers.AtariPreprocessing`
- AtariPreprocessing
- Not Implemented
- No
```
### Action Wrappers
@@ -105,24 +75,14 @@ Gymnasium already contains a large collection of wrappers, but we believe that t
* - Old name
- New name
- Vector version
- Tree structure
* - Not Implemented
* - ``supersuit.action_lambda_v1``
- :class:`experimental.wrappers.LambdaActionV0`
- VectorLambdaAction
- No
* - :class:`wrappers.ClipAction`
- :class:`experimental.wrappers.ClipActionV0`
- VectorClipAction (*)
- Yes
* - :class:`wrappers.RescaleAction`
- :class:`experimental.wrappers.RescaleActionV0`
- VectorRescaleAction (*)
- Yes
* - Not Implemented
* - ``supersuit.sticky_actions_v0``
- :class:`experimental.wrappers.StickyActionV0`
- VectorStickyAction
- No
```
### Reward Wrappers
@@ -134,19 +94,12 @@ Gymnasium already contains a large collection of wrappers, but we believe that t
* - Old name
- New name
- Vector version
* - :class:`wrappers.TransformReward`
- :class:`experimental.wrappers.LambdaRewardV0`
- VectorLambdaReward
* - Not Implemented
* - ``supersuit.clip_reward_v0``
- :class:`experimental.wrappers.ClipRewardV0`
- VectorClipReward (*)
* - Not Implemented
- RescaleReward
- VectorRescaleReward (*)
* - :class:`wrappers.NormalizeReward`
- NormalizeReward
- VectorNormalizeReward
- :class:`experimental.wrappers.NormalizeRewardV0`
```
### Common Wrappers
@@ -159,37 +112,21 @@ Gymnasium already contains a large collection of wrappers, but we believe that t
* - Old name
- New name
- Vector version
* - :class:`wrappers.AutoResetWrapper`
- AutoReset
- VectorAutoReset
- :class:`experimental.wrappers.AutoresetV0`
* - :class:`wrappers.PassiveEnvChecker`
- PassiveEnvChecker
- VectorPassiveEnvChecker
- :class:`experimental.wrappers.PassiveEnvCheckerV0`
* - :class:`wrappers.OrderEnforcing`
- OrderEnforcing
- VectorOrderEnforcing
- :class:`experimental.wrappers.OrderEnforcingV0`
* - :class:`wrappers.EnvCompatibility`
- Moved to `shimmy <https://github.com/Farama-Foundation/Shimmy/blob/main/shimmy/openai_gym_compatibility.py>`_
- Not Implemented
* - :class:`wrappers.RecordEpisodeStatistics`
- RecordEpisodeStatistics
- VectorRecordEpisodeStatistics
* - :class:`wrappers.RenderCollection`
- RenderCollection
- VectorRenderCollection
* - :class:`wrappers.HumanRendering`
- HumanRendering
- Not Implemented
* - Not Implemented
- :class:`experimental.wrappers.JaxToNumpyV0`
- VectorJaxToNumpy (*)
* - Not Implemented
- :class:`experimental.wrappers.JaxToTorchV0`
- VectorJaxToTorch (*)
- :class:`experimental.wrappers.RecordEpisodeStatisticsV0`
* - :class:`wrappers.AtariPreprocessing`
- :class:`experimental.wrappers.AtariPreprocessingV0`
```
### Vector Only Wrappers
### Rendering Wrappers
```{eval-rst}
.. py:currentmodule:: gymnasium
@@ -199,8 +136,22 @@ Gymnasium already contains a large collection of wrappers, but we believe that t
* - Old name
- New name
* - :class:`wrappers.VectorListInfo`
- VectorListInfo
* - :class:`wrapper.RecordVideo`
- :class:`experimental.wrappers.RecordVideoV0`
* - :class:`wrappers.HumanRendering`
- :class:`experimental.wrappers.HumanRenderingV0`
* - :class:`wrappers.RenderCollection`
- :class:`experimental.wrappers.RenderCollectionV0`
```
### Environment data conversion
```{eval-rst}
.. py:currentmodule:: gymnasium
* :class:`experimental.wrappers.JaxToNumpyV0`
* :class:`experimental.wrappers.JaxToTorchV0`
* :class:`experimental.wrappers.NumpyToTorchV0`
```
## Vector Environment

View File

@@ -11,8 +11,12 @@
.. autoclass:: gymnasium.experimental.wrappers.ReshapeObservationV0
.. autoclass:: gymnasium.experimental.wrappers.RescaleObservationV0
.. autoclass:: gymnasium.experimental.wrappers.DtypeObservationV0
.. autoclass:: gymnasium.experimental.wrappers.PixelObservationV0
.. autoclass:: gymnasium.experimental.wrappers.NormalizeObservationV0
.. autoclass:: gymnasium.experimental.wrappers.TimeAwareObservationV0
.. autoclass:: gymnasium.experimental.wrappers.FrameStackObservationV0
.. autoclass:: gymnasium.experimental.wrappers.DelayObservationV0
.. autoclass:: gymnasium.experimental.wrappers.AtariPreprocessingV0
```
## Action Wrappers
@@ -24,16 +28,34 @@
.. autoclass:: gymnasium.experimental.wrappers.StickyActionV0
```
# Reward Wrappers
## Reward Wrappers
```{eval-rst}
.. autoclass:: gymnasium.experimental.wrappers.LambdaRewardV0
.. autoclass:: gymnasium.experimental.wrappers.ClipRewardV0
.. autoclass:: gymnasium.experimental.wrappers.NormalizeRewardV0
```
## Common Wrappers
## Other Wrappers
```{eval-rst}
.. autoclass:: gymnasium.experimental.wrappers.AutoresetV0
.. autoclass:: gymnasium.experimental.wrappers.PassiveEnvCheckerV0
.. autoclass:: gymnasium.experimental.wrappers.OrderEnforcingV0
.. autoclass:: gymnasium.experimental.wrappers.RecordEpisodeStatisticsV0
```
## Rendering Wrappers
```{eval-rst}
.. autoclass:: gymnasium.experimental.wrappers.RecordVideoV0
.. autoclass:: gymnasium.experimental.wrappers.HumanRenderingV0
.. autoclass:: gymnasium.experimental.wrappers.RenderCollectionV0
```
## Environment data conversion
```{eval-rst}
.. autoclass:: gymnasium.experimental.wrappers.JaxToNumpyV0
.. autoclass:: gymnasium.experimental.wrappers.JaxToTorchV0
.. autoclass:: gymnasium.experimental.wrappers.NumpyToTorchV0
```