pytorch mseloss_pytorch handbook

pytorch mseloss_pytorch handbook1、均方损失函数:loss(xi,yi)=(xi−yi)2loss(xi,yi)=(xi−yi)2\text{loss}(\mathbf{x}_i,\mathbf{y}_i)=(\mathbf{x}_i-\mathbf{y}_i)^2这里loss,x,y的维度是一样的,可以是向量或者矩阵,i是下标。很多的loss函数都有size_average和reduc…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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

均方损失函数:

loss(xi,yi)=(xiyi)2 loss ( x i , y i ) = ( x i − y i ) 2

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

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

(1)如果 reduce = False,那么 size_average 参数失效,直接返回向量形式的 loss
(2)如果 reduce = True,那么 loss 返回的是标量
a)如果 size_average = True,返回 loss.mean();
b)如果 size_average = False,返回 loss.sum();

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

import torch
import numpy as np

1、返回向量

loss_fn = torch.nn.MSELoss(reduce=False, size_average=False)
a=np.array([[1,2],[3,4]])
b=np.array([[2,3],[4,5]])
input = torch.autograd.Variable(torch.from_numpy(a))
target = torch.autograd.Variable(torch.from_numpy(b))

这里将Variable类型统一为float()(tensor类型也是调用xxx.float())

loss = loss_fn(input.float(), target.float())
print(loss)
tensor([[ 1.,  1.],
        [ 1.,  1.]])

2、返回平均值

a=np.array([[1,2],[3,4]])
b=np.array([[2,3],[4,4]])
loss_fn = torch.nn.MSELoss(reduce=True, size_average=True)
input = torch.autograd.Variable(torch.from_numpy(a))
target = torch.autograd.Variable(torch.from_numpy(b))
loss = loss_fn(input.float(), target.float())
 print(loss)
tensor(0.7500)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • NVIC寄存器组

    NVIC寄存器组在STM32中用到了Cortex-M3定义的三组寄存器,有关这三组寄存器的说明不在STM32的技术手册中,需要参考ARM公司发布的Cortex-M3TechnicalReferenceManual(r2p0)。在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下: 一、NVIC寄存器组STM32的固件库

    2022年5月12日
    74
  • JS 获取当前年份,月份[通俗易懂]

    JS 获取当前年份,月份[通俗易懂]functiondoHandleDate(){varmyDate=newDate();vartYear=myDate.getFullYear();vartMonth=myDate.getMonth();varm=tMonth+1;if(m.toString().length==1){m…

    2022年9月24日
    2
  • Windows~~~在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) ,并修改MySQL密码

    Windows~~~在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) ,并修改MySQL密码适用于windows安装MySQL 对于出现拒绝访问root用户的解决方案 错误1045(28000):用户’root’@’localhost’(使用密码:YES)拒绝访问首先解析此英文:ERROR1045(28000):Accessdeniedforuser’root’@’localhost'(usingpassword:YES);解析的地方有…

    2022年6月13日
    27
  • Python 打包成mac app

    Python打包成macapp一、创建一个简单的Tkinter应用,并命名为Sandwich.py:importsysifsys.version_info  #Python2  importTkinterastkelse:  #Python3  importtkinterast

    2022年4月12日
    324
  • ES6基础之——继承extends

    ES6基础之——继承extends一个类可以去继承其他类里面的东西,这里定义一个叫Person的类,然后在constructor里面添加两个参数:name和birthday;下面再添加一个自定义的方法intro,这个方法就是简单地返

    2022年7月1日
    23
  • GridView 的数据绑定

    GridView 的数据绑定1.AlternatingItemTemplate:用于配置交替行的模板,所谓交替行就是第2、4、6、8…行,如果没有配置AlternatingItemTemplate,所有行都是用ItemTem

    2022年7月3日
    29

发表回复

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

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