Python 3.x Pytorch中的高斯一维曲线

Python 3.x Pytorch中的高斯一维曲线,python-3.x,pytorch,gaussian,torch,Python 3.x,Pytorch,Gaussian,Torch,我正在编写一个代码,它接受一个浮点标准偏差值,并返回一个内核作为列向量 然而,当我运行代码时,似乎高斯曲线是错误的。我知道一维高斯曲线的方程定义为: 其中,我定义了内核大小k为4*sigma+1,平均值mu为k/2 中显示了错误的高斯曲线及其张量值 这是我的代码: def create_1D_Gaussian_kernel(standard_deviation: float) -> torch.FloatTensor: """Creates a 1D

我正在编写一个代码,它接受一个浮点标准偏差值,并返回一个内核作为列向量

然而,当我运行代码时,似乎高斯曲线是错误的。我知道一维高斯曲线的方程定义为: 其中,我定义了内核大小k为4*sigma+1,平均值mu为k/2

中显示了错误的高斯曲线及其张量值

这是我的代码:

def create_1D_Gaussian_kernel(standard_deviation: float) -> torch.FloatTensor:
    """Creates a 1D Gaussian kernel using the specified standard deviation.

    Note: ensure that the value of the kernel sums to 1.

    Args:
        standard_deviation (float): standard deviation of the gaussian

    Returns:
        torch.FloatTensor: required kernel as a column vector
    """

    kernel = torch.FloatTensor()
    torch.pi = torch.acos(torch.zeros(1)).item() *2 # define pi from torch


    kernel_size_k = 4 * standard_deviation + 1
    kernel = torch.arange(kernel_size_k)
    mean_mu = kernel_size_k / 2
    variance = standard_deviation ** 2
    normalization_Z = 1 / (torch.sqrt(torch.tensor(2 * torch.pi)) * standard_deviation)
    kernel = normalization_Z * torch.exp(-((kernel - mean_mu) ** 2) / (2 * variance))


    return kernel

你认为曲线到底有什么问题?