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

seo外链查询工具北京优化网站方法

seo外链查询工具,北京优化网站方法,wordpress 内链,正规的机械外包加工订单网在注意力机制中#xff0c;每个查询都会关注所有的键值对并生成一个注意力输出。如果查询q#xff0c;键k和值v都来自于同一组输入#xff0c;那么这个注意力就被称为是自注意力#xff08;self-attention#xff09;。自注意力这部分理论#xff0c;我觉得台大李宏毅老师…在注意力机制中每个查询都会关注所有的键值对并生成一个注意力输出。如果查询q键k和值v都来自于同一组输入那么这个注意力就被称为是自注意力self-attention。自注意力这部分理论我觉得台大李宏毅老师的课程讲得最好。 自注意力就是输入一堆向量假设称为a1,a2,a3,a4那么这四个向量都会参与自注意力机制的运算得到的结果仍然是四个输出这四个输出再去做全连接运算。而每一个自注意力机制的输出都用到了a1~a4四个向量来进行运算也就是说每个输出都是观察了所有的输入之后才得到的。 首先输入a1需要和a2,a3,a4分别计算相关性这个相关性可以由缩放点积方式来计算也就称作缩放点积注意力也可以由两个两个输入向量相加后再做非线性处理得到称为加性注意力。 缩放点积的计算方法如下 输入一个向量v1和一个向量v2v1去乘上一个可训练矩阵Wq得到qv2去乘上一个可训练矩阵Wk得到k再把这个q和k做一个点积运算得到的就是α类似于相似度。 回到前面的例子中a1这里既作为q又作为k又作为v。其中Wq*a1就是q1Wk*a1就是k1q1和k1的点积就是α11相当于a1自己和自己的相似度同样的a1和a2,a3,a4分别计算得到α12α13α14然后将α11α12α13α14经过softmax得到最终的四个输出如下图所示 然后再用一个可训练矩阵Wv去乘以a1得到v1用计算得到的相似度α11去乘以v1得到一个值temp11同样的用可训练矩阵Wv去乘以a2得到v2用计算得到的相似度α‘12去乘以v2得到temp12类似的得到temp13,temp14然后把temp11temp12temp13temp14得到b1这个b1就是自注意力机制的第一个输出。 我们刚刚是以a1的视角做的运算得到b1同样可以以a2,a3,a4的视角做运算得到b2,b3,b4。这次就得到了自注意力机制的输出。光看最后这个结构图有点类似全连接只是里面的运算过程比全连接要复杂。 下面我们来看一下如何用代码实现自注意力的计算。 import torch import torch.nn as nn import torch.nn.functional as F class SelfAttention(nn.Module):# embed_size代表输入的向量维度heads代表多头注意力机制中的头数量def __init__(self, embed_size, heads): super(SelfAttention,self).__init__()self.embed_size embed_sizeself.heads headsself.head_dim embed_size // heads # 每个头的维度# 用assert断言机制判断assert (self.head_dim * heads embed_size), Embedding size needs to be divisible by heads # 没有偏置项其实这个线性层本质上就是为了计算值Wv*a Vself.values nn.Linear(self.head_dim, self.head_dim, biasFalse)self.keys nn.Linear(self.head_dim, self.head_dim, biasFalse)self.queries nn.Linear(self.head_dim, self.head_dim, biasFalse)# 最后的全连接操作输出仍是输入的向量维度也就是说大小是不变的self.fc_out nn.Linear(heads*self.head_dim, self.embed_size)def forward(self, values, keys, query, mask):# 这个mask也很关键它用于控制模型在处理序列数据时应该关注哪些部分以及忽略哪些部分N query.shape[0] # 获取输入的批量个数print(N:,N)value_len, key_len, query_len values.shape[1], keys.shape[1], query.shape[1] # 获取输入序列的长度# Split the embedding into self.heads different pieces # 把k,q,v都切分为多个组values values.reshape(N, value_len, self.heads, self.head_dim)keys keys.reshape(N, key_len, self.heads, self.head_dim)queries query.reshape(N, query_len, self.heads, self.head_dim)# 计算k,q,vvalues self.values(values)keys self.keys(keys)queries self.queries(queries)energy torch.einsum(nqhd,nkhd-nhqk,[queries, keys]) # 格式转化print(queries.shape:, queries.shape)print(keys.shape:, keys.shape)print(energy.shape:, energy.shape)if mask is not None:energy energy.masked_fill(mask0, float(-1e20))attention torch.softmax(energy/(self.embed_size**(1/2)), dim3) # softmax内部是缩放点积print(attention.shape:, attention.shape)print(values.shape:, values.shape)out torch.einsum(nhql,nlhd-nqhd, [attention, values]).reshape(N, query_len, self.heads*self.head_dim)out self.fc_out(out)return out embed_size 512 heads 8 attention SelfAttention(embed_size, heads)# batch size 1, seq length 60 values torch.rand(1,60,embed_size) keys torch.rand(1,60,embed_size) queries torch.rand(1,60,embed_size) mask None # 假设没有maskout attention(values, keys, queries, mask) print(out.shape)# 输出 N: 1 queries.shape: torch.Size([1, 60, 8, 64]) keys.shape: torch.Size([1, 60, 8, 64]) energy.shape: torch.Size([1, 8, 60, 60]) attention.shape: torch.Size([1, 8, 60, 60]) values.shape: torch.Size([1, 60, 8, 64]) torch.Size([1, 60, 512]) 通过这个程序我们可以看到自注意力机制是不改变输入和输出的形状的输入的Q,K,V格式是[1,60,512]输出的结果的仍然是[1,60,512]。 下面是几点说明 1. 这里的embed_size代表的是输入到自注意力层中的每个元素的向量维度。在Transformer模型中输入数据首先会被转换成一个固定长度的向量这个向量的长度就称为embed_size。 2. mask表示的是模型在处理序列数据时应该忽略掉哪部分我这里设置为None也就是全部参与计算。 3. einsum称为爱因斯坦求和起源是爱因斯坦在研究广义相对论时需要处理大量求和运算为了简化这种繁复的运算提出了求和约定推动了张量分析的发展。einsum 可以计算向量、矩阵、张量运算如果利用得当sinsum可完全代替其他的矩阵计算方法。 例如C einsum(ij,jk-ik, A, B)就相当于两个矩阵求内积cik Σj AijBjk。 通过输出可以看到在计算前queries的形状是[1,60,8,64]keys的形状是[1,60,8,64]在表达式nqhd,nkhd-nhqk中n1,q60,h8,d64,k60,两个矩阵进行内积因此得到的结果是nhqk也就是[1,8,60,60]。
http://www.w-s-a.com/news/448143/

相关文章:

  • 百度收录较好的网站办公室装修设计方案
  • 建设购物网站要求cnzz数据统计
  • 深圳自适应网站建设价格广东网站建设软件
  • 网页设计介绍北京网站自己做彩票网站
  • 最牛论坛网站app生成链接
  • 用jsp做的网站源代码网站优化说明
  • 网站建设公司名字甘肃省和住房建设厅网站
  • 做外贸网站需要什么卡网站建设公司怎样
  • 网站关键词密度怎么计算的中文版wordpress
  • asp网站建设教程如何在线上推广自己的产品
  • 电脑网站你懂我意思正能量济南网站建设公司熊掌号
  • 杂志社网站建设萧山区网站建设
  • 电商网站前端制作分工网站怎做百度代码统计
  • 免费的html大作业网站网站开发心得500字
  • 临时工找工作网站做美缝帮别人做非法网站
  • 深圳网站建设 设计创公司新昌网站开发
  • 唐山教育平台网站建设上海装修网官网
  • 一个公司做多个网站什么行业愿意做网站
  • 成都龙泉建设网站免费域名app官方下载
  • xss网站怎么搭建如何用wordpress站群
  • 怎样做网站外链supercell账号注册网站
  • 阿里巴巴网站是用什么技术做的哪些网站做推广比较好
  • 做网站go和python手机如何创网站
  • 网站开发进修网站做301将重定向到新域名
  • 公司网站开发费用账务处理ucenter wordpress
  • 六站合一的优势少儿编程机构
  • 软件开发与网站开发学做美食网站哪个好
  • 网站搜索 收录优化百度推广页面投放
  • 响应式网站的优点浙江省网站域名备案
  • 网站安全 扫描深圳被点名批评