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

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.dtcms.com/a/271090.html

相关文章:

  • 前端性能优化:从之理论到实践的破局道
  • Rust与Cypress应用
  • 11.7 ChatGPT奖励模型完全解读:RLHF核心技术深度剖析与Hugging Face实战
  • RPG46.制作boss的受击和boss的死亡
  • iframe 的同源限制与反爬机制的冲突
  • [Python 基础课程]循环语句
  • 基于物联网的智能家居控制系统设计与实现
  • 如何让相册按时间轴展示❓看这里❗
  • git入门之安装tortoisegit
  • Java学习第二十六部分——Spring Security
  • 好发不卷!Transformer依旧能打,模型性能显著提升!
  • C++STL-String
  • Docker 搭建 Harbor 私有仓库
  • Elasticsearch RESTful API入门:全文搜索实战(Java版)
  • 【Oracle报错】[INS-13001] 环境不满足最低要求。
  • 以太网基础④IP 协议介绍与 IP 校验和算法实现
  • 逆向 qq 音乐 sign,data, 解密 response 返回的 arraybuffer
  • 在 Coze 平台工作流开发中,使用图生视频大模型需要时间比较长比如5分钟,如何解决工作流运行超时的问题以及等在视频生成以后再向下走
  • JavaEE初阶第八期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(六)
  • Jmeter进阶篇(35)完美解决Jmeter转换HTML报告报错“Begin size 0 is not equal to fixed size 5”
  • git中的指令解释
  • 详解CAN总线的位填充机制
  • 【学习笔记】计算机操作系统(七)—— 文件管理
  • 全志H616开发学习文档
  • prometheus+grafana接入kafka实战
  • Python管理咨询数据可视化实战:收入分布与顾问利用率双轴对比图表生成脚本
  • 基于BRPC构建高性能HTTP/2服务实战指南
  • python之requests库解析
  • 1️⃣理解大语言模型
  • 【时时三省】(C语言基础)通过指针引用数组