Fully Connected Network#
- class physicsnemo.models.mlp.fully_connected.FullyConnected(*args, **kwargs)[source]#
Bases:
ModuleA densely-connected MLP architecture.
This model constructs a multi-layer perceptron with configurable depth, width, activation functions, and optional skip connections. It uses
FCLayerfor each hidden layer.- Parameters:
in_features (int, optional, default=512) – Size of input features \(D_{in}\).
layer_size (int, optional, default=512) – Size of every hidden layer \(D_{hidden}\).
out_features (int, optional, default=512) – Size of output features \(D_{out}\).
num_layers (int, optional, default=6) – Number of hidden layers.
activation_fn (Union[str, List[str]], optional, default="silu") – Activation function to use. Can be a single string or a list of strings (one per layer). Supported values include
"silu","relu","gelu".skip_connections (bool, optional, default=False) – Add skip connections every 2 hidden layers.
adaptive_activations (bool, optional, default=False) – Use an adaptive activation function with learnable scaling parameter.
weight_norm (bool, optional, default=False) – Use weight normalization on fully connected layers.
weight_fact (bool, optional, default=False) – Use weight factorization on fully connected layers.
- Forward:
x (torch.Tensor) – Input tensor of shape \((B, D_{in})\) where \(B\) is the batch size.
- Outputs:
torch.Tensor – Output tensor of shape \((B, D_{out})\).
Examples
>>> import torch >>> import physicsnemo.models.mlp >>> model = physicsnemo.models.mlp.FullyConnected(in_features=32, out_features=64) >>> x = torch.randn(128, 32) >>> output = model(x) >>> output.shape torch.Size([128, 64])