Pytorch代码入门学习之分类任务(三):定义损失函数与优化器

这篇具有很好参考价值的文章主要介绍了Pytorch代码入门学习之分类任务(三):定义损失函数与优化器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、定义损失函数

1.1 代码

1.2 损失函数简介

1.3 交叉熵误差(cross entropy error)

二、定义优化器

2.1 代码

2.2 构造优化器

2.3 随机梯度下降法(SGD)


一、定义损失函数

1.1 代码

criterion = nn.CrossEntropyLoss()

1.2 损失函数简介

        神经网络的学习通过某个指标表示目前的状态,然后以这个指标为基准,寻找最优的权重参数。神经网络以某个指标为线索寻找最优权重参数,该指标称为损失函数(loss function)。这个损失函数可以使用任意函数, 但一般用均方误差和交叉熵误差等。损失函数是表示神经网络性能的“恶劣程度”的指标,即当前的神经网络对监督数据在多大程度上不拟合、不一致。这个值越低,表示网络的学习效果越好。

        但是,如果loss很低的话,可能出现过拟合现象。

        过拟合是指训练出来的模型在训练集上表现得很好,但是在测试集上表现的较差,模型训练的误差远小于它在测试集上的误差。

1.3 交叉熵误差(cross entropy error)

        交叉熵误差如下式所示:

         其中,log表示以e为底数的自然对数(log e );yk指神经网络的输出,tk是正确解标签。并且,tk中只有正确解标签的索引为1,其他均为0(one-hot表示)。 因此,上式实际上只计算对应正确解标签的输出的自然对数。比如,假设正确解标签的索引是“2”,与之对应的神经网络的输出是0.6,则交叉熵误差 是−log 0.6 = 0.51;若“2”对应的输出是0.1,则交叉熵误差为−log 0.1 = 2.30。因此,交叉熵误差的值是由正确解标签所对应的输出结果决定的。

        交叉熵误差函数需要两个参数,第一个是输入参数(预测值),第二个是正确值

二、定义优化器

2.1 代码

import torch.optim as optim
optimizer = optim.SGD(net.parameters(),lr=0.001,momentum=0.9)

2.2 构造优化器

        optimizer = optim.SGD(net.parameters(),lr=0.001,momentum=0.9):第一个参数是需要更新的参数,第二个参数是指学习率(指每次更新学习率下降的大小),第三个参数为动量;

2.3 随机梯度下降法(SGD)

        用数学式子可以把SGD写为如下的式:

Pytorch代码入门学习之分类任务(三):定义损失函数与优化器,Python相关知识,pytorch,学习,分类,python

        其中,W记为需要更新的权重参数,是指损失函数关于W的梯度,表示学习率,一般情况下会取为0.01或0.001这类事先决定好的值。式子中的“箭头”表示用右边的值更新左边的值。

        SGD较为简单,且容易实现,但是在解决某些问题时可能没有效率。SGD是朝着梯度方向只前进一定距离的简单方法,且梯度的方法并没有指向最小值的方向。

        参考:004 第一个分类任务2_哔哩哔哩_bilibili文章来源地址https://www.toymoban.com/news/detail-722656.html

到了这里,关于Pytorch代码入门学习之分类任务(三):定义损失函数与优化器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【PyTorch】在PyTorch中使用线性层和交叉熵损失函数进行数据分类

    在机器学习的众多任务中,分类问题无疑是最基础也是最重要的一环。本文将介绍如何在PyTorch框架下,使用线性层和交叉熵损失函数来解决分类问题。我们将以简单的Iris数据集作为起点,探讨线性模型在处理线性可分数据上的有效性。随后,我们将尝试将同样的线性模型应

    2024年01月18日
    浏览(43)
  • pytorch学习-线性神经网络——softmax回归+损失函数+图片分类数据集

            Softmax回归(Softmax Regression)是一种常见的多分类模型,可以用于将输入变量映射到多个类别的概率分布中。softmax回归是机器学习中非常重要并且经典的模型,虽然叫回归,实际上是一个分类问题         回归是估计一个连续值,分类是预测一个连续的类别  示例

    2024年02月15日
    浏览(37)
  • 利用pytorch自定义CNN网络(四):损失函数和优化器

    本文是利用pytorch自定义CNN网络系列的第四篇,主要介绍如何训练一个CNN网络,关于本系列的全文见这里。 笔者的运行环境:CPU (AMD Ryzen™ 5 4600U) + pytorch (1.13,CPU版) + jupyter; 训练模型是为了得到合适的参数权重,设计模型的训练时,最重要的就是损失函数和优化器的选择。

    2024年02月13日
    浏览(30)
  • 【吴恩达·机器学习】第三章:分类任务:逻辑回归模型(交叉熵损失函数、决策边界、过拟合、正则化)

    博主简介: 努力学习的22级计算机科学与技术本科生一枚🌸 博主主页: @Yaoyao2024 每日一言🌼: 勇敢的人,不是不落泪的人,而是愿意含着泪继续奔跑的人。 ——《朗读者》 本系列博客文章是博主本人根据吴恩达老师2022年的机器学习课程所学而写,主要包括老师的核心讲义

    2024年02月19日
    浏览(39)
  • 损失函数(Loss Function)一文详解-分类问题常见损失函数Python代码实现+计算原理解析

    目录 前言 一、损失函数概述 二、损失函数分类 1.分类问题的损失函数

    2023年04月26日
    浏览(29)
  • YOLO物体检测-系列教程1:YOLOV1整体解读(预选框/置信度/分类任/回归任务/损失函数/公式解析/置信度/非极大值抑制)

    YOLOV1整体解读 YOLOV2整体解读 YOLOV1提出论文:You Only Look Once: Unified, Real-Time Object Detection two-stage(两阶段):Faster-rcnn Mask-Rcnn系列 one-stage(单阶段):YOLO系列 最核心的优势:速度非常快,适合做实时检测任务! 但是缺点也是有的,效果通常情况下不会太好! 机器学习 分类任

    2024年02月09日
    浏览(31)
  • 卷积神经网络CNN原理+代码(pytorch实现MNIST集手写数字分类任务)

    前言 若将图像数据输入全连接层,可能会导致丧失一些位置信息 卷积神经网络将图像按照原有的空间结构保存,不会丧失位置信息。 卷积运算: 1.以单通道为例: 将将input中选中的部分与kernel进行数乘 : 以上图为例对应元素相乘结果为211,并将结果填入output矩阵的左上角

    2024年02月04日
    浏览(46)
  • 机器学习之损失函数

    深度学习中常用的损失函数多种多样,具体选择取决于任务类型和问题的性质。以下是一些常见的深度学习任务和相应的常用损失函数: 分类任务 : 交叉熵损失函数(Cross-Entropy Loss) :用于二分类和多类别分类任务,包括二元交叉熵(Binary Cross-Entropy)和多元交叉熵(Cat

    2024年02月11日
    浏览(23)
  • 机器学习之损失函数(Loss Function)

    损失函数(Loss Function)是机器学习和深度学习中的关键概念,它用于衡量模型的预测与实际目标之间的差异或误差。损失函数的选择对于模型的训练和性能评估至关重要,不同的任务和问题通常需要不同的损失函数。 以下是一些常见的损失函数以及它们在不同任务中的应用

    2024年02月11日
    浏览(24)
  • 【域适应】基于深度域适应MMD损失的典型四分类任务实现

    MMD (maximum mean discrepancy)是用来衡量两组数据分布之间相似度的度量。一般地,如果两组数据分布相似,那么MMD 损失就相对较小,说明两组数据/特征处于相似的特征空间中。基于这个想法,对于源域和目标域数据,在使用深度学习进行特征提取中,使用MMD损失,可以让模型

    2024年04月12日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包