背景

在分类中,最常见的设置是一个输入,输出是类数目大小的向量。预测的输入类将是在最后一个网络层中具有最大条目的相应类。在分类任务中,交叉熵损失(交叉熵)是训练这类网络最常见的损失函数。交叉熵损失可以写在下面的方程中。例如,有一个三级cnn.最后一个全连通层的输出()是(3×1)张量.还有一个向量,它的维度相同,它指的是输入的真实标签。

交叉熵

比如说,3个类分别是0、1和2。输入属于0类。如果网络输出()是一个经过合理训练的分类器,则网络输出(Y)类似于(3.8,−0.2,0.45)。这个输入的Ground-truth 向量()是(1,0,0).因此,对于0类的输入,我们有:

交叉熵损失的正式定义如下:i从0到2:

Softmax

Softmax的计算可以用下面的图表所示的Softmax图层来表示。请注意,图中的Softmax层(Z)的输入是上面提到的向量y。

 softmax常用于多分类过程中,它将多个神经元的输出,归一化到( 0, 1) 区间内,因此Softmax的输出可以看成概率,从而来进行多分类。
 

nn.CrossEntropyLoss() in Pytorch

基本上,交叉熵只有一个项。因为在交叉熵损失方程中只剩下ground-truth类的概率:

这里,j对应于地面-真值类.只有当i=j时,才能达到,否则便等于。在下面的脚本中,将torch.nn.CrossEntroyLoss()的结果与手工计算的交叉熵损失结果进行比较。证明了torch.n.CrossEntroyLoss()接收原始网络输出层的输入,这意味着函数中包含了Softmax层的计算。因此,在pytorch网络构建时,不需要在最终的完全连接层之后添加额外的Softmax层。

 

softmax in pytorch的更多相关文章

  1. CTCLoss如何使用

    CTCLoss如何使用 目录 CTCLoss如何使用 什么是CTC 架构介绍 一个简单的例子 CTC计算的推导 总概率\(p(z|x)\) 路径的含义 路径概率\(p(\pi|x)\) 什么是\(\m ...

  2. PyTorch Softmax

    PyTorch provides 2 kinds of Softmax class. The one is applying softmax along a certain dimension. Th ...

  3. 【动手学pytorch】softmax回归

    一.什么是softmax? 有一个数组S,其元素为Si ,那么vi 的softmax值,就是该元素的指数与所有元素指数和的比值.具体公式表示为: softmax回归本质上也是一种对数据的估计 二.交叉 ...

  4. 从头学pytorch(四) softmax回归实现

    FashionMNIST数据集共70000个样本,60000个train,10000个test.共计10种类别. 通过如下方式下载. mnist_train = torchvision.dataset ...

  5. 小白学习之pytorch框架(4)-softmax回归(torch.gather()、torch.argmax()、torch.nn.CrossEntropyLoss())

    学习pytorch路程之动手学深度学习-3.4-3.7 置信度.置信区间参考:https://cloud.tencent.com/developer/news/452418 本人感觉还是挺好理解的 交 ...

  6. DL基础补全计划(二)---Softmax回归及示例(Pytorch,交叉熵损失)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  7. 理解pytorch中的softmax中的dim参数

    import torch import torch.nn.functional as F x1= torch.Tensor( [ [1,2,3,4],[1,3,4,5],[3,4,5,6]]) y11 ...

  8. PyTorch学习笔记——softmax和log_softmax的区别、CrossEntropyLoss() 与 NLLLoss() 的区别、log似然代价函数

    1.softmax 函数 Softmax(x) 也是一个 non-linearity, 但它的特殊之处在于它通常是网络中一次操作. 这是因为它接受了一个实数向量并返回一个概率分布.其定义如下. 定义 ...

  9. pytorch中F.softmax(x1,dim = -1) dim 取值测试及验证

    # -*- coding: utf-8 -*- """ Created on Mon May 27 11:09:52 2019 @author: jiangshan &q ...

随机推荐

  1. centos 7.2 安装mongodb 3.4.4免编译

    /根目录下: 获取命令: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.4.tgz 解压命令: tar zvxf mon ...

  2. 「IOI2018」狼人

    快咕一个月了 咕咕咕 咕咕咕咕 LOJ #2865 Luogu P4899(离线) UOJ #407(强制在线) 题意 给定一棵树和若干组询问$(S,E,L,R)$ 表示你初始在$S$,想到达$E$, ...

  3. 有效使用django的queset

    转载自https://www.oschina.net/translate/django-querysets 对象关系映射 (ORM) 使得与SQL数据库交互更为简单,不过也被认为效率不高,比原始的SQ ...

  4. python基本面试题

    https://www.cnblogs.com/changwentao/p/9432166.html

  5. JAVA实例

     JAVA实例1  1 package Demo3; import java.io.File; import java.io.FileReader; import java.io.IOExceptio ...

  6. Appnium-API-Status

    Status Java:// TODO Python:selenium.webdriver.common.utils.is_url_connectable(port) Description Retu ...

  7. 将mysql中的一张表中的一个字段数据根据条件导入另一张表中

    添加字段:alter table matInformation add facid varchar(99)  default ''; 导入数据:update matInformation m set ...

  8. IntelliJ IDEA重启Tomcat

  9. 三丶JavaScript 的基础学习(一)

      知识预览 BOM对象 DOM对象(DHTML) 8 实例练习 JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言 ...

  10. 一丶HTML介绍

    import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('local ...