基于MSELoss()与CrossEntropyLoss()的区别详解


Posted in Python onJanuary 02, 2020

基于pytorch来讲

MSELoss()多用于回归问题,也可以用于one_hotted编码形式,

CrossEntropyLoss()名字为交叉熵损失函数,不用于one_hotted编码形式

MSELoss()要求batch_x与batch_y的tensor都是FloatTensor类型

CrossEntropyLoss()要求batch_x为Float,batch_y为LongTensor类型

(1)CrossEntropyLoss() 举例说明:

比如二分类问题,最后一层输出的为2个值,比如下面的代码:

class CNN (nn.Module ) :
  def __init__ ( self , hidden_size1 , output_size , dropout_p) :
    super ( CNN , self ).__init__ ( )
    self.hidden_size1 = hidden_size1
    self.output_size = output_size
    self.dropout_p = dropout_p
    
    self.conv1 = nn.Conv1d ( 1,8,3,padding =1) 
    self.fc1 = nn.Linear (8*500, self.hidden_size1 )
    self.out = nn.Linear (self.hidden_size1,self.output_size ) 
 
  
  def forward ( self , encoder_outputs ) :
    cnn_out = F.max_pool1d ( F.relu (self.conv1(encoder_outputs)),2) 
    cnn_out = F.dropout ( cnn_out ,self.dropout_p) #加一个dropout
    cnn_out = cnn_out.view (-1,8*500) 
    output_1 = torch.tanh ( self.fc1 ( cnn_out ) )
    output = self.out ( ouput_1)
    return output

最后的输出结果为:

基于MSELoss()与CrossEntropyLoss()的区别详解

上面一个tensor为output结果,下面为target,没有使用one_hotted编码。

训练过程如下:

cnn_optimizer = torch.optim.SGD(cnn.parameters(),learning_rate,momentum=0.9,\
              weight_decay=1e-5)
criterion = nn.CrossEntropyLoss()
 
def train ( input_variable , target_variable , cnn , cnn_optimizer , criterion ) :
  cnn_output = cnn( input_variable )
  print(cnn_output)
  print(target_variable)
  loss = criterion ( cnn_output , target_variable)
  cnn_optimizer.zero_grad ()
  loss.backward( )
  cnn_optimizer.step( )
  #print('loss: ',loss.item())
  return loss.item() #返回损失

说明CrossEntropyLoss()是output两位为one_hotted编码形式,但target不是one_hotted编码形式。

(2)MSELoss() 举例说明:

网络结构不变,但是标签是one_hotted编码形式。下面的图仅做说明,网络结构不太对,出来的预测也不太对。

基于MSELoss()与CrossEntropyLoss()的区别详解

如果target不是one_hotted编码形式会报错,报的错误如下。

基于MSELoss()与CrossEntropyLoss()的区别详解

目前自己理解的两者的区别,就是这样的,至于多分类问题是不是也是样的有待考察。

以上这篇基于MSELoss()与CrossEntropyLoss()的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现bitmap数据结构详解
Feb 17 Python
使用Python抓取模板之家的CSS模板
Mar 16 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
Python中常用的内置方法
Jan 28 Python
Python列表与元组的异同详解
Jul 02 Python
django中账号密码验证登陆功能的实现方法
Jul 15 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python3如何判断三角形的类型
Apr 12 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
python实现文件+参数发送request的实例代码
Jan 05 Python
Python基础之变量的相关知识总结
Jun 23 Python
Python中的嵌套循环详情
Mar 23 Python
python使用SQLAlchemy操作MySQL
Jan 02 #Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 #Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 #Python
Python基础之函数基本用法与进阶详解
Jan 02 #Python
Python面向对象原理与基础语法详解
Jan 02 #Python
Pytorch 的损失函数Loss function使用详解
Jan 02 #Python
Python面向对象封装操作案例详解 II
Jan 02 #Python
You might like
php下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
jQuery的slideToggle方法实例
2013/05/07 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
python批量赋值操作实例
2018/10/22 Python
python numpy数组中的复制知识解析
2020/02/03 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
新浪网技术部笔试题
2016/08/26 面试题
STP的判定过程
2012/10/01 面试题
教导处工作制度
2014/01/18 职场文书
结婚保证书范文
2014/04/29 职场文书
品牌推广策划方案
2014/05/28 职场文书
先进班集体申报材料
2014/12/26 职场文书
公诉意见书范文
2015/06/05 职场文书