搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
笔触狂放9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
十四届蓝桥杯青少组选拔赛Python_2022.11.27_python现将n(3≤n≤600)根胡萝卜全部分配给黑、白、灰三只兔子,分配规则如下: 1)
2
AI多模态教程:从0到1搭建VisualGLM图文大模型案例_ai模型搭建
3
通信协议:UART的Verilog实现(上)_uart通信start信号
4
Linux安装Docker安装开源固定资产管理工具snipe-it(QQ邮箱Docker配置成功)_snipe-it docker
5
fastadmin的二次开发教程【简单搭建、多表格问题,API开发】_fastadmin怎么二次开发
6
Android studio4.1启动模拟器时,报:The emulator process for **** was killed_android stdio安装出现the emulator process
7
ESP8266-12F烧录MQTT固件_esp12f刷固件
8
【感受C++的魅力】:用C++演奏歌曲《起风了》——含完整源码
9
【数据结构】猛猛干7道链表OJ
10
如何使用 TailwindCSS 画一条0.5px的线条_tailwind border宽度0.5px
当前位置:
article
> 正文
transformer总结超详细代码篇_transformer训练阶段的代码
作者:笔触狂放9 | 2024-04-18 10:54:35
赞
踩
transformer训练阶段的代码
transformer 初版链接
attention 代码链接
attention 初版链接
引言:
本文为 transformer 代码篇,主要包含具体实现过程以及过程中遇到的具体细节问题以及实现问题,仅供参考,相关原理介绍可以参考上面链接。
代码部分是本人解读别人实现的代码,对一些作者认为不用注释但是新手又看不懂的个人理解,但是由于工程量确实很大也很复杂我只是想学习一下具体实现过程应付面试所以部分模块的优化代码以及最后的训练部分依然没有完全解析,以后对原理的进一步加深后再来完善
参考代码中参数的名称一开始我是按照自己的理解改变来了名称后来才发现是论文中就这么定义名字的,所以注意我的解析代码中参数名字可能有些混乱,主要是 src 用 input 代替,tgr 用 target 代替,d_model用 embed_dim代替等,每一个模块本文主要介绍需要注意的难点,相关api 用法链接有附上,放心使用
主要参考链接:
参考代码
解析较多
参考代码 2
多头注意力实现部分
从自注意力实现 --> 多头注意力实现,主要难理解的是各种维度的来回变化以及原理步骤的实现比较抽象,但是有个人的详细解析应该可以看懂
embeding 模块
主要是 embeding 方法的封装,有测试用例可以看下我的代码(比较简单)
encoder 模块
实现 encoder 侧 encoder block 结构连接以及block 内的计算(比较简单)
decoder 模块
decoder 中和 encoder 有很大一部分相似但是难点在于其中一个有掩码的多头实现和无掩码的多头的连接,相对复杂,但是比较抽象的掩码部分有测试例子
前馈神经网络模块
根据公式实现即可,公式也比较简单
位置 embeding 模块
这个位置编码的实现相对比较复杂,所以我通过注释相对比较详细的介绍了具体实现方法,注意要理解位置编码本身原理才更好理解代码实现,同样有测试例子
工具包模块
包含 block 堆叠方法的封装, Add & Norm 模块的实现,训练和评分模块的封装,动态更新学习率的实现(未看懂但是公式见下图),优化器的封装, 标签平滑(未看懂,一种正则方法),为看懂部分有测试用例可以辅助理解
整体模块封装
把上面所有的模块按照 transformer 的结构图封装
测试例子(没看懂比较抽象,但是进测试可以运行)
注: jupyter 文件是我测试使用,个人理解的注释以及api 使用的参考链接在这里面,py 文件是参考代码,因为 jupyter 稳健调用只能调py 稳健所以放在同一级目录下
结尾
这个代码的解析真的很费时间,但是确实对自己理解算法原理有很大帮助,实现的时候还是有很多优化的,这些优化还是算法独有的确实很深奥,仅供参考
代码地址:
github
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/笔触狂放9/article/detail/445581
推荐阅读
article
sklearn
——
转换
器
(
Transformer
)与预估
器
(
estimator
)_
sklearn
t...
回想一下之前做的特征工程的步骤?实例化(实例化的是一个
转换
器
类
transform
er) 调用fit_
transform
(...
赞
踩
article
人工智能
大
模型
原理与
应用
实战:从
Transformer
到
Vision
Transformer
2...
1.背景介绍
人工智能
(Artificial Intelligence, AI)是计算机科学的一个分支,研究如何让计算机模...
赞
踩
article
【
人工智能
】
大
模型
原理与应用实战:
大
模型
的
基本概念
:
神经网络
Transformer
、自注意力机制等...
人工智能
(AI)是计算机科学的一个分支,研究如何让计算机模拟人类的智能。在过去的几十年里,
人工智能
技术一直在不断发展和进...
赞
踩
article
二十六章:
Pyramid
Vision
Transformer
——
金字塔
视觉
Transformer
...
虽然
卷积
神经
网络
(CNN)在计算机视觉领域取得了巨大成功,但本研究探讨了一种更简单、无
卷积
的骨干
网络
,适
用于
许多密集预测...
赞
踩
article
detr
(
detection
transformer
)模型训练自己的
数据
集_
detr
打印
出各项指标...
detr
(
detection
transformer
)模型训练自己的
数据
集_
detr
打印
出各项指标
detr
打印
出各项指标...
赞
踩
article
Transformer
用于
目标
检测- End-to-End
Object
Detection wit...
文章目录传统方法存在
的
问题该方法
的
创新点思想与具体内容实验结果分析传统方法存在
的
问题当前
的
目标
检测方法(比如Faster...
赞
踩
article
vision
transformer
剪枝
论文汇总_
vision
transformer
slimm...
同时,作者提出一种自顶向下的
剪枝
方法,大致的流程就是从最后一层开始反推减去的patch,因为与卷积是不一样的,trans...
赞
踩
article
Transformer
Decoder...
In the context of the
Transformer
model, the Decoder is resp...
赞
踩
article
Transformer
-
注意
⼒
机制
Attention
中的 Q
,
K
,
V 解释(2)...
Transformer
Transformer
-
注意
⼒
机制
Attention
中的 Q
,
K
,
V 解释(2) ...
赞
踩
article
[论文阅读] RT-1:
ROBOTICS
TRANSFORMER
FOR
REAL
-
WORLD
C...
通过从大型、多样化的任务识别数据集转移知识,现代机器学习模型可以解决特定的下游任务,无论是。虽然这种能力已经在计算机视觉...
赞
踩
article
Transformer
s
库
与
Transformer
有什么
区别
?...
用途: "
Transformer
s"
库
是一个提供多种预训练模型和工具的软件
库
,用于简化和加速NLP任务的开发。而"Tra...
赞
踩
article
GQA
: Training Generalized
Multi
-
Query
Transformer
...
分组查询注意力的模型的能力与多头注意力的的模型能力相近而且推理速度和多查询注意力相近,等同于同时融合了两者的优点,但是注...
赞
踩
article
Point
Transformer
V2:
分组
向量
注意力
和基于分区的池化 超详细解析...
首次提出了群体
向量
注意力
继承了可学习权重编码和多头
注意力
机制,提出了一种基于
分组
权值编码层的
分组
向量
注意力
。同时引入额...
赞
踩
article
《
Point
Transformer
V2:分组
向量
注意力
和基于分区的
池化
》的理解...
《
Point
Transformer
V2:分组
向量
注意力
和基于分区的
池化
》的理解_point transformer ...
赞
踩
article
Point
Transformer
V2:
分组
的
矢量
注意力
+分区
池化
...
克服了
Point
Transformer
的局限性。首次提出
分组
的
矢量
注意力
,更加有效。设计了
分组
权重编码层,继承了可学习...
赞
踩
article
Yolov5
轻量级:
EfficientViT
,基于级联分组注意力模块的全新实时网络架构,
better
...
yolov5引入cvpr2023
EfficientViT
,加入backbone,涨点明显。高效ViT模型Efficie...
赞
踩
article
CVPR 2023
Slide
-
Transformer
: Hierarchical Vision T...
然而,现有的自
注意力
方法要么采用稀疏的全局
注意力
,要么采用窗口
注意力
来降低计算复杂度,这可能会损害局部特征的学习或者依赖...
赞
踩
article
YoloV5
改进策略:
EfficientViT
,
高效
的视觉
transformer
与级联组
注意力
提升Y...
EfficientViT
是一种
高效
的视觉Transformer模型,旨在解决传统Vision Transformer模型...
赞
踩
article
YOLOv8
改进 | 主干篇 |
SwinTransformer
替换
Backbone
(附代码 + 详...
本文给大家带来
的
改进机制是利用Swin Transformer替换
YOLOv8
中
的
骨干网络其是一个开创性
的
视觉变换器模型...
赞
踩
article
芒果
YOLOv8
改进
76:主干
Backbone
篇
Swin
Transformer
:在基础
Swin
Tr...
YOLOv8
|
Swin
Transformer
改进
transformer
yolov8
...
赞
踩
相关标签
人工智能
transformer
深度学习
大数据
语言模型
AI
LLM
Java
Python
架构设计
机器学习
神经网络
cnn
网络
剪枝