protomotions.agents.common.common module#
Common neural network components and utilities for agents.
This module provides shared building blocks used across different agent architectures, including observation normalization, weight initialization, and specialized layers.
- Key Classes:
NormObsBase: Base class for modules with observation normalization
ObsProcessor: General observation processor for reshaping and normalizing
Embedding: Embedding layer for discrete inputs
- Key Functions:
weight_init: Initialize network weights
get_params: Extract parameters from optimizer groups
- protomotions.agents.common.common.get_params(obj)[source]#
Extract parameters from optimizer parameter groups.
Handles both flat lists of parameters and grouped parameters (as used by optimizers).
- Parameters:
obj – Either a list of nn.Parameter or a list of parameter groups (dicts).
- Returns:
Flat list of all parameters.
- Return type:
List[<Mock object at 0x7fbf798dabd0>[]]
- protomotions.agents.common.common.weight_init(m, orthogonal=False)[source]#
Initialize weights for neural network modules.
Applies appropriate initialization to linear layers and other modules. Linear layers get orthogonal or default initialization with zero bias.
- Parameters:
m – Neural network module to initialize.
orthogonal – If True, use orthogonal initialization for linear layers.
- class protomotions.agents.common.common.NormObsBase(config)[source]#
Bases:
<Mock object at 0x7fbf798db690>[]Base class for modules with observation normalization.
Provides running mean/std normalization of observations using exponential moving averages. Normalization statistics are updated during training and frozen during evaluation.
Uses lazy initialization - input shape is inferred on first forward pass.
This is a simple tensor-to-tensor module. Subclasses handle TensorDict extraction/insertion.
- Parameters:
config (NormObsBaseConfig) – Configuration specifying output dimensions and normalization parameters.
- running_obs_norm#
RunningMeanStd module for observation normalization (lazy).
- num_out#
Output dimension.
- protomotions.agents.common.common.apply_module_operations(
- obs,
- module_operations,
- normalizer,
- forward_model=None,
- class protomotions.agents.common.common.ObsProcessor(*args, **kwargs)[source]#
Bases:
TensorDictModuleBaseGeneral observation processor - applies operations and normalization.
ForwardConfig applies normalization but skips the forward model (no MLP).
- config: ObsProcessorConfig#
- class protomotions.agents.common.common.ModuleContainer(*args, **kwargs)[source]#
Bases:
TensorDictModuleBaseGeneric container that runs a list of modules sequentially on a TensorDict.
With TensorDict, the distinction between “sequential”, “parallel input”, and “parallel output” is implicit in how keys flow between modules.
- config: ModuleContainerConfig#