Source code for pytagi.nn.pooling

import cutagi

from pytagi.nn.base_layer import BaseLayer


[docs] class AvgPool2d(BaseLayer): """2D Average Pooling Layer. This layer performs 2D average pooling operation. It wraps the C++/CUDA backend `cutagi.AvgPool2d`. """ def __init__( self, kernel_size: int, stride: int = -1, padding: int = 0, padding_type: int = 0, ): """Initializes the AvgPool2d layer. :param kernel_size: The size of the pooling window (a single integer for square kernels). :type kernel_size: int :param stride: The stride of the pooling operation. Default is -1, which typically means stride=kernel_size. :type stride: int :param padding: The implicit zero padding added to both sides of the input. :type padding: int :param padding_type: The type of padding to be used (e.g., 0 for zero padding). :type padding_type: int """ super().__init__() self.kernel_size = kernel_size self.stride = stride self.padding = padding self.padding_type = padding_type self._cpp_backend = cutagi.AvgPool2d( kernel_size, stride, padding, padding_type )
[docs] def get_layer_info(self) -> str: """Returns a string containing information about the layer.""" return self._cpp_backend.get_layer_info()
[docs] def get_layer_name(self) -> str: """Returns the name of the layer (e.g., 'AvgPool2d').""" return self._cpp_backend.get_layer_name()
[docs] class MaxPool2d(BaseLayer): """2D Max Pooling Layer. This layer performs 2D max pooling operation based on the input expected values. It wraps the C++/CUDA backend `cutagi.MaxPool2d`. """ def __init__( self, kernel_size: int, stride: int = 1, padding: int = 0, padding_type: int = 0, ): """Initializes the MaxPool2d layer. :param kernel_size: The size of the pooling window (a single integer for square kernels). :type kernel_size: int :param stride: The stride of the pooling operation. Default is 1. :type stride: int :param padding: The implicit zero padding added to both sides of the input. :type padding: int :param padding_type: The type of padding to be used (e.g., 0 for zero padding). :type padding_type: int """ super().__init__() self.kernel_size = kernel_size self.stride = stride self.padding = padding self.padding_type = padding_type self._cpp_backend = cutagi.MaxPool2d( kernel_size, stride, padding, padding_type )
[docs] def get_layer_info(self) -> str: """Returns a string containing information about the layer.""" return self._cpp_backend.get_layer_info()
[docs] def get_layer_name(self) -> str: """Returns the name of the layer (e.g., 'MaxPool2d').""" return self._cpp_backend.get_layer_name()