美文网首页
Pytorch笔记4-损失函数和优化器

Pytorch笔记4-损失函数和优化器

作者: 江湾青年 | 来源:发表于2024-07-16 15:33 被阅读0次

    损失函数(criterion)

    • 通过实例化各种损失函数类进行定义,一般实例化名为criterion
    import torch.nn as nn
    # 均方误差,适用于回归任务
    criterion = nn.MSELoss()
    # 交叉熵损失,用于多分类任务
    criterion = nn.CrossEntropyLoss()
    # 二元交叉熵损失,用于二分类任务,输出层神经元个数为1
    criterion = nn.BCELoss()
    

    优化器(optimizer)

    • 优化器在PyTorch中是用来管理模型参数和梯度的。包括最基本的SGD、SGD with Momentum、AdaGrad、RMSprop、Adam。

    • Adam是目前最常用的优化算法之一,结合了动量和RMSprop的优点。通过一下代码实例化一个基于Adam的optimizer

    import torch.optim as optim
    optimizer = optim.Adam(model.parameters(), lr=0.001) # model为实例化后的模型
    

    在训练中使用损失函数和优化器

    • 向前传播
    # 输入数据经过模型,得到outputs
    outputs = model(inputs)
    # outputs和labels进行损失计算
    loss = criterion(outputs, labels) 
    
    • 后向传播
    # 梯度清零
    # 每次反向传播时,我们希望计算的是当前批次数据所对应的梯度
    # 如果不清零梯度,当前批次的梯度会被之前批次的梯度污染,导致梯度计算不准确
    optimizer.zero_grad()
    # 计算损失相对于每个参数的梯度
    loss.backward()
    # 根据当前的梯度更新模型的参数
    optimizer.step()
    

    相关文章

      网友评论

          本文标题:Pytorch笔记4-损失函数和优化器

          本文链接:https://www.haomeiwen.com/subject/tfezcjtx.html