PyTorch学习笔记之激活函数篇(二)

news2024/11/16 9:42:26

文章目录

    • 2、Tanh函数
      • 2.1 公式
      • 2.2 对应的图像
      • 2.3 对应生成图像代码
      • 2.4 优点与不足
      • 2.5 torch.tanh()函数

2、Tanh函数

2.1 公式

Tanh函数的公式: f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} f(x)=ex+exexex
Tanh函数的导函数: f ′ ( x ) = 4 ( e x + e − x ) 2 f'(x) = \frac{4}{(e^x+e^{-x})^2} f(x)=(ex+ex)24 = 1 − [ f ( x ) ] 2 1 - [f(x)]^2 1[f(x)]2

2.2 对应的图像

在这里插入图片描述

2.3 对应生成图像代码

import numpy as np
import matplotlib.pyplot as plt

# 定义 x 的范围
x = np.linspace(-10, 10, 1000)

# 计算 tanh 值
tanh_values = np.tanh(x)

# 计算 tanh 的导数 (1 - tanh^2(x))
derivative_values = 1 - tanh_values ** 2

# 绘制 tanh 函数
plt.plot(x, tanh_values, label='tanh(x)')

# 绘制 tanh 的导数
plt.plot(x, derivative_values, label='derivative of tanh(x)')

# 设置图例
plt.legend()

# 设置标题和轴标签
plt.title('Tanh Function and Its Derivative')
plt.xlabel('x')
plt.ylabel('y')

# 显示图形
plt.grid(True)
plt.show()

2.4 优点与不足

Tanh优点:
1、在分类任务中,双曲正切函数(Tanh)逐渐取代 Sigmoid 函数作为标准的激活函数,其具有很多神经网络所钟爱的特征。它是完全可微分的,反对称,对称中心在原点。
2、输出是S型曲线,具备打破网络层与网络层之间的线性关系,可以把网络层输出非线形地映射到 (−1,1) 区间里。负输入将被强映射为负,而零输入被映射为接近零;tanh 的输出间隔为1且值域是以0为中心的[-1,1](可以解决Sigmoid激活函数输出不以0为中心的问题。)
3、在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。
Tanh不足:
1、当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。
2、Tanh函数也需要进行指数运算,所以其也会存在计算复杂度高且计算量大的问题。
3、当神经网络的层数增多的时候,由于在进行反向传播的时候,链式求导,多项相乘,函数进入饱和区(导数接近于零的地方)就会逐层传递,这种现象被称为梯度消失。

2.5 torch.tanh()函数

在PyTorch中,torch.tanh 函数用于计算张量中每个元素的双曲正切(hyperbolic tangent)值。这个函数接受一个张量(tensor)作为输入,并返回一个新的张量,其中的每个元素都是输入张量对应元素的双曲正切值。

双曲正切函数 tanh(x) 的定义是 (e^x - e^-x) / (e^x + e^-x),其中 e 是自然对数的底数。tanh 函数的值域是 [-1, 1],并且它是奇函数,即 tanh(-x) = -tanh(x)。

以下是如何在PyTorch中使用 torch.tanh 的示例:

import torch

# 创建一个张量
x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])

# 计算双曲正切值
y = torch.tanh(x)

# 输出结果
print(y)

输出将是 x 中每个元素的 tanh 值:

tensor([-0.9640, -0.7616,  0.0000,  0.7616,  0.9640])

在深度学习中,tanh 激活函数常用于隐藏层,因为它可以将输入压缩到 [-1, 1] 的范围内,有助于梯度下降算法的稳定性。不过,在实践中,ReLU 激活函数由于其简单性和性能优势,现在更常用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1526800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java实现定时发送邮件(基于Springboot工程)

1、功能概述? 1、在企业中有很多需要定时提醒的任务:如每天下午四点钟给第二天的值班人员发送值班消息?如提前一天给参与第二天会议的人员发送参会消息等。 2、这种定时提醒有很多方式如短信提醒、站内提醒等邮件提醒是其中较为方便且廉价的…

旅行社旅游线路预定管理系统asp.net

旅行社旅游线路预定管理系统 首页 国内游 境外游 旅游景点 新闻资讯 酒店信息―留言板 后台管理 后台管理导航菜单系统管理修改密码留言管理注册会员管理基础数据设置国别设置有份设地区设置 旅行社管理友情链接管理添加友情链接友情链接管理新闻资讯管理添加新闻资讯新闻资讯管…

10|代理(中):AgentExecutor究竟是怎样驱动模型和工具完成任务的?

LangChain 中的“代理”和“链”的差异究竟是什么?在链中,一系列操作被硬编码(在代码中)。在代理中,语言模型被用作推理引 擎来确定要采取哪些操作以及按什么顺序执行这些操作。 Agent 的关键组件 代理&#xff08…

静态综合实验

一,1.搭建拓扑结构并启动。 2.根据题意得该图需要14个网段,根据192.168.1.0/24划分子网段,如下: 划分完如图所示: 二、配置IP地址 R1路由器: 1.进入系统视图并改名. 2.接口配置IP地址&#xff1a…

Linux系统中安装Docker

用Linux既可以用虚拟机操作,也可以自己弄一个云服务器进行操作,两者没啥区别。 操作之前需要将用户等级升级到root级别,防止有些操作因为权限限制而不能操作。 安装docker非常简单,只需要一直按照下列命令顺序进行操作即可。 安装…

选Gitee还是GitHub?

2024年3月18日,周一晚上 我选择GitHub 因为GitHub可以无限创建仓库

clipboard好用的复制剪切库

clipboard是现代复制到剪贴板的工具,其 gzip 压缩后只有 3kb,能够减少选择文本的重复操作,点击按钮就可以复制指定内容,支持原生HTMLjs,vue3和vue2。使用方法参照官方文档,so easy!!…

数据结构(四)——串的模式匹配

4.2 串的模式匹配 4.2.1_朴素模式匹配算法 字符串模式匹配:在主串中找到与模式串相同的⼦串,并返回其所在位置 主串⻓度为n,模式串⻓度为 m 朴素模式匹配算法:将主串中所有⻓度为m的⼦串依次与模式串对⽐,直到找到⼀…

U盘变本地磁盘?数据恢复有妙招!

一、U盘异变本地磁盘现象 在日常工作和生活中,U盘作为便携式的存储设备,广受大家喜爱。然而,有时我们会遇到一个奇怪的现象:原本应该显示为可移动磁盘的U盘,在插入电脑后却变成了“本地磁盘”。这种情况不仅让人困惑&…

Android系统签名的制作与使用

目录 1. 📂 背景 2. 🔱 制作Android系统签名 步骤一:找到platform.pk8和platform.x509.pem签名文件 步骤二:下载keytool-importkeypair签名工具 步骤三:使用签名文件和签名工具生成.jks签名文件 3. ✅ 使用Andro…

iPhone迎AI大革命:谷歌、OpenAI助苹果重塑智能巅峰

近日,有媒体报道称,苹果正积极寻求与谷歌和OpenAI展开合作,计划将这两家在全球人工智能领域具有领先地位的公司的大模型技术应用于iPhone的AI功能。这一合作将为iPhone带来革命性的智能体验,开启AI手机新篇章。 AI-321 | 专注于AI…

Linux-MDK can电机带导轨 C++封装

我使用的是MKS的52D can电机带导轨,现在我要根据电机说明书将运动指令封装,有一个限位开关, 闭合时高电平 滑块需要运动在限位开关左侧,所以限位归零的方向为顺时针 根据说明书,我要设置的命令应该是: ca…

【复现】【免费】基于多时间尺度滚动优化的多能源微网双层调度模型

目录 主要内容 部分代码 结果一览 1.原文结果 2.程序运行结果 下载链接 主要内容 该模型参考《Collaborative Autonomous Optimization of Interconnected Multi-Energy Systems with Two-Stage Transactive Control Framework》,主要解决的是一个…

蓝桥杯练习题——贡献法(隔板法)

1.孤独的照片 思路 孤独的区间一定有一头孤独的牛&#xff0c;考虑每头牛对区间的贡献是多少 #include<iostream> using namespace std; const int N 5e5 10; int n; string s;int main(){cin>>n>>s;long long res 0;for(int i 0; i < n; i){int l…

Matlab|面向低碳经济运行目标的多微网能量互联优化调度

目录 主要内容 优化流程 部分程序 结果一览 下载链接 主要内容 该程序为多微网协同优化调度模型&#xff0c;系统在保障综合效益的基础上&#xff0c;调度时优先协调微网与微网之间的能量流动&#xff0c;将与大电网的互联交互作为备用&#xff0c;降低微网与大电…

C语言 数组的应用————扫雷

前言 在上一篇博客中我们实现了简单的三子棋小游戏&#xff0c;初步运用了二维数组&#xff0c;今天还是用二维数组来实现另一个小游戏——扫雷的基础版本&#xff0c;写这两个小游戏的目的主要是理解并运用数组&#xff0c;同时巩固前面学习的知识比如循环和函数等等&#xf…

分享一个不错的three.js开源项目

项目将three.js相关内容封装为相应库 很值得学习&#xff0c;可以模仿项目学习three.js vue-vite-three.js threejs-park: 基于vue3&#xff0c;threeJS智慧园区 threejs-park

YOLOv9改进策略:注意力机制 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;用于微小目标检测的上下文增强和特征细化网络ContextAggregation&#xff0c;助力小目标检测 yolov9-c-ContextAggregation summary: 971 layers, 51002153 parameters, 51002121 gradients, 238.9 GFLOPs 改…

ChatGPT登陆提示:“Please unblock challenges.cloudflare.com to proceed…”

ChatGPT登陆时提示&#xff1a;“Please unblock challenges.cloudflare.com to proceed”&#xff0c; 说明&#xff1a;请解除对challenges.cloudflare.com的屏蔽以继续 原因及解决方法&#xff1a; 1、出现这个问题&#xff0c;一般都是网络和本地环境问题&#xff0c;可以…

使用Nginx配置实现请求的限流操作

概述 限流&#xff08;Rate Limitting&#xff09;是服务降级的一种方式&#xff0c;通过限制系统的输入和输出流量以达到保护系统的目的。 比如我们的网站暴露在公网环境中&#xff0c;除了用户的正常访问&#xff0c;网络爬虫、恶意攻击或者大促等突发流量都可能都会对系统造…