(self,
                 input_size,
                 theta_size: int,
                 basis_function: t.nn.Module,
                 layers: int,
                 layer_size: int)
N-BEATS block.

        :param input_size: Insample size.
        :param theta_size:  Number of parameters for the basis function.
        :param basis_function: Basis function which takes the parameters and produces backcast and forecast.
        :param layers: Number of layers.
        :param layer_size: Layer size.
N-BEATS block.
N - BEATS block .
def __init__(self,
                 input_size,
                 theta_size: int,
                 basis_function: t.nn.Module,
                 layers: int,
                 layer_size: int):
        """
        N-BEATS block.

        :param input_size: Insample size.
        :param theta_size:  Number of parameters for the basis function.
        :param basis_function: Basis function which takes the parameters and produces backcast and forecast.
        :param layers: Number of layers.
        :param layer_size: Layer size.
        """
        super().__init__()
        self.layers = t.nn.ModuleList([t.nn.Linear(in_features=input_size, out_features=layer_size)] +
                                      [t.nn.Linear(in_features=layer_size, out_features=layer_size)
                                       for _ in range(layers - 1)])
        self.basis_parameters = t.nn.Linear(in_features=layer_size, out_features=theta_size)
        self.basis_function = basis_function
def __init__ ( self , input_size , theta_size : int , basis_function : t . nn . Module , layers : int , layer_size : int ) : super ( ) . __init__ ( ) self . layers = t . nn . ModuleList ( [ t . nn . Linear ( in_features = input_size , out_features = layer_size ) ] + [ t . nn . Linear ( in_features = layer_size , out_features = layer_size ) for _ in range ( layers - 1 ) ] ) self . basis_parameters = t . nn . Linear ( in_features = layer_size , out_features = theta_size ) self . basis_function = basis_function