def METHOD_NAME(
    self, F, past_target: Tensor, past_time_feat: Tensor
) -> Tuple[Tensor, Tensor, Tensor, Tensor]:
    """
    This function returns the scales for the GP Periodic Kernel hyper-
    parameters by using the standard deviations of the past_target and
    past_time_features.
    Parameters
    ----------
    F : ModuleType
        A module that can either refer to the Symbol API or the NDArray
        API in MXNet.
    past_target : Tensor
        Training time series values of shape (batch_size, context_length).
    past_time_feat : Tensor
        Training features of shape (batch_size, context_length,
        num_features).
    Returns
    -------
    Tuple
        Three scaled GP hyper-parameters for the Periodic Kernel and scaled
        model noise hyper-parameter. Each is a Tensor of shape
        (batch_size, 1, 1).
    """
    axis = 1
    sigma_scaling = (
        self.compute_std(F, past_target, axis=axis) / math.sqrt(2)
    ).expand_dims(axis=axis)
    amplitude_scaling = sigma_scaling**2
    length_scale_scaling = F.broadcast_mul(
        F.mean(self.compute_std(F, past_time_feat, axis=axis)),
        F.ones_like(amplitude_scaling),
    )
    # TODO: Define scaling for the frequency
    frequency_scaling = F.ones_like(amplitude_scaling)
    return (
        amplitude_scaling,
        length_scale_scaling,
        frequency_scaling,
        sigma_scaling,
    )