继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

torch.std

慕后森
关注TA
已关注
手记 262
粉丝 57
获赞 238

首先,我们来简要了解一下torch.stdtorch.std是PyTorch库中的一个函数,它提供了对张量(tensor)的标准差(standard deviation)的计算。标准差可以用来衡量数据的离散程度,它反映了数据点在均值附近波动的程度。在机器学习和深度学习领域,标准差经常被用作正则化参数,用于控制模型参数的变化范围,从而避免过拟合。

计算张量的标准差

接下来,让我们通过一个简单的例子来进一步理解torch.std的使用方法。假设我们有以下一个张量:

import torch

x = torch.tensor([1, 2, 3, 4, 5])

我们可以使用torch.std来计算这个张量的标准差:

std_x = torch.std(x)

计算结果,std_x将会等于1.4142135623730951,这个值表示了张量x的标准差。

标准差的计算原理

torch.std函数采用的是一种基于方差和协方差的快速算法,其计算公式如下:

std_x = torch.sqrt(torch.sum((x - x_mean) ** 2) / (torch.sum(torch.is_real(x)) + 1e-8))

其中,$x$ 是输入张量,$x_mean$ 是张量的均值,torch.sum 函数用于对张量进行求和,torch.is_real 函数用于判断张量中的元素是否为实数,以避免除以零的错误。

标准差在深度学习中的应用

标准差在深度学习中常被用作正则化参数,用于控制模型参数的变化范围,从而避免过拟合。例如,在卷积神经网络(CNN)中,为了防止权重矩阵和学习率变得过大,我们通常会对其进行归一化处理,即使用标准差来控制权重的范数。

下面是一个简单的 CNN 网络结构的示例:

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3)
        self.conv2 = nn.Conv2d(in_channels=6, out_channels=16, kernel_size=3)
        self.fc1 = nn.Linear(in_features=16 * 6 * 6, out_features=120)
        self.fc2 = nn.Linear(in_features=120, out_features=84)
        self.fc3 = nn.Linear(in_features=84, out_features=10)

    def forward(self, x):
        x = torch.relu(self.conv1(x))
        x = torch.relu(self.conv2(x))
        x = x.view(-1, 16 * 6 * 6)
        x = torch.relu(self.fc1(x))
        x = torch.relu(self.fc2(x))
        x = self.fc3(x)
        return x

在这个网络结构中,每个卷积层之后都会跟着一个 fully connected(全连接)层。为了使权重 matrix 不至于太大,我们需要对权重进行归一化处理,可以使用下面的代码:

model = Net()
for m in model.modules():
    if isinstance(m, nn.Conv2d):
        nn.init.normal_(m.weight, 0, 0.01)
    elif isinstance(m, nn.Linear):
        nn.init.normal_(m.weight, 0, 0.01)

这段代码会对每个卷积层和全连接层的权重进行归一化处理,使得权重在 [-1, 1] 的范围内分布。

总结

torch.std 是 PyTorch 库中一个非常实用的函数,它可以方便地计算张量的标准差。在深度学习中,标准差常常被用作正则化参数,用于控制模型参数的变化范围,从而避免过

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP