Source code for pytagi.nn.batch_norm

from typing import List

import cutagi

from pytagi.nn.base_layer import BaseLayer


[docs] class BatchNorm2d(BaseLayer): """ Applies 2D Batch Normalization. Batch Normalization normalizes the inputs of a layer by re-centering and re-scaling them. Args: num_features (int): The number of features in the input tensor. eps (float): A small value added to the variance to avoid division by zero. Defaults to 1e-5. momentum (float): The momentum for the running mean and variance. Defaults to 0.9. bias (bool): Whether to include a learnable bias term. Defaults to True. gain_weight (float): Initial value for the gain (scale) parameter. Defaults to 1.0. gain_bias (float): Initial value for the bias (shift) parameter. Defaults to 1.0. """ def __init__( self, num_features: int, eps: float = 1e-5, momentum: float = 0.9, bias: bool = True, gain_weight: float = 1.0, gain_bias: float = 1.0, ): """Initializes the BatchNorm2d layer.""" # Store essential configuration parameters as instance attributes. self.num_features = num_features self.eps = eps self.momentum = momentum self.is_bias = bias self._cpp_backend = cutagi.BatchNorm2d( num_features, eps, momentum, bias, gain_weight, gain_bias )
[docs] def get_layer_info(self) -> str: """ Retrieves detailed information about the BatchNorm2d layer. Returns: str: A string containing the layer's information, typically delegated to the C++ backend implementation. """ return self._cpp_backend.get_layer_info()
[docs] def get_layer_name(self) -> str: """ Retrieves the name of the BatchNorm2d layer. Returns: str: The name of the layer, typically delegated to the C++ backend implementation. """ return self._cpp_backend.get_layer_name()
[docs] def init_weight_bias(self): """ Initializes the learnable weight (scale/gain) and bias (shift/offset) parameters of the batch normalization layer. This operation is delegated to the C++ backend. """ self._cpp_backend.init_weight_bias()