基于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 相关文章推荐
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
Python中用于返回绝对值的abs()方法
May 14 Python
Python学习小技巧之列表项的拼接
May 20 Python
对numpy中布尔型数组的处理方法详解
Apr 17 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
python中threading开启关闭线程操作
May 02 Python
pycharm配置安装autopep8自动规范代码的实现
Mar 02 Python
用python删除文件夹中的重复图片(图片去重)
May 12 Python
用python实现监控视频人数统计
May 21 Python
Python移位密码、仿射变换解密实例代码
Jun 27 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事务回滚简单实现方法示例
2017/03/28 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
python中abs&map&reduce简介
2018/02/20 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
python实现zabbix发送短信脚本
2018/09/17 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
什么是Python中的匿名函数
2020/06/02 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
九年级物理教学反思
2014/01/29 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
大学生简历求职信
2014/06/24 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
创业计划书之酒吧
2019/12/02 职场文书
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python