当前位置: 首页 > news >正文

激活函数介绍

介绍

神经网络当中的激活函数用来提升网络的非线性,以增强网络的表征能力。它有这样几个特点:有界,必须为非常数,单调递增且连续可求导。我们常用的有sigmoid或者tanh,但我们都知道这两个都存在一定的缺点,有的甚至是无脑用Relu。所以今天就来学习并实现一些其他的激活函数。

下面激活函数使用的图像都是可以通过这个脚本就行修改:

import torch
import matplotlib.pyplot as plt
import torch.nn.functional as F
x = torch.linspace(-10, 10, 60)
y = F.silu(x)plt.plot(x.numpy(), y.numpy())
plt.title('Silu Activation Function')
plt.xlabel('x')
plt.ylabel('silu(x)')
plt.grid()
plt.tight_layout()
plt.show()

SiLU

import torch
import torch.nn as nn
import torch.nn.functional as Fclass SiLU(nn.Module):@staticmethoddef forward(x):return x * torch.sigmoid(x)if __name__=="__main__":m = nn.SiLU()input = torch.randn(2)output = m(input)print("官方实现:",output)n = SiLU()output = n(input)print("自定义:",output)

官方实现: tensor([ 0.2838, -0.2578])
自定义: tensor([ 0.2838, -0.2578])

Mish

import torch
import torch.nn as nn
import torch.nn.functional as Fclass Mish(nn.Module):@staticmethoddef forward(x):return x * F.softplus(x).tanh()if __name__=="__main__":m = nn.Mish()input = torch.randn(2)output = m(input)print("官方实现:",output)n = Mish()output = n(input)print("自定义:",output)

官方实现: tensor([2.8559, 0.2204])
自定义: tensor([2.8559, 0.2204])

Hard-SiLU

import torch
import torch.nn as nn
import torch.nn.functional as Fclass Hardswish(nn.Module):# Hard-SiLU activation https://arxiv.org/abs/1905.02244@staticmethoddef forward(x):return x * F.hardtanh(x + 3, 0.0, 6.0) / 6.0if __name__=="__main__":m = nn.Hardswish()input = torch.randn(2)output = m(input)print("官方实现:",output)n = Hardswish()output = n(input)print("自定义:",output)

官方实现: tensor([-0.1857, -0.0061])
自定义: tensor([-0.1857, -0.0061])

http://www.lryc.cn/news/182149.html

相关文章:

  • docker方式启动一个java项目-Nginx本地有代码,并配置反向代理
  • 前端和后端是Web开发选哪个好?
  • HTTP协议,请求响应
  • idea配置文件属性提示消息解决方案
  • EdgeView 4 for Mac:重新定义您的图像查看体验
  • 流程自动化(RPA)的好处有哪些?
  • 医学影像系统【简称PACS】源码
  • 大家都在用哪些敏捷开发项目管理软件?
  • python机器学习基础教程01-环境搭建
  • TinyWebServer学习笔记-Config
  • 数据结构与算法--算法
  • JVM:如何通俗的理解并发的可达性分析
  • 传统机器学习聚类算法——总集篇
  • Ajax
  • SQL_ERROR_INFO: “Duplicate entry ‘9003‘ for key ‘examination_info.exam_id‘“
  • 解决每次重启ganache虚拟环境,十个账号秘钥都会改变问题
  • sheng的学习笔记-【中文】【吴恩达课后测验】Course 2 - 改善深层神经网络 - 第一周测验
  • (粗糙的笔记)动态规划
  • Kaggle - LLM Science Exam上:赛事概述、数据收集、BERT Baseline
  • 数据分析三剑客之一:Numpy详解及实战
  • 【C语言】函数的定义、传参与调用(二)
  • Sentinel安装
  • 【JVM】并发可达性分析-三色标记算法
  • 黑豹程序员-架构师学习路线图-百科:Git/Gitee(版本控制)
  • 《Jetpack Compose从入门到实战》第一章 全新的 Android UI 框架
  • 基于Spring Boot的中小型医院网站的设计与实现
  • uniapp iOS离线打包——如何创建App并提交版本审核?
  • 论文笔记:Contrastive Trajectory Similarity Learning withDual-Feature Attention
  • 整数和字符串比较的坑
  • LeetCode 面试题 08.04. 幂集