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

swiglu 激活函数学习笔记

几种激活函数函数对比:

https://zhuanlan.zhihu.com/p/696571171

pytorch 实现 可视化代码:

import torch
import torch.nn.functional as F
import numpy as np
import cv2def swiglu(x):x1, x2 = x.chunk(2, dim=-1)return F.silu(x1) * x2x_vals = torch.linspace(-5, 5, steps=300).unsqueeze(1)
x_input = torch.cat([x_vals, x_vals], dim=1)
y_vals = swiglu(x_input).squeeze().detach().numpy()w, h = 640, 480
img = np.ones((h, w, 3), dtype=np.uint8) * 255x_raw = x_vals.squeeze().numpy()
x_plot = ((x_raw + 5) / 10) * (w - 40) + 20
y_plot = ((y_vals - y_vals.min()) / (y_vals.max() - y_vals.min())) * (h - 40)
y_plot = h - y_plot - 20cv2.line(img, (20, h - 20), (w - 20, h - 20), (0, 0, 0), 2)
cv2.line(img, (20, 20), (20, h - 20), (0, 0, 0), 2)for i in range(-5, 6):x_pos = int(((i + 5) / 10) * (w - 40) + 20)cv2.line(img, (x_pos, h - 25), (x_pos, h - 15), (0, 0, 0), 1)cv2.putText(img, str(i), (x_pos - 10, h - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (0, 0, 0), 1)num_yticks = 5
for i in range(num_yticks + 1):y_val = y_vals.min() + (y_vals.max() - y_vals.min()) * i / num_yticksy_pos = int(h - ((i / num_yticks) * (h - 40)) - 20)cv2.line(img, (15, y_pos), (25, y_pos), (0, 0, 0), 1)cv2.putText(img, f"{y_val:.2f}", (0, y_pos + 5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (0, 0, 0), 1)for i in range(1, len(x_plot)):pt1 = (int(x_plot[i - 1]), int(y_plot[i - 1]))pt2 = (int(x_plot[i]), int(y_plot[i]))cv2.line(img, pt1, pt2, (255, 0, 0), 2)cv2.putText(img, "SwiGLU Activation", (30, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (50, 50, 50), 2)cv2.imshow("SwiGLU", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

http://www.xdnf.cn/news/14981.html

相关文章:

  • Rust与Cypress应用
  • 技术支持丨解决 ServBay 在 Windows 启动时反复提示安装 .NET 的问题
  • Flask3.1打造极简CMS系统
  • leetcode11.盛最多水的容器
  • 微信小程序91~100
  • STM32-待机唤醒实验
  • 搭建一款结合传统黄历功能的日历小程序
  • S7-200 SMART :通过以太网下载程序详细步骤
  • ServBay Windows 1.2.0 更新!新增 PHP 设置与 Ollama 支持
  • Docker 高级管理 -- 容器通信技术与数据持久化
  • 人工智能-基础篇-27-模型上下文协议--MCP到底怎么理解?对比HTTP的区别?
  • 如何卸载本机的node.js
  • 【视频观看系统】- 需求分析
  • 沃丰科技海外客服系统综合解决方案
  • 【DB2】load报错SQL3501W、SQL3109N、SQL2036N
  • 持续更新!国内免费使用 claude code 方案
  • LLaMA-Omni 深度解析:打开通往无缝人机语音交互的大门
  • C++学习笔记三
  • 使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
  • 跨部门协作难以对齐项目进度,如何促进协同
  • 【动手学深度学习】4.10 实战Kaggle比赛:预测房价
  • S7-1500——(一)从入门到精通1、基于TIA 博途解析PLC程序结构(一)
  • 【04】MFC入门到精通——MFC 自己手动新添加对话框模板 并 创建对话框类
  • 从零开始学前端html篇2
  • React 编译器与性能优化:告别手动 Memoization
  • 网关助力航天喷涂:Devicenet与Modbus TCP的“跨界对话“
  • windows指定某node及npm版本下载
  • Linux入门篇学习——Linux 编写第一个自己的命令
  • 【TCP/IP】3. IP 地址
  • 250709-通过命令行上传模型文件到ModelsScope