nn.BCELoss与nn.CrossEntropyLoss的区别
以前我浏览博客的时候记得别人说过,BCELoss与CrossEntropyLoss都是用于分类问题。可以知道,BCELoss是Binary CrossEntropyLoss的缩写,BCELoss CrossEntropyLoss的一个特例,只用于二分类问题,而CrossEntropyLoss可以用于二分类,也可以用于多分类。
不过我重新查阅了一下资料,发现同样是处理二分类问题,BCELoss与CrossEntropyLoss是不同的。下面我详细讲一下哪里不同。
1. 使用nn.BCELoss需要在该层前面加上Sigmoid函数。
公式如下:
loss(Xi,yi)=−wi[yilogxi+(1−yi)log(1−xi)]loss(X_{i},y_{i}) = -w_{i}[y_{i}logx_{i} + (1-y_{i})log(1-x_{i})]loss(Xi,yi)=−wi[yilogxi+(1−yi)log(1−xi)]
2. 使用nn.CrossEntropyLoss会自动加上Sofrmax层。
公式如下:
loss(Xi,yi)=−wlabellogexlabel∑j=1Nexjloss(X_{i},y_{i}) = -w_{label}log\frac{e^{x_{label}}}{\sum_{j=1}^{N}e^{x_{j}}}loss(Xi,yi)=−wlabellog∑j=1Nexjexlabel
可以看出,这两个计算损失的函数使用的激活函数不同,故而最后的计算公式不同。
nn.BCELoss与nn.CrossEntropyLoss的区别相关推荐
- nn.BCELoss和nn.CrossEntropyloss
nn.BCELoss和nn.CrossEntropyloss总结 nn.BCEloss 公式如下: 1.输入的X 代表模型的最后输出 y 代表你的label 我们的目的就是为了让模型去更好的学习lab ...
- 对于pytorch中nn.CrossEntropyLoss()与nn.BCELoss()的理解和使用
在pytorch中nn.CrossEntropyLoss()为交叉熵损失函数,用于解决多分类问题,也可用于解决二分类问题. BCELoss是Binary CrossEntropyLoss的缩写,nn. ...
- 深刻剖析与实战BCELoss详解(主)和BCEWithLogitsLoss(次)以及与普通CrossEntropyLoss的区别(次)
文章目录 前言 BCELoss原理 BCELoss实操 二分类情况 多分类情况 CrossEntropyLoss BCEWithLogitsLoss 前言 import torch import to ...
- Pytorch踩坑记之交叉熵(nn.CrossEntropy,nn.NLLLoss,nn.BCELoss的区别和使用)
目录 nn.Softmax和nn.LogSoftmax nn.NLLLoss nn.CrossEntropy nn.BCELoss 总结 在Pytorch中的交叉熵函数的血泪史要从nn.CrossEn ...
- torch.nn.BCELoss
import torch import torch.nn as nn a = torch.tensor([0.1,0.3,0.6]) b = torch.tensor([0,0,1]) loss = ...
- BCEloss和CrossEntropyLoss的区别
1. BCEloss pytorch官方提供的公式: l ( x , y ) = { l 1 , l 2 , - , l n } T , l(x,y) = \{l_1,l_2,\dots,l_n\}^ ...
- torch.nn.BCELoss用法
1. 定义 数学公式为Loss = -w * [p * log(q) + (1-p) * log(1-q)],其中p.q分别为理论标签.实际预测值,w为权重.这里的log对应数学上的ln. PyTor ...
- torch.nn.BCELoss are unsafe to autocast
torch.nn.BCELoss are unsafe to autocast 默认初始loss: lobj = torch.zeros(1, device=device) 临时解决方法: bce_l ...
- 小白学GAN系列2——nn.ReLU与nn.LeakyReLU的区别
nn.ReLU与nn.LeakyReLU的区别 因为之前从未接触过这方面,直接接手GAN,有点吃力,如有明显漏洞,请指正,我会感激不尽. 昨晚查阅了ReLU的含义,结果今天发现高老师给的代码中又有一个 ...
最新文章
- mouted能不能访问data中的数据_Vue(定时器)解决mounted不能获取到data中的数据问题...
- C#线程系列讲座(3):线程池和文件下载服务器
- 红米电流电压测试软件,你也是27W家族?Redmi K20 Pro充电测试
- ORA-20204 错误
- 二叉树的后序遍历—leetcode145
- ES6 开发常用新特性以及简述ES7
- Linux文件服务器实战(系统用户)
- tomcat的wget链接_Linux(jdk安装tomcat安装nginx安装gcc/wget)
- 如何在android studio中设置sdk path?
- 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<监听器篇>
- Linux彻底删除mysql
- Django - 路由系统
- pythondifflib详解_python difflib模块示例讲解
- idea拉出Output窗口和还原窗口
- 内存碎片产生原因及解决办法
- 卸载软件时,出现解压缩支持文件时出错,灾难性故障--转载
- 可控硅的基本工作原理及应用
- msxml4.0 sp4_MSXML4和80072efd中的安全性
- C++在一个类中定义另一个有参数构造函数的类的对象
- 人工智能原理(书籍推荐)