Source code for pytagi.nn.convtranspose2d

import cutagi

from pytagi.nn.base_layer import BaseLayer


[docs] class ConvTranspose2d(BaseLayer): """ Applies a 2D transposed convolution operation (also known as deconvolution). This layer performs a transposed convolution, which is used in tasks like image generation or segmentation to upsample feature maps. It reverses the convolution operation, increasing the spatial dimensions of the input. Args: in_channels (int): Number of input channels. out_channels (int): Number of output channels. kernel_size (int): Size of the convolutional kernel. bias (bool): Whether to include a learnable bias term. Defaults to True. stride (int): The step size of the kernel. Defaults to 1. padding (int): Amount of zero-padding added to the input. Defaults to 0. padding_type (int): Type of padding. Defaults to 1 (likely 'zeros' or similar). in_width (int): Input width. If 0, it might be inferred or set by the backend. Defaults to 0. in_height (int): Input height. If 0, it might be inferred or set by the backend. Defaults to 0. gain_weight (float): Initial value for the gain (scale) parameter of weights. Defaults to 1.0. gain_bias (float): Initial value for the gain (scale) parameter of biases. Defaults to 1.0. init_method (str): Method used for initializing weights. Defaults to "He". """ def __init__( self, in_channels: int, out_channels: int, kernel_size: int, bias: bool = True, stride: int = 1, padding: int = 0, padding_type: int = 1, in_width: int = 0, in_height: int = 0, gain_weight: float = 1.0, gain_bias: float = 1.0, init_method: str = "He", ): """Initializes the ConvTranspose2d layer.""" super().__init__() self.in_channels = in_channels self.out_channels = out_channels self.kernel_size = kernel_size self.is_bias = bias self.stride = stride self.padding = padding self.padding_type = padding_type self.in_width = in_width self.in_height = in_height self.gain_weight = gain_weight self.gain_bias = gain_bias self.init_method = init_method self._cpp_backend = cutagi.ConvTranspose2d( in_channels, out_channels, kernel_size, bias, stride, padding, padding_type, in_width, in_height, gain_weight, gain_bias, init_method, )
[docs] def get_layer_info(self) -> str: """ Retrieves detailed information about the ConvTranspose2d layer. Returns: str: A string containing the layer's information. """ return self._cpp_backend.get_layer_info()
[docs] def get_layer_name(self) -> str: """ Retrieves the name of the ConvTranspose2d layer. Returns: str: The name of the layer. """ return self._cpp_backend.get_layer_name()
[docs] def init_weight_bias(self): """ Initializes the learnable weight and bias parameters of the transposed convolutional layer. """ self._cpp_backend.init_weight_bias()