Skip to content

Sequential

simplegrad.nn.sequential.Sequential

Bases: Module

A sequential container that applies modules in the order they are passed.

Parameters:

Name Type Description Default
*modules Module

Any number of Module instances to chain together.

()
Example
model = Sequential(Linear(4, 8), ReLU(), Linear(8, 2))
output = model(x)
Source code in simplegrad/nn/sequential.py
class Sequential(Module):
    """A sequential container that applies modules in the order they are passed.

    Args:
        *modules: Any number of Module instances to chain together.

    Example:
        ```python
        model = Sequential(Linear(4, 8), ReLU(), Linear(8, 2))
        output = model(x)
        ```
    """

    def __init__(self, *modules: Module) -> None:
        super().__init__()
        self.modules = modules

    def forward(self, x: Tensor) -> Tensor:
        """Pass input through each module in sequence.

        Args:
            x: Input tensor.

        Returns:
            Output tensor after all modules have been applied.
        """
        for module in self.modules:
            x = module(x)
        return x

    def __str__(self):
        res = "Sequential(\n"
        for module in self.modules:
            res += f"  {str(module)},\n"
        res += ")"
        return res

forward(x: Tensor) -> Tensor

Pass input through each module in sequence.

Parameters:

Name Type Description Default
x Tensor

Input tensor.

required

Returns:

Type Description
Tensor

Output tensor after all modules have been applied.

Source code in simplegrad/nn/sequential.py
def forward(self, x: Tensor) -> Tensor:
    """Pass input through each module in sequence.

    Args:
        x: Input tensor.

    Returns:
        Output tensor after all modules have been applied.
    """
    for module in self.modules:
        x = module(x)
    return x