Skip to content

Generative AI

tensoris.backend.components.blocks.genai

Generative AI Encoder and Decoder Blocks.

Classes

VAEDecoderBlock

Bases: Module

Decoder Block for Variational Autoencoders.

Source code in src/tensoris/backend/components/blocks/genai.py
class VAEDecoderBlock(nn.Module):
    """Decoder Block for Variational Autoencoders."""

    def __init__(self, latent_dim: int, hidden_dim: int, out_features: int) -> None:
        """Initialize VAEDecoderBlock.

        Args:
            latent_dim: Latent z space dimension.
            hidden_dim: Hidden dimension size.
            out_features: Output sample feature dimension.
        """
        super().__init__()
        self.fc = nn.Linear(latent_dim, hidden_dim)
        self.fc_out = nn.Linear(hidden_dim, out_features)

    def forward(self, z: torch.Tensor) -> torch.Tensor:
        """Decode latent vector z to reconstructed sample space."""
        h = torch.relu(self.fc(z))
        return torch.sigmoid(self.fc_out(h))
Methods:
__init__
__init__(latent_dim, hidden_dim, out_features)

Initialize VAEDecoderBlock.

Parameters:

Name Type Description Default
latent_dim int

Latent z space dimension.

required
hidden_dim int

Hidden dimension size.

required
out_features int

Output sample feature dimension.

required
Source code in src/tensoris/backend/components/blocks/genai.py
def __init__(self, latent_dim: int, hidden_dim: int, out_features: int) -> None:
    """Initialize VAEDecoderBlock.

    Args:
        latent_dim: Latent z space dimension.
        hidden_dim: Hidden dimension size.
        out_features: Output sample feature dimension.
    """
    super().__init__()
    self.fc = nn.Linear(latent_dim, hidden_dim)
    self.fc_out = nn.Linear(hidden_dim, out_features)
forward
forward(z)

Decode latent vector z to reconstructed sample space.

Source code in src/tensoris/backend/components/blocks/genai.py
def forward(self, z: torch.Tensor) -> torch.Tensor:
    """Decode latent vector z to reconstructed sample space."""
    h = torch.relu(self.fc(z))
    return torch.sigmoid(self.fc_out(h))

VAEEncoderBlock

Bases: Module

Encoder Block for Variational Autoencoders.

Source code in src/tensoris/backend/components/blocks/genai.py
class VAEEncoderBlock(nn.Module):
    """Encoder Block for Variational Autoencoders."""

    def __init__(self, in_features: int, hidden_dim: int, latent_dim: int) -> None:
        """Initialize VAEEncoderBlock.

        Args:
            in_features: Input sample features.
            hidden_dim: Hidden dimension size.
            latent_dim: Latent z space dimension.
        """
        super().__init__()
        self.fc = nn.Linear(in_features, hidden_dim)
        self.fc_mu = nn.Linear(hidden_dim, latent_dim)
        self.fc_logvar = nn.Linear(hidden_dim, latent_dim)

    def forward(self, x: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:
        """Encode input into mean and log variance parameters."""
        h = torch.relu(self.fc(x))
        return self.fc_mu(h), self.fc_logvar(h)
Methods:
__init__
__init__(in_features, hidden_dim, latent_dim)

Initialize VAEEncoderBlock.

Parameters:

Name Type Description Default
in_features int

Input sample features.

required
hidden_dim int

Hidden dimension size.

required
latent_dim int

Latent z space dimension.

required
Source code in src/tensoris/backend/components/blocks/genai.py
def __init__(self, in_features: int, hidden_dim: int, latent_dim: int) -> None:
    """Initialize VAEEncoderBlock.

    Args:
        in_features: Input sample features.
        hidden_dim: Hidden dimension size.
        latent_dim: Latent z space dimension.
    """
    super().__init__()
    self.fc = nn.Linear(in_features, hidden_dim)
    self.fc_mu = nn.Linear(hidden_dim, latent_dim)
    self.fc_logvar = nn.Linear(hidden_dim, latent_dim)
forward
forward(x)

Encode input into mean and log variance parameters.

Source code in src/tensoris/backend/components/blocks/genai.py
def forward(self, x: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]:
    """Encode input into mean and log variance parameters."""
    h = torch.relu(self.fc(x))
    return self.fc_mu(h), self.fc_logvar(h)