class_docstr: ### Fuzzy Tiling Activations (FTA)
docstr: :param lower_limit: is the lower limit $l$
  :param upper_limit: is the upper limit $u$
  :param delta: is the bin size $\delta$
  :param eta: is the parameter $\eta$ that detemines the softness of the boundaries.
docstr_tok: [":","param","lower_limit",":","is","the","lower","limit","$","l","$",":","param","upper_limit",":","is","the","upper","limit","$","u","$",":","param","delta",":","is","the","bin","size","$","\\delta","$",":","param","eta",":","is","the","parameter","$","\\eta","$","that","detemines","the","softness","of","the","boundaries","."]
code: def __init__(
      self,
      lower_limit: float,
      upper_limit: float,
      delta: float,
      eta: float,
  ):
      """
      :param lower_limit: is the lower limit $l$
      :param upper_limit: is the upper limit $u$
      :param delta: is the bin size $\delta$
      :param eta: is the parameter $\eta$ that detemines the softness of the boundaries.
      """
      super().__init__()
      # Initialize tiling vector
      # $$\mathbf{c} = (l, l + \delta, l + 2 \delta, \dots, u - 2 \delta, u - \delta)$$
      self.c = nn.Parameter(
          torch.arange(lower_limit, upper_limit, delta),
          requires_grad=False,
      )
      # The input vector expands by a factor equal to the number of bins $\frac{u - l}{\delta}$
      self.expansion_factor = len(self.c)
      # $\delta$
      self.delta = delta
      # $\eta$
      self.eta = eta
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/activations/fta/__init__.py
imports: import torch
  from torch import nn
label_desc: Use image node_id 1 to create a new FTA object from inherited base classes: nn with example: obj = FTA(lower_limit, upper_limit, delta, eta)