pytorch学习笔记(十)

一、损失函数

举个例子

比如说根据Loss提供的信息知道,解答题太弱了,需要多训练训练这个模块。

Loss作用:1.算实际输出和目标之间的差距

2.为我们更新输出提供一定的依据(反向传播)

看官方文档

每个输入输出相减取平均取绝对值再取平均

第一个损失函数:L1Loss

(差的绝对值取平均)

需要注意输入输出

N=batch_size你有多少个数据

第一个损失函数:MSELoss

(平方差误差,平方取平均)

稳妥的写法是先引入nn,然后再找到MSEloss()这个方法,避免由于拼写出错而报错

二、交叉熵

算交叉熵一般都要soft-max的,和是1

这里的-xclass,只对目标分类计算,这里的目标分类class=1,因此-xclass=-0.2

如果预测输出为0.8,0.9,0.8这种的预测概率很高又很接近的就不行,分类器的效果就不是很好。

为了让这部分比较大,只有当output和Target完全命中的时候,这一项就比较大,就是会相匹配。

Target的N是要求多少个batchsize,如实际的对哈士奇的分类,类别有三个,但是每次输入的图片只有一个也就是batchsize等于1。

另外,还需要注意:

输入必须是没有处理过的对每一类的得分。

以代码为例:

三、反向传播

利用上一次的的网络来说明

1.计算实际输出和目标之间的差距

DataLoader这边就是一个数据的加载,加载的目标数据是dataset,输入的batch_size为64

为了观察输出方便,将batch_size设置为1

图片输入进去有以下输出

target

分类问题可以用交叉熵误差

神经网络输出和真实输出的一个差距

2.为我们更新输出提供一定的依据(反向传播)

每个卷积的卷积核就需要调优的参数,给每个卷积核参数设置了一个grad(梯度),每一个节点(待更新参数)都会求出一个对应梯度,优化过程中针对这个梯度进行优化,最终实现整体loss最优。

以梯度下降法进行说明,

删除了反向传播之后,发现梯度不更新了

相关推荐
LinXunFeng9 小时前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
通信小呆呆5 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick5 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee5 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn865 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e5 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨5 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
闪闪发亮的小星星5 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq5 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan5 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析