pytorch交叉熵损失函数_yolov5损失函数

pytorch交叉熵损失函数_yolov5损失函数均方损失函数:这里,loss,x,y的维度是一样的,可以使向量或者矩阵,i是下标。很多的loss函数都有size_average和reduce两个布尔类型的参数,因为一般损失函数都是直接计算batch的数据,因此返回的loss结果都是维度为(batch_size,)的向量。1)如果reduce=False,那么size_average参数失效,直接返回向量形式的loss2)如果…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

nn.MSELoss均方损失函数:

loss(x_i,y_i)=(x_i-y_i)^2

这里,loss,x,y的维度是一样的,可以是向量或者矩阵,i是下标。比如若x,y是矩阵

x=[a_{ij}], y=[b_{ij}], 0<i<n,0<j<m

则x,y的均方误差计算是逐元素运算的

loss(x,y)=\sum_{i=0}^n \sum_{j=0}^m (a_{ij}-b_{ij})^2

import torch
import torch.nn as nn
crit=nn.MSELoss()#均方损失函数
target = torch.FloatTensor([[1, 2, 3], [4, 5, 6]])
pred= torch.FloatTensor([[7, 8, 9], [8, 4, 3]])
cost=crit(pred,target)#将pred,target逐个元素求差,然后求平方,再求和,再求均值,
print(cost)#tensor(22.3333)
sum=0
for i in range (0,2):#遍历行i
    for j in range(0,3):#遍历列
        sum+=(target[i][j]-pred[i][j])*(target[i][j]-pred[i][j])#对应元素做差,然后平方
print(sum/6)#tensor(22.3333)

很多的loss函数都有size_average和reduce两个布尔类型的参数,因为一般损失函数都是直接计算batch的数据,因此返回的loss结果都是维度为(batch_size,)的向量。

1)如果reduce=False,那么size_average参数失效,直接返回向量形式的loss

2)如果redcue=true,那么loss返回的是标量。

   2.a: if size_average=True, 返回loss.mean();#就是平均数

   2.b: if size_average=False,返回loss.sum()

注意:默认情况下,reduce=true,size_average=true

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192619.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 我是如何学习Android源码的

    我是如何学习Android源码的一连很长时间(从2017/06/09到2017/06/26)都在研究蓝牙,而且这只是文章发表的时间,再加上组织文章和研究的时间,不知不觉中就坚持这么久………,也写了蓝牙的三篇博客,而且篇幅很长如下:在这里就不放文章链接了,有需要的在我的文章中搜索即可,现在,是时候放空一下,给自己充充电了,来张美景,欣赏一下北京的晚霞。言归正传,先放上Android源码连接地址Android源码,至于研究源码的好处,

    2022年5月3日
  • 数据库表结构设计方法及原则「建议收藏」

    数据库表结构设计方法及原则「建议收藏」http://www.cnblogs.com/RunForLove/p/5693986.html  数据库设计的三大范式:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。  在实际开发中最为常见的设计范式有三个:第一范式是最基本的范式。如果数据

    2022年9月13日
  • xshell的安装和使用_git详细教程

    xshell的安装和使用_git详细教程1、Xshell6的安装废话不多说直接上链接:链接:https://pan.baidu.com/s/1WCOxkdhLIZj7yLakWu4Tdw提取码:t3ak2、了解Xshell及其使用2.1、Xshell是什么东西?首先我们要知道Xshell是用来干什么的。Xshell其实就是一个远程终端工具,它可以将你的个人pc(个人电脑)和你在远端的机器连接起来,通过向Xshell输入命令然后他通过网络将命令传送给远端Linux机器然后远端的Linux机器将其运行结果通过网络传回个人电脑。.

    2022年9月8日
  • java注意事项演示 地图产生表 演示样本 来自thinking in java 4 20代码的章

    java注意事项演示 地图产生表 演示样本 来自thinking in java 4 20代码的章

    2022年1月10日
  • CFileDialog的使用方法简单介绍

    CFileDialog的使用方法简单介绍

    2021年11月28日
  • git 拉取远程分支在本地创建新分支_java获取当前登录用户信息

    git 拉取远程分支在本地创建新分支_java获取当前登录用户信息一、查看远程分支使用如下git命令查看所有远程分支:gitbranch-r二、拉取远程分支并创建本地分支方法一使用如下命令:gitcheckout-b本地分支名xorigin/远程分支名x使用该方式会在本地新建分支x,并自动切换到该本地分支x。方式二使用如下命令:gitfetchorigin远程分支名x:本地分支名x使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要

    2022年9月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号