1.激活函数

激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。因为很多问题都不是线性的,你只有给它加入一些非线性因素,就能够让问题更好的解决。

函数1:RELU()

优点:

  • 1.相比起Sigmoid和tanh,在SGD中能够快速收敛。
  • 2.有效缓解了梯度弥散的问题。

    a=torch.linspace(-1,1,10)
print(a)
# relu()小于0的都归为0,大于0的成线性
print(torch.relu(a))

输出结果

tensor([-1.0000, -0.7778, -0.5556, -0.333
3, -0.1111, 0.1111, 0.3333, 0.5556,
0.7778, 1.0000])
tensor([0.0000, 0.0000, 0.0000, 0.0000, 0
.0000, 0.1111, 0.3333, 0.5556, 0.7778,
1.0000])

函数2:Sigmoid()

优点:

  • 1.Sigmoid函数的输出映射在之间,单调连续,输出范围有限,优化稳定,可以用作输出层。
  • 2.求导比较容易。

缺点:

  • 1.在两个极端,容易出现梯度弥散。
  • 2.其输出并不是以0为中心的。

    a=torch.linspace(-100,100,10)
print(a)
# relu()小于0的都归为0,大于0的成线性
print(torch.sigmoid(a))

输出结果

tensor([-100.0000,  -77.7778,  -55.5556,
-33.3333, -11.1111, 11.1111,
33.3333, 55.5556, 77.7778,
100.0000])
tensor([0.0000e+00, 1.6655e-34, 7.4564e-2
5, 3.3382e-15, 1.4945e-05, 9.9999e-01,
1.0000e+00, 1.0000e+00, 1.0000e+0
0, 1.0000e+00])

函数3:Tanh()

优点:

  • 1.比Sigmoid函数收敛速度更快。
  • 2.相比Sigmoid函数,其输出以0为中心。

缺点:

  • 仍然存在由于饱和性产生的梯度弥散。

    a=torch.linspace(-10,10,10)
print(a)
# relu()小于0的都归为0,大于0的成线性
print(torch.tanh(a))

输出结果

tensor([-10.0000,  -7.7778,  -5.5556,  -3
.3333, -1.1111, 1.1111, 3.3333,
5.5556, 7.7778, 10.0000])
tensor([-1.0000, -1.0000, -1.0000, -0.997
5, -0.8045, 0.8045, 0.9975, 1.0000,
1.0000, 1.0000])

函数4:Softmax()

softmax通俗理解的大体意思就是,Z1,Z2,,,Zn中,所有的值,先进行一个e^Zi变换,得到yi,然后在除以所有yi的累加和,得到每个值在整个数组中的比重。经过一次sofymax()函数之后,会放大值与值之间的比例,例如图中的Z1,Z2,经过softmax函数之前,是3:1,经过之后,就变成了0.88:0.12。

作用:将张量的每个元素缩放到(0,1)区间且和为1

下图详细讲解了softmax是怎么计算的,图源于网络。

图中例子代码实现如下:

import torch
import torch.nn.functional as F if __name__ == '__main__':
data=torch.tensor([3.0,1.0,-3.0])
print(data)
y=F.softmax(data,dim=0)
print(y)

输出结果

tensor([ 3.,  1., -3.])
tensor([0.8789, 0.1189, 0.0022])

2维tensor进行softmax例子代码实现如下:

import torch
import torch.nn.functional as F if __name__ == '__main__':
data=torch.rand(2,3)
print(data) y=F.softmax(data,dim=1)
# dim=0,就是在1维上进行softmax,也就是在列上进行
# dim=1,就是在2维上进行softmax,也就是在行上进行
print(y)

输出结果

tensor([[0.1899, 0.3969, 0.8333],
[0.9149, 0.8438, 0.4973]])
tensor([[0.2420, 0.2976, 0.4604],
[0.3861, 0.3596, 0.2543]])

Pytorch-tensor的激活函数的更多相关文章

  1. Pytorch Tensor 常用操作

    https://pytorch.org/docs/stable/tensors.html dtype: tessor的数据类型,总共有8种数据类型,其中默认的类型是torch.FloatTensor, ...

  2. Pytorch Tensor, Variable, 自动求导

    2018.4.25,Facebook 推出了 PyTorch 0.4.0 版本,在该版本及之后的版本中,torch.autograd.Variable 和 torch.Tensor 同属一类.更确切地 ...

  3. pytorch tensor与numpy转换

    从官网拷贝过来的,就是做个学习记录.版本 0.4 tensor to numpy a = torch.ones(5) print(a) 输出 tensor([1., 1., 1., 1., 1.]) ...

  4. pytorch 3 activation 激活函数

    2.3 Activation Function import torch import torch.nn.functional as F from torch.autograd import Vari ...

  5. pytorch tensor 维度理解.md

    torch.randn torch.randn(*sizes, out=None) → Tensor(张量) 返回一个张量,包含了从标准正态分布(均值为0,方差为 1)中抽取一组随机数,形状由可变参数 ...

  6. pytorch tensor的索引与切片

    切片方式与numpy是类似. * a[:2, :1, :, :], * 可以用-1索引. * ::2,表示所有数据,间隔为2,即 start:end:step. *  a.index_select(1 ...

  7. Pytorch Tensor 维度的扩充和压缩

    维度扩展 x.unsqueeze(n) 在 n 号位置添加一个维度 例子: import torch x = torch.rand(3,2) x1 = x.unsqueeze(0) # 在第一维的位置 ...

  8. 【Code】numpy、pytorch实现全连接神经网络

    """ 利用numpy实现一个两层的全连接网络 网络结构是:input ->(w1) fc_h -> relu ->(w2) output 数据是随机出 ...

  9. Pytorch(一)

    一.Pytorch介绍 Pytorch 是Torch在Python上的衍生物 和Tensorflow相比: Pytorch建立的神经网络是动态的,而Tensorflow建立的神经网络是静态的 Tens ...

  10. [炼丹术]使用Pytorch搭建模型的步骤及教程

    使用Pytorch搭建模型的步骤及教程 我们知道,模型有一个特定的生命周期,了解这个为数据集建模和理解 PyTorch API 提供了指导方向.我们可以根据生命周期的每一个步骤进行设计和优化,同时更加 ...

随机推荐

  1. 数据安全刻不容缓,国产智能化厂商首获SOC 2鉴证报告有何意义?

    数据安全刻不容缓,国产智能化厂商首获SOC 2鉴证报告有何意义? 了解SOC 2与ISO 27001的区别,你就知道SOC 2对智能自动化厂商的意义了 文/王吉伟 要问当前组织对于数字化转型的最大顾虑 ...

  2. 如何下载RTMP/http直播源直播视频(比尔下载器使用完整教程)

    之前已经介绍了如何抓取各种app直播源及在线视频地址,本节内容将详细介绍如何下载rtmp/http直播源的直播视频,请注意,rtmp/http指协议,不针对任何app,凡是使用了以上协议的基本原理一样 ...

  3. Tomcat 系列

    Tomcat 系列 目录 Tomcat 系列 一. 基本概念 1.1 java jdk 概念 1.2 jsp.servlet是什么 1.3 web服务器.web容器.应用程序服务器 1.4 tomca ...

  4. iView 表单验证 如果prop字段和表单里的字段对不上,会触发校验,提示错误信息

    iView 表单验证 如果prop字段和表单里的字段对不上,会触发校验,提示错误信息 原因: 在某些情况,没有id,只有文本的时候,需要返显文本,直接用input显示文本,就会出现,触发数据校验的问题 ...

  5. 芯片公司Dialog产品调研简报

    一 公司简介: Dialog半导体有限公司的总部位于伦敦,设有一个全球销售.研发和营销部.2013年,公司实现了9.10亿美元的营业收入,是欧洲增长速度最快的公共半导体公司之一.   二 芯片型号: ...

  6. Linux 常见缩写命令英文全称

    linux 命令参考Linux 命令大全: https://man.linuxde.net/ awk = "Aho Weiberger and Kernighan" 三个作者的姓的 ...

  7. git 修改大小写远程分支失败

    先说原因: windows大小写不敏感导致   最近由于项目需求,改回了windows开发环境,之前一直是 mac 开发环境,结果在windows环境下使用 git 时, 把某个之前大写的文件夹名称改 ...

  8. Elasticsearch - Docker安装Elasticsearch8.12.2

    前言 最近在学习 ES,所以需要在服务器上装一个单节点的 ES 服务器环境:centos 7.9 安装 下载镜像 目前最新版本是 8.12.2 docker pull docker.elastic.c ...

  9. VR虚拟现实技术下的汽车展厅:优劣势及运作方式

    虚拟现实汽车展厅其实是一种在线商店,可让客户在模拟环境中体验产品.这对无法亲自到店的人很有帮助.客户可以使用虚拟现实耳机来探索可用的不同型号和颜色.这可以帮助他们就购买哪辆汽车做出更明智的决定.虚拟现 ...

  10. 快速上手系列:CSS

    一 选择符 1 通配:*{} 所有元素 类:p{} 如 p 标签等相应元素 ID:#id{} 使用相应 id 属性的元素样式 类:.类名{} 使用相应 class 属性的元素样式 包含:div p{} ...