pytorch交叉熵损失函数计算_pytorch loss不下降

pytorch交叉熵损失函数计算_pytorch loss不下降MSE:MeanSquaredError(均方误差)含义:均方误差,是预测值与真实值之差的平方和的平均值,即:MSE=1N∑i=1n(xi−yi)2\begin{aligned}MSE=\cfrac{1}{N}\sum_{i=1}^n(x_i-y_i)^2\end{aligned}MSE=N1​i=1∑n​(xi​−yi​)2​  但是,在具体的应用中跟定义稍有不同。主要差别是参数的设置,在torch.nn.MSELoss中有一个reduction参数。reduction是维度要不要

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

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

MSE: Mean Squared Error(均方误差
含义:均方误差,是预测值与真实值之差的平方和的平均值,即:
M S E = 1 N ∑ i = 1 n ( x i − y i ) 2 \begin{aligned} MSE =\cfrac {1}{N}\sum_{i=1}^n(x_i-y_i)^2 \end{aligned} MSE=N1i=1n(xiyi)2
  但是,在具体的应用中跟定义稍有不同。主要差别是参数的设置,在torch.nn.MSELoss中有一个reduction参数。reduction是维度要不要缩减以及如何缩减主要有三个选项:

  • ‘none’:no reduction will be applied.
  • ‘mean’: the sum of the output will be divided by the number of elements in the output.
  • ‘sum’: the output will be summed.

  如果不设置reduction参数,默认是’mean’
下面看个例子:

import torch
import torch.nn as nn
 
a = torch.tensor([[1, 2], 
				  [3, 4]], dtype=torch.float)
				  
b = torch.tensor([[3, 5], 
				  [8, 6]], dtype=torch.float)
 
loss_fn1 = torch.nn.MSELoss(reduction='none')
loss1 = loss_fn1(a.float(), b.float())
print(loss1)   # 输出结果:tensor([[ 4., 9.],
               # [25., 4.]])
 
loss_fn2 = torch.nn.MSELoss(reduction='sum')
loss2 = loss_fn2(a.float(), b.float())
print(loss2)   # 输出结果:tensor(42.)
 
 
loss_fn3 = torch.nn.MSELoss(reduction='mean')
loss3 = loss_fn3(a.float(), b.float())
print(loss3)   # 输出结果:tensor(10.5000)

  在loss1中是按照原始维度输出,即对应位置的元素相减然后求平方;loss2中是对应位置求和;loss3中是对应位置求和后取平均。
  除此之外,torch.nn.MSELoss还有一个妙用,求矩阵的F范数(F范数详解)当然对于所求出来的结果还需要开方。

参考文献

[1]pytorch的nn.MSELoss损失函数
[2]状态估计的基本概念(3)最小均方估计和最小均方误差估计

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

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

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


相关推荐

  • linux创建文件命令vim_vim文件

    linux创建文件命令vim_vim文件创建文件【vi】一、进入vi的命令vifilename:打开或新建文件,并将光标置于第一行首vi+nfilename:打开文件,并将光标置于第n行首vi+filename:打开文件,并将光标置于最后一行首vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filena…

    2022年9月16日
    0
  • 即时通讯聊天源码

    即时通讯聊天源码介绍:前端开发语言:VUE(安卓,IOS,WEB为一套前端代码)前端操作需要设置vue主程序的三个api接口发布h5打包上传服务器即可后台地址:域名/admin_loginTP伪静态,防跨域关掉网盘下载地址:http://kekewl.net/ShL1UQbsuts0图片:…

    2022年5月14日
    42
  • Zookeeper分布式锁代码实现[通俗易懂]

    目录原生API操作ZKWatch机制分布式锁思路Zookeeper分布式锁的代码实现zkclientCurator原生API操作ZK什么叫原生API操作ZK呢?实际上,利用zookeeper.jar这样的就是基于原生的API方式操作ZK,因为这个原生API使用起来并不是让人很舒服,于是出现了zkclient这种方式,以至到后来基于Curator框架,让人使用ZK…

    2022年4月12日
    44
  • 索引是否覆盖例子_数据库索引的概念及作用

    索引是否覆盖例子_数据库索引的概念及作用(1)select*frommyTestwherea=3andb=5andc=4;—-abc顺序abc三个索引都在where条件里面用到了,而且都发挥了作用(2)select*frommyTestwherec=4andb=6anda=3;where里面的条件顺序在查询之前会被mysql自动优化,效果跟上一句一样(3)select*frommyTestwherea=3andc=7;a用到索引,b没有用,所以c是没有用到索…

    2022年10月9日
    0
  • Hadoop面试题[通俗易懂]

    Hadoop面试题[通俗易懂]文章目录你们公司集群有多少机器,内存,硬盘,CPU?你们Hadoop、Hive、Kafka都是什么版本?你们每天的数据量有多少?数据总量是多少?分布式和集群的区别?Hadoop1和Hadoop2的区别?Hadoop1Hadoop2NameNode运行处理什么是Hadoop?说一说Hadoop的shuffle过程?Hadoop中为什么需要排序?HDFS相关概念特点缺点BlockNameNodeDataNodeEditLogFSImageSecondaryNameNodefsimage和edits合

    2022年6月29日
    20
  • ubuntu下vscode的使用教程_vscode连接ubuntu虚拟机

    ubuntu下vscode的使用教程_vscode连接ubuntu虚拟机1、安装ffmpegwgethttps://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2tar-xjvfffmpeg-4.1.tar.bz2./configure–prefix=/usr/local/ffmpeg–enable-gpl–enable-version3–enable-nonfree–enable-postproc–enable-pthreads–enable-libfdk-aac–enable-libmp3lame

    2022年9月24日
    0

发表回复

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

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