Vectorized Envs¶
API Reference¶
masa.common.wrappers.VecEnvWrapperBase ¶
Bases: ConstraintPersistentWrapper
Base class for simple Python-list vector environment wrappers.
Vector environments in this file expose:
n_envs: number of parallel environmentsreset: returns(obs_list, info_list)step: returns(obs_list, rew_list, term_list, trunc_list, info_list)reset_done: reset only environments indicated by adonesmask
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
env
|
Env
|
For |
required |
Attributes:
| Name | Type | Description |
|---|---|---|
n_envs |
int
|
Number of environments. |
Source code in masa/common/wrappers.py
reset_done ¶
reset_done(dones: Union[List[bool], ndarray], *, seed: int | None = None, options: Dict[str, Any] | None = None)
Reset only the environments indicated by dones.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dones
|
Union[List[bool], ndarray]
|
Boolean mask/list of length |
required |
seed
|
int | None
|
Optional base seed. Implementations may offset by environment index. |
None
|
options
|
Dict[str, Any] | None
|
Reset options forwarded to underlying environments. |
None
|
Returns:
| Type | Description |
|---|---|
|
A tuple |
|
|
|
|
Raises:
| Type | Description |
|---|---|
NotImplementedError
|
If not implemented by a subclass. |
Source code in masa/common/wrappers.py
masa.common.wrappers.DummyVecWrapper ¶
Bases: VecEnvWrapperBase
Wrap a single environment with a vector-environment API (n_envs=1).
This wrapper is useful for code paths that expect list-based vector outputs, while still running a single environment instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
env
|
Env
|
Base environment. |
required |
Attributes:
| Name | Type | Description |
|---|---|---|
n_envs |
Always |
|
envs |
List[Env]
|
List containing the single wrapped environment. |
Source code in masa/common/wrappers.py
reset ¶
Reset and return vectorized lists of length 1.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
seed
|
int | None
|
Random seed forwarded to the underlying environment. |
None
|
options
|
Dict[str, Any] | None
|
Reset options forwarded to the underlying environment. |
None
|
Returns:
| Type | Description |
|---|---|
|
|
Source code in masa/common/wrappers.py
reset_done ¶
reset_done(dones: Union[List[bool], ndarray], *, seed: int | None = None, options: Dict[str, Any] | None = None)
Conditionally reset the single environment.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dones
|
Union[List[bool], ndarray]
|
A length-1 mask. If |
required |
seed
|
int | None
|
Random seed forwarded to the underlying environment. |
None
|
options
|
Dict[str, Any] | None
|
Reset options forwarded to the underlying environment. |
None
|
Returns:
| Type | Description |
|---|---|
|
A pair |
|
|
|
Source code in masa/common/wrappers.py
step ¶
Step and return vectorized lists of length 1.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
action
|
Action for the single environment. |
required |
Returns:
| Type | Description |
|---|---|
|
|
Source code in masa/common/wrappers.py
masa.common.wrappers.VecWrapper ¶
Bases: VecEnvWrapperBase
Wrap a list of environments with a simple vector-environment API.
Each underlying environment is reset/stepped sequentially in Python, and results are returned as Python lists.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
envs
|
List[Env]
|
Non-empty list of environments. |
required |
Attributes:
| Name | Type | Description |
|---|---|---|
envs |
List[Env]
|
The list of wrapped environments. |
n_envs |
Number of wrapped environments. |
Source code in masa/common/wrappers.py
reset ¶
Reset all environments and return lists.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
seed
|
int | None
|
Optional base seed. If provided, environment |
None
|
options
|
Dict[str, Any] | None
|
Reset options forwarded to each environment. |
None
|
Returns:
| Type | Description |
|---|---|
|
A pair |
Source code in masa/common/wrappers.py
reset_done ¶
reset_done(dones: Union[List[bool], ndarray], *, seed: int | None = None, options: Dict[str, Any] | None = None)
Reset only environments whose done flag is True.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dones
|
Union[List[bool], ndarray]
|
Boolean mask/list of length |
required |
seed
|
int | None
|
Optional base seed. If provided, environment |
None
|
options
|
Dict[str, Any] | None
|
Reset options forwarded to environments being reset. |
None
|
Returns:
| Type | Description |
|---|---|
|
A tuple |
|
|
|
Source code in masa/common/wrappers.py
step ¶
Step all environments.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
actions
|
Iterable of actions of length |
required |
Returns:
| Type | Description |
|---|---|
|
A 5-tuple of lists |
Notes
The loop expects one action per environment. If the provided
actions length mismatches n_envs, Python will raise.
Source code in masa/common/wrappers.py
masa.common.wrappers.VecNormWrapper ¶
VecNormWrapper(env: Union[Env, List[Env]], norm_obs: bool = True, norm_rew: bool = True, training: bool = True, clip_obs: float = 10.0, clip_rew: float = 10.0, gamma: float = 0.99, eps: float = 1e-08)
Bases: VecEnvWrapperBase
Normalize observations and/or rewards for a vectorized environment.
This wrapper expects an environment implementing VecEnvWrapperBase
(e.g., DummyVecWrapper or VecWrapper) and applies the same
normalization logic as NormWrapper, but over batches.
Observation normalization uses running statistics of the stacked observation
array (shape (n_envs, *obs_shape)). Reward normalization uses running
statistics of discounted returns per environment.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
env
|
Union[Env, List[Env]]
|
A vectorized environment implementing |
required |
norm_obs
|
bool
|
Whether to normalize observations. |
True
|
norm_rew
|
bool
|
Whether to normalize rewards. |
True
|
training
|
bool
|
If |
True
|
clip_obs
|
float
|
Clip normalized observations to |
10.0
|
clip_rew
|
float
|
Clip normalized rewards to |
10.0
|
gamma
|
float
|
Discount factor for the running return used in reward normalization. |
0.99
|
eps
|
float
|
Small constant \(\varepsilon\) for numerical stability. |
1e-08
|
Attributes:
| Name | Type | Description |
|---|---|---|
n_envs |
Copied from the wrapped vector environment. |
|
obs_rms |
|
|
rew_rms |
|
|
returns |
Vector of length |
Source code in masa/common/wrappers.py
_normalize_obs ¶
Normalize and clip a list of observations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obs_list
|
List[ndarray]
|
List of raw observations of length |
required |
Returns:
| Type | Description |
|---|---|
List[ndarray]
|
List of normalized observations. |
Source code in masa/common/wrappers.py
_normalize_rew ¶
Normalize and clip a list of rewards.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rew_list
|
List[float]
|
List of raw rewards of length |
required |
Returns:
| Type | Description |
|---|---|
List[float]
|
List of normalized rewards. |
Source code in masa/common/wrappers.py
reset ¶
Reset all environments and normalize observations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
seed
|
int | None
|
Optional base seed forwarded to the underlying vector env. |
None
|
options
|
Dict[str, Any] | None
|
Reset options forwarded to the underlying vector env. |
None
|
Returns:
| Type | Description |
|---|---|
|
A pair |
Source code in masa/common/wrappers.py
reset_done ¶
reset_done(dones: Union[List[bool], ndarray], *, seed: int | None = None, options: Dict[str, Any] | None = None)
Reset only environments indicated by dones and normalize those observations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dones
|
Union[List[bool], ndarray]
|
Boolean mask/list of length |
required |
seed
|
int | None
|
Optional base seed forwarded to the underlying vector env. |
None
|
options
|
Dict[str, Any] | None
|
Reset options forwarded to the underlying vector env. |
None
|
Returns:
| Type | Description |
|---|---|
|
A tuple |
|
|
|
|
|
normalized. |
Source code in masa/common/wrappers.py
step ¶
Step all environments and apply observation/reward normalization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
actions
|
Iterable of actions of length |
required |
Returns:
| Type | Description |
|---|---|
|
A 5-tuple |
|
|
observations and/or rewards may be normalized. |