起因

今天和同组讨论了一下网络输出时,在torch.argmax之前经过torch.sigmoid和不经过sigmoid的区别。

主要起因是实验结果图像不同

图1 不经过sigmoid

图2 经过sigmoid

我们发现经过sigmoid预测的图像更加严格(实验结果证明,经过sigmoid效果好),会将一些不经过sigmoid预测的前景分为背景。

简单实现

#coding:utf-8
import torch
a = torch.tensor([
[[8.0,5.0,-20000.0],[4.0,1.0,2.0],[1.0,6.0,7.0]],
[[-6.0,11.0,-20000.0],[5.0,7.0,9.0],[8.0,9.0,10.0]],
[[-6.0,10.0,-20001.0],[5.0,7.0,9.0],[8.0,9.0,10.0]]
])
b = torch.argmax(a,dim=0)
d = torch.sigmoid(a)
print("as:\n",d)
ds = torch.argmax(d,dim=0)
print("没经过sig:\n{}".format(b))
print("经过sig:\n{}".format(ds))
  • 结果
as:
tensor([[[0.9997, 0.9933, 0.0000],
[0.9820, 0.7311, 0.8808],
[0.7311, 0.9975, 0.9991]], [[0.0025, 1.0000, 0.0000],
[0.9933, 0.9991, 0.9999],
[0.9997, 0.9999, 1.0000]], [[0.0025, 1.0000, 0.0000],
[0.9933, 0.9991, 0.9999],
[0.9997, 0.9999, 1.0000]]])
没经过sig:
tensor([[0, 1, 1],
[2, 2, 2],
[2, 2, 2]])
经过sig:
tensor([[0, 1, 2],
[2, 2, 2],
[2, 2, 2]])
  • 我们可以发现其中-20000.0,-20000.0,-20001.0分别出现在第1,2,3通道上。但是由于经过sigmoid,我们看到as结果都为0,所以导致我们最终argmax最大索引到2通道。但是如果我们不经过sigmoid,发现argmax最大索引是1。这也就证实了上面两张预测图为什么会不一样。

argmax经过sigmoid和不经过sigmoid区别的更多相关文章

  1. 神经网络激活函数sigmoid relu tanh 为什么sigmoid 容易梯度消失

    https://blog.csdn.net/danyhgc/article/details/73850546 什么是激活函数 为什么要用 都有什么 sigmoid ,ReLU, softmax 的比较 ...

  2. scala 下 sigmoid 与breeze.numeric.sigmoid差异对比

    scala> val beforeInit = System.nanoTime;val handsgn = rd.map(x => 1.0 / (1.0 + Math.exp(-x))); ...

  3. 如何用softmax和sigmoid来做多分类和多标签分类

    首先,说下多类分类和多标签分类的区别 多标签分类:一个样本可以属于多个类别(或标签),不同类之间是有关联的,比如一个文本被被划分成“人物”和“体育人物”两个标签.很显然这两个标签不是互斥的,而是有关联 ...

  4. sigmoid function vs softmax function

    DIFFERENCE BETWEEN SOFTMAX FUNCTION AND SIGMOID FUNCTION 二者主要的区别见于, softmax 用于多分类,sigmoid 则主要用于二分类: ...

  5. 逻辑回归和sigmoid函数分类

    逻辑回归和sigmoid函数分类:容易欠拟合,分类精度不高,计算代价小,易于理解和实现 sigmoid函数与阶跃函数的区别在于:阶跃函数从0到1的跳跃在sigmoid函数中是一个逐渐的变化,而不是突变 ...

  6. 机器学习之--线性回归sigmoid函数分类

    import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import random #sigmoid函数 ...

  7. Sigmoid函数简介

    Sigmoid函数是一个在生物学中常见的S型的函数,也称为S型生长曲线.[1] 中文名 Sigmoid函数 外文名 Sigmoid function 别名 S型生长曲线 Sigmoid函数由下列公式定 ...

  8. 神经网络中的激活函数tanh sigmoid RELU softplus softmatx

    所谓激活函数,就是在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端.常见的激活函数包括Sigmoid.TanHyperbolic(tanh).ReLu. softplus以及softma ...

  9. LR采用的Sigmoid函数与最大熵(ME) 的关系

    LR采用的Sigmoid函数与最大熵(ME) 的关系 从ME到LR 先直接给出最大熵模型的一般形式,后面再给出具体的推导过程. \[\begin{align*} P_w(y|x) &= \df ...

  10. 深度学习:Sigmoid函数与损失函数求导

    1.sigmoid函数 ​ sigmoid函数,也就是s型曲线函数,如下: 函数: 导数: ​ 上面是我们常见的形式,虽然知道这样的形式,也知道计算流程,不够感觉并不太直观,下面来分析一下. 1.1 ...

随机推荐

  1. 题解 WD与数列

    P5161 WD与数列 可以想到原条件是一个差分形式,所以我们对原数组差分.然后发现答案其实就是 \(\sum_{i<j} \min(lcp(i+1,j+1)+1,j-i)\). 这个东西先跑 ...

  2. 构建人工智能的工具 —— VXscan-R:数字孪生环境软件模块

    地址: https://www.creaform3d.com.cn/zh/ji-liang-jie-jue-fang/vxscan-rshu-zi-luan-sheng-huan-jing-ruan- ...

  3. MindSpore1.3.0 GPU pip方式安装 —— Ubuntu18.04系统 (最终安装结果为成功)需要管理员权限,sudo安装

    官网地址: https://www.mindspore.cn/install =========================================================== 安 ...

  4. WSL启动nvidia-docker镜像:报错libnvidia-ml.so.1- file exists- unknown

    参考: https://blog.csdn.net/xujiamin0022016/article/details/124782913 https://zhuanlan.zhihu.com/p/361 ...

  5. ubuntu23.04/22.04下安装docker engine

    官方网址: https://docs.docker.com/engine/install/ubuntu/ 2023年12月1日更新 -- Ubuntu 23.04 # Add Docker's off ...

  6. baselines算法库common/tile_images.py模块分析

    该模块只有一个函数,全部内容: import numpy as np def tile_images(img_nhwc): """ Tile N images into ...

  7. 英语.Net多语言开发中的问题

    问题与现象 多语言开发是一件成本很高的事情. 很多公司会退而求其次选择只开发英文版本的软件分发到不同国家,但这里仍存在不同问题. 我们就遇到了这样的问题,参考下面的代码. CultureInfo cu ...

  8. DataOps 新趋势:联通数科如何利用 DolphinScheduler 实现数据一体化管理

    引言 在DataOps(数据运营)的推动下,越来越多的企业开始关注数据研发和运营的一体化建设.DataOps通过自动化和流程优化,帮助企业实现数据的高效流转和管理. 当前,Apache Dolphin ...

  9. Python 开发环境的准备以及一些常用类库模块的安装

    在学习和开发Python的时候,第一步的工作就是先准备好开发环境,包括相关常用的插件,以及一些辅助工具,这样我们在后续的开发工作中,才能做到事半功倍.下面介绍一些Python 开发环境的准备以及一些常 ...

  10. Namomo Summer Camp 23 Day 1(GCPC2021)

    Namomo Summer Camp 23 Day 1(GCPC2021) Problem B: Brexiting and Brentering 签到 #include<bits/stdc++ ...