使用TensorFlow手写Transformer

原创:王稳钺
资料来源:张春阳

由于目前”调包“非常方便,往往让人忽略对于算法的深入理解。本文介绍使用TensorFlow从0实现Transformer,帮助从代码角度理解原理及其中的细节。

1. Self-attention

1.1 Self-attention原理

本文主要介绍代码实现,对于原理部分只做简单介绍。Self-attention主要想要实现的是句子中每一个token和其它token之间的相关性,将其融合起来的语义组成一个新的向量,计算过程如图。首先需要有QUERY和KEYS,在实际实现过程中,最开始就是两组随机的参数的向量。然后进行点乘,点乘后可以得到S值,点乘的过程就是在求相关性的过程。得到S后,经过softmax,得到权重W。之后再引入可学习参数VALUES,刚开始它也是一组随机值。用VALUES与W相乘,最终就可以得到新的向量。通过V1可以得到Y1,单纯使用V1表示时它只有自己的语意信息,而使用Y1时就包括了其与周边向量的关系。

1.2 Self-attention实现

生成矩阵作为输入,用来模拟V1,V2,V3,值是随机写的并没有特殊的含义。为了后续可以传入到模型中,将矩阵转换成tensor。

生成QUERY、KEYS、

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值