kaira.models.components.ConvDecoder

Inheritance diagram of ConvDecoder

Inheritance diagram for ConvDecoder

class kaira.models.components.ConvDecoder(in_features: int, out_channels: int, output_size: Tuple[int, int], hidden_dims: List[int] | None = None, kernel_size: int = 3, stride: int = 2, padding: int = 1, output_padding: int = 1, activation: Module | None = None, output_activation: Module | None = None, *args: Any, **kwargs: Any)[source]

Bases: BaseModel

Convolutional Neural Network (CNN) Decoder for image transmission systems.

This module implements a CNN-based decoder that maps received signals back to their corresponding images.

Methods

__init__

Initialize the ConvDecoder.

forward

Forward pass of the ConvDecoder.

__init__(in_features: int, out_channels: int, output_size: Tuple[int, int], hidden_dims: List[int] | None = None, kernel_size: int = 3, stride: int = 2, padding: int = 1, output_padding: int = 1, activation: Module | None = None, output_activation: Module | None = None, *args: Any, **kwargs: Any)[source]

Initialize the ConvDecoder.

Parameters:
  • in_features (int) – Dimensionality of the input received signals.

  • out_channels (int) – Number of output channels in the reconstructed image.

  • output_size (Tuple[int, int]) – Height and width of the output image.

  • hidden_dims (List[int], optional) – List of feature dimensions for hidden layers. If None, default dimensions [64, 32, 16] will be used.

  • kernel_size (int, optional) – Kernel size for transposed convolutions. Default is 3.

  • stride (int, optional) – Stride for transposed convolutions. Default is 2.

  • padding (int, optional) – Padding for transposed convolutions. Default is 1.

  • output_padding (int, optional) – Output padding for transposed convolutions. Default is 1.

  • activation (nn.Module, optional) – Activation function to use between layers. If None, ReLU is used.

  • output_activation (nn.Module, optional) – Activation function to use at the output. If None, Sigmoid is used to output values in [0, 1] range.

  • *args – Variable positional arguments passed to the base class.

  • **kwargs – Variable keyword arguments passed to the base class.

forward(x: Tensor, *args: Any, **kwargs: Any) Tensor[source]

Forward pass of the ConvDecoder.

Parameters:
  • x (torch.Tensor) – Input tensor of shape (batch_size, in_features).

  • *args – Additional positional arguments (unused).

  • **kwargs – Additional keyword arguments (unused).

Returns:

Output image tensor of shape (batch_size, out_channels, height, width).

Return type:

torch.Tensor