python 绘制六种激活函数(sigmoid、tanh、relu、softmax、relu、elu)

1、效果
在这里插入图片描述

2、实现代码(带注释)

import numpy as np  # 导入 numpy 库, 用于数学运算
import matplotlib.pyplot as plt  # 导入 matplotlib.pyplot, 用于绘图
import matplotlib as mpl  # 导入 matplotlib 库, 用于图形配置plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体为 SimHei 支持中文显示
plt.rcParams['axes.unicode_minus'] = False  # 设置正常显示负号# 定义激活函数
def sigmoid(x):return 1 / (1 + np.exp(-x))  # Sigmoid 函数def tanh(x):return np.tanh(x)  # 双曲正切函数def relu(x):return np.maximum(0, x)  # ReLU 函数def softmax(x):e_x = np.exp(x - np.max(x))  # Softmax 函数, 防止数值溢出return e_x / e_x.sum(axis=0)  # 归一化def leaky_relu(x, alpha=0.01):return np.where(x > 0, x, x * alpha)  # Leaky ReLU 函数def elu(x, alpha=1):return np.where(x >= 0, x, alpha * (np.exp(x) - 1))  # ELU 函数# 创建 x 值的数组
x = np.linspace(-3, 3, 300)# 准备绘图
fig, ax = plt.subplots(figsize=(10, 6))  # 设置图的大小
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "g", "b", "y", "c", "m"])  # 设置默认颜色循环# 绘制每一个激活函数
ax.plot(x, sigmoid(x), label='Sigmoid')
ax.plot(x, tanh(x), label='Tanh')
ax.plot(x, relu(x), label='ReLU')
ax.plot(x, softmax(x), label='Softmax')  # 一般不会在整个输入范围内使用
ax.plot(x, leaky_relu(x), label='Leaky ReLU')
ax.plot(x, elu(x), label='ELU')# 添加标签和标题
ax.set_title("激活函数", fontsize=20)  # 设置标题
ax.set_xlabel("x")  # 设置 x 轴标签
ax.set_ylabel("f(x)")  # 设置 y 轴标签
ax.legend()  # 显示图例
# plt.grid(True)  # 显示网格(可选)# 保存图像为 png 文件
plt.savefig('act_funcs.png', format='spng')
# 显示图像
plt.show()

实现思路不难,关键在于第三方库的应用:numpy、matplotlib。

创作者Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
希望本篇内容能对大家有所帮助,如果大家喜欢的话,请动动手点个赞和关注吧,非常感谢你们的支持!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

福布斯发布2024年人工智能初创企业50强

随着人工智能热潮的持续,一种新的技术经济正在帮助企业开发和部署人工智能驱动的应用程序。在《福布斯》第六届年度“人工智能50强”榜单上,这类新锐企业正大行其道。该榜单遴选了AI领域最有前途的初创公司,由《福布斯》在领先行业专家的帮助…

I2C总线接上拉电阻的原因

I2C为什么要接上拉电阻?因为它是开漏输出。 为什么是开漏输出? I2C协议支持多个主设备与多个从设备在一条总线上,如果不用开漏输出,而用推挽输出,会出现主设备之间短路的情况。所以总线一般会使用开漏输出,…

河北专升本(微机原理编程题)

目录 第一类、循环结构 1.求内存变量 NUM 中 10 个有符号数的最大值并放入 MAX 中。 2.将 0 至 100 中的奇数求和,结果送 SUM 字单元。 3.编程统计 NUM 字节单元中奇数的个数,将个数存入 RESULT 单元。 4.编程统计 BUF 内存区若干个有符号数中正数、…

全球顶级的低代码开发平台,你知道几个?

什么是低代码开发平台? 低码开发平台是一个应用程序,提供图形用户界面编程,从而以非常快的速度开发代码,减少了传统的编程工作。 这些工具有助于快速开发代码,最大限度地减少手工编码的努力。这些平台不仅有助于编码,而且还能快速安装和部署。 低码开发工具的好处 低代码平…

【教学类-52-05】20240417动物数独(4宫格)黏贴卡片需要至少几张?难度1-9 打印版

作品展示: 背景需求: 实际打印的是以下代码生成的动物数独(2*2)学具 【教学类-52-03】20240412动物数独(4宫格)难度1-9 打印版-CSDN博客文章浏览阅读1.1k次,点赞30次,收藏17次。【教…

中国科学院大学学位论文LaTeX模版

Word排版太麻烦了,公式也不好敲,推荐用LaTeX模版,全自动 官方模版下载位置:国科大sep系统 → \rightarrow → 培养指导 → \rightarrow → 论文 → \rightarrow → 论文格式检测 → \rightarrow → 撰写模板下载百度云&#…

day02|最小花费爬梯子

最小花费爬梯子 比如 有一个数组 【2 5 20】我们直接选择从1号梯子(从零编号)跳两格就出去了。 算法原理 我们可以得出楼顶其实是数组的最后一个元素的下一个位置。对于最值问题我们可以尝试使用dpdp我们首先应该定义状态方差的含义,一般以…

bestvike --bvframe学习

ref title fetch后台api 分页属性,pagination 要差几条?pagelimit 在api中写一个饭方法,vue中用用他 vue.cinfig.js中配置别名 nacos微服务 实体类要继承basedata(封装了公共数据) 控制器autowired,getm…

力扣101. 对称二叉树(java)

思路: 一、验证 左右子树是否可翻转对称的? 二、分析左右子树情况: 1)左右都也空 对称 2)左右有一个为空 不对称 3)左右都不为空,但数字不同 不对称 4)左右都不为空,且数…

【C语言】带你完全理解指针(六)指针笔试题

目录 1. 2. 3. 4. 5. 6. 7. 8. 1. int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } 【答案】 2,5 【解析】 定义了一个指向整数的指针ptr,并将其初始化为&…

【JavaSE】你真的了解内部类吗?

前言 本篇会详细讲解内部类的四种形式,让你掌握内部类~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 内部类介绍 实例内部类 定义 调用 静态内部类 定义 调用 匿名内部类 定义和调用1 调用方法2 …

如何有效防范互联网域名诈骗?

互联网域名诈骗已成为网络安全的一大隐患。针对这一问题,保护个人和企业的网络安全至关重要。以下是几条谨防互联网域名诈骗的建议: 1.保持警惕:时刻保持对域名诈骗的警惕,警惕不明来历的域名交易或推广。 2.核实域名信息&#xf…