移动端网站设计尺寸成都电子商务网站建站

web/2025/10/5 17:25:10/文章来源:
移动端网站设计尺寸,成都电子商务网站建站,门户网站的首页模板,山西物价局建设工程检测网站首页创作不易#xff0c;有用点赞#xff0c;写作有利于锻炼一门新的技能#xff0c;有很大一部分是我自己总结的新视角 1、前置条件#xff1a;要理解旋转位置编码前#xff0c;要熟悉自注意力机制#xff0c;否则很难看得懂#xff0c;在我的系列文章中有对自注意力机制的…创作不易有用点赞写作有利于锻炼一门新的技能有很大一部分是我自己总结的新视角 1、前置条件要理解旋转位置编码前要熟悉自注意力机制否则很难看得懂在我的系列文章中有对自注意力机制的画图解释。 先说重要的结论(下面 q向量 和 k向量 是自注意力矩阵诞生的不懂先去看注意力机制) 结论1旋转位置编码本身是绝对位置编码但是和自注意力机制中的一个qk向量结合之后就变成了相对位置编码。因为自注意力机制中qk会计算点积正是恰好这个内积顺带把旋转位置编码变成了相对位置编码所以一般说旋转位置编码既包含了绝对位置编码含义也包含了相对位置编码含义。 结论2假设没有位置编码这个东西自注意力机制中qk向量进行内积的时候经过反向传播会逐渐得出词汇与词汇的关联度矩阵假设10个词汇计算内积当两个词汇关联度越高这两个词汇的内积(q * k)越大重点来了当对q 和 k叠加上旋转位置编码之后那不仅仅是两个词汇关联度越高内积越大并且当两个词汇位置距离越近内积也越大。 结论3原来词向量跟词向量的内积大小只跟词汇的语义相关内积越大两个词汇的语义关联度越高。叠加上旋转位置编码后距离相近的词向量内积也大。当一个句子中两个词汇距离很远但是语义强相关那他们的内积就是大当两个词汇语义没啥关联但是距离很近内积也是大当两个词汇距离又近语义有强相关内积就是大大的。 2、经过上面的结论其实我们知道了旋转位置编码在哪个位置起到的作用就是得出 q 和 k 向量之后。 在说旋转位置编码怎么旋转之前数学界已经就有了怎么对一个向量进行旋转举个例子 如果你本身对位置编码不熟悉在了解旋转位置编码之前建议先去看我的另一篇博客有个传统绝对位置编码的解释旋转位置编码在没和qk叠加之前其实和绝对位置编码差不多你会发现他们的公式在某些地方非常的接近。如果这个所谓的旋转位置编码和传统绝对位置编码通过一样的方式叠加到词向量上面旋转位置编码还是一个绝对位置编码关键在于叠加方式不一样。当然传统位置编码使用旋转位置编码的叠加方式也没有产生相对位置含义所以旋转位置编码的计算公式和他的叠加方式是相互相成的。 传统绝对位置编码公式 旋转位置编码公式 3、上面知道如果向量需要旋转其实需要一个二维向量但是 q 和 k 都是一维向量怎么办呢通过如下叠加把 q 和 k 向量都按照如下图所示变成二维向量 然后把q的每一列当成xy取出来下图所示一共有8个xy所有的q向量都进行这样子的计算计算完成之后我们就说q叠加上了旋转位置编码。 然后又转换回来这个q叠加上了旋转位置编码 4、我简单提供一个证明证明在向量在旋转位置编码之后词汇距离越近内积就越大假设两个token的q向量都一样。 假设两个token的初始表示为相同的向量[1,0,1,0] 旋转矩阵为 下面我们来套用上面说到的公式计算 当这个向量位置为 1 当这个向量位置为 3 5、最后代码实现在这里我也是拿某些大佬的我在这里写了很多print形状从观察矩阵形状变化去理解比较好 我这里提一下就是你会发现代码其实有点难以看懂这是因为涉及到批次计算多头导致矩阵代码中做了很多的矩阵变换但是本质的流程还是我上面所说的只是在实现过程中考虑到优化导致的代码难以按照我上面所述的流程看懂但是本质和上面一样。 import torch import torch.nn as nn import torch.nn.functional as F import math# %%def sinusoidal_position_embedding(batch_size, nums_head, max_len, output_dim, device):# batch_size 8# nums_head 12# max_len 10# output_dim 32position torch.arange(0, max_len, dtypetorch.float).unsqueeze(-1)ids torch.arange(0, output_dim // 2, dtypetorch.float) # 即公式里的i, i的范围是 [0,d/2]theta torch.pow(10000, -2 * ids / output_dim)print(position) # [[0.],[1.],[2.],[3.],[4.],[5.],[6.],[7.],[8.],[9.]]print(output_dim) # 32print(theta) # tensor([1.0000e00, 5.6234e-01, 3.1623e-01, 1.7783e-01, 1.0000e-01, 5.6234e-02,# 3.1623e-02, 1.7783e-02, 1.0000e-02, 5.6234e-03, 3.1623e-03, 1.7783e-03,# 1.0000e-03, 5.6234e-04, 3.1623e-04, 1.7783e-04])print(theta.size()) # torch.Size([16])print(position.size()) # torch.Size([10, 1])embeddings position * theta # 即公式里的pos / (10000^(2i/d))print(embeddings.size()) # torch.Size([10, 16])# (max_len, output_dim//2, 2)embeddings torch.stack([torch.sin(embeddings), torch.cos(embeddings)], dim-1)# For example# torch.sin(embeddings) tensor([[ 0.0000, 0.8415, 0.9093, 0.1411, -0.7568, -0.9589]])# torch.cos(embeddings) tensor([[ 1.0000, 0.5403, -0.4161, -0.9900, -0.6536, 0.2837]])# torch.stack tensor([[[ 0.0000, 1.0000],# [ 0.8415, 0.5403],# [ 0.9093, -0.4161],# [ 0.1411, -0.9900],# [-0.7568, -0.6536],# [-0.9589, 0.2837]]])print(embeddings.size()) # torch.Size([10, 16, 2])embeddings embeddings.repeat((batch_size, nums_head, *([1] * len(embeddings.shape)))) # 在bs维度重复其他维度都是1不重复print(embeddings.size()) # torch.Size([8, 12, 10, 16, 2])# reshape后就是偶数sin, 奇数cos了embeddings torch.reshape(embeddings, (batch_size, nums_head, max_len, output_dim))print(embeddings.size()) # torch.Size([8, 12, 10, 32])embeddings embeddings.to(device)return embeddings# %%def RoPE(q, k):# q,k: (bs, head, max_len, output_dim)batch_size q.shape[0] # batch_size 8nums_head q.shape[1] # nums_head 12max_len q.shape[2] # max_len 10output_dim q.shape[3] # output_dim 32pos_emb sinusoidal_position_embedding(batch_size, nums_head, max_len, output_dim, q.device)print(pos_emb.size()) # torch.Size([8, 12, 10, 32])# 看rope公式可知相邻cossin之间是相同的所以复制一遍。如(1,2,3)变成(1,1,2,2,3,3)cos_pos pos_emb[..., 1::2].repeat_interleave(2, dim-1) # 将奇数列信息抽取出来也就是cos 拿出来并复制sin_pos pos_emb[..., ::2].repeat_interleave(2, dim-1) # 将偶数列信息抽取出来也就是sin 拿出来并复制print(cos_pos.size()) # torch.Size([8, 12, 10, 32])print(sin_pos.size()) # torch.Size([8, 12, 10, 32])q2 torch.stack([-q[..., 1::2], q[..., ::2]], dim-1)print(q2.size()) # torch.Size([8, 12, 10, 16, 2])q2 q2.reshape(q.shape) # reshape后就是正负交替了print(q2.size()) # torch.Size([8, 12, 10, 32])# 更新qw, *对应位置相乘q q * cos_pos q2 * sin_posprint(q.size()) # torch.Size([8, 12, 10, 32])k2 torch.stack([-k[..., 1::2], k[..., ::2]], dim-1)k2 k2.reshape(k.shape)# 更新kw, *对应位置相乘k k * cos_pos k2 * sin_posreturn q, k# %%def attention(q, k, v, maskNone, dropoutNone, use_RoPETrue):# q.shape: (bs, head, seq_len, dk)# k.shape: (bs, head, seq_len, dk)# v.shape: (bs, head, seq_len, dk)if use_RoPE:q, k RoPE(q, k)d_k k.size()[-1]att_logits torch.matmul(q, k.transpose(-2, -1)) # (bs, head, seq_len, seq_len)att_logits / math.sqrt(d_k)if mask is not None:att_logits att_logits.masked_fill(mask 0, -1e9) # mask掉为0的部分设为无穷大att_scores F.softmax(att_logits, dim-1) # (bs, head, seq_len, seq_len)if dropout is not None:att_scores dropout(att_scores)# (bs, head, seq_len, seq_len) * (bs, head, seq_len, dk) (bs, head, seq_len, dk)return torch.matmul(att_scores, v), att_scoresif __name__ __main__:# (bs, head, seq_len, dk)q torch.randn((8, 12, 10, 32))k torch.randn((8, 12, 10, 32))v torch.randn((8, 12, 10, 32))res, att_scores attention(q, k, v, maskNone, dropoutNone, use_RoPETrue)# (bs, head, seq_len, dk), (bs, head, seq_len, seq_len)print(res.shape, att_scores.shape)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宁波市建设银行网站批量扫dedecms做的网站

SpringCloudGateway网关实战(一) 目前对cloud的gateway功能还是不太熟悉,因此特意新建了对应的应用来尝试网关功能。 网关模块搭建 首先我们新建一个父模块用于添加对应的springboot依赖和cloud依赖。本模块我们的配置读取使用的是nacos&a…

企业名称查询网站汽车网站更新怎么做

目录 挖坑版 基本思路 代码实现 注意点 前后指针版 基本思路 代码实现 注意点 由于hoare版本的快速排序有很多坑和需要注意的地方,就会导致代码写起来不容易,这里我们给出两种不同的单趟排序思路:挖坑版&前后指针版。 挖坑…

asp网站建设制作软件项目实施计划方案

服务器不稳定因素 外贸网站主要目的是达到企业和客户紧密联系,提升客户对企业形象的认知度的效果,若租用的服务器不稳定,不仅影响网站的运行,对于网站搜索引擎优化以及用户体验等也有很大的影响,也会照成外贸企业的损失…

电商网站开发发展和前景宁波网站的建设

本地服务端测试是可以拉起微信支付的,但是项目移到服务器上就不行呢?开放平台的app签名已经改了发布版的(签名是通过微信官方给的Gen_Signature_Android.apk获取的),appid没换、APP_SECRET 也没换、商户密钥key也没换,证书更没换哈…

网站的开发和建设有什么区别一分钟建站

“帮大爷干活,他送了我一只鞋子和一手套,又不能穿拿来做什么?”怎么看感觉这都不像是普通的鞋和手套,总感觉好像这位大爷瞒着你什么事儿,一般家里的老人都有几件传家宝,说不定这东西是真的不懂,…

北京哪个网站做兼职比较好wordpress 模拟post

**1.打开虚拟机VM15,启动进入Kali系统,在虚拟机菜单栏,“虚拟机”->安装VMware Tool,弹出框选择“是”。*在Kali系统桌面出现光盘状态的VMware Tool。 1.在超级终端内操作 cd /media/cdrom0 2.复制VMwareTools文件到tmp目录&…

基于dw的网站设计论文奉贤网站建设推广

使用 CSS 的 position 属性和 z-index 属性 首先,将第二个 div 元素的 position 属性设为 relative 或 absolute。这样可以让该元素成为一个定位元素,使得后代元素可以相对于它进行定位。 然后,将要悬浮的 div 元素的 position 属性设为 ab…

百度网盟推广合作网站网站的风格指的是什么

文章目录 一、配置优先级1.1 命令行设置端口号1.2 打包后修改端口号1.3 优先级 小结 二、Bean的管理2.1 获取Bean2.2 Bean作用域2.3 第三方Bean 三、剖析Springboot的底层原理3.1 起步依赖3.2 自动配置3.2.1 第三方类装配3.2.2 原理分析 总结Web后端开发总结:源码跟…

江苏省建设招标网站首页成都市住房与城乡建设局官网

介绍 我们经常需要拷贝文件会用到类似U盘等工具,但我们有时在传输大文件时又苦于没有,那么大内存的转存工具。这时候我们就可以通过一条小小的网线连接两台电脑,形成一个小的局域网传输数据,因为是通过网线传输,所以传…

电商网站设计方案备案核验单网站负责人

日前,长春高空抛物事件已经落下帷幕,此事件的爆出一时间轰动全网,周某漠视他人生命的行为令人愤怒,而年轻女孩的生命也被无情剥夺。为什么高空抛物事件如此频繁,还屡禁不止呢?面对这样令人痛心的新闻作为智…

郑州模板建站襄阳建设网站

如何开启数学公式编辑功能 开启方法见下链接https://www.cnblogs.com/cmt/p/3279312.html 功能 支持数学公式块支持文中数学公式DEMO $$ f(n) \begin{cases}\frac{n}{2}, & \text{if $n$ is even} \\3n1, & \text{if $n$ is odd}\end{cases} $$ 以上的代码产生如下的公…

wordpress多站点备份html5网站制作分工

在 Python 中,assert 是一个断言语句,用于测试代码中的条件是否为真。它的语法如下: assert condition, message其中,condition 是要测试的条件,如果条件为真(True),则程序继续执行…

宁波网站建设推广报价wordpress加载完再显示

css3的滤镜filter属性,可以对网页中的图片进行类似Photoshop图片处理的效果,例如背景的毛玻璃效果、老照片(黑白照片)、火焰效果等。一、blur(px)高斯模糊 二、brightness(%)亮度 三、contrast(%)对比度 四、drop-shadow()阴影 注…

磁力王上海搜索优化推广哪家强

2.5我们着重介绍了二进制整数的加、减运算,本次我们继续介绍乘、除运算。本章是迄今为止最难的一章,希望各位猿友有所收获,也别忘了“点个推荐哦”。引言运算一直是程序运行当中一个重要的环节,而在二进制的运算过程当中&#xff…

手机网站建设要素凡科免费网站可以做推广吗

本文来自网易云社区作者:李哲二、Swagger-springmvc原理解析上面介绍了如何将springmvc和springboot与swagger结合,通过简单配置生成接口文档,以及介绍了swagger提供的一些注解。下面将介绍swagger是如何做到与springmvc结合,自动…

有关图书网站建设策划书指定网站建设前期规划方案

慢 SQL 查询通常指执行时间较长或者消耗大量系统资源的查询。要判断一个 SQL 查询是否慢,可以考虑以下几个方面: 执行时间: 观察查询执行所需的时间。如果一个查询花费了相对较长的时间才能返回结果,可能就是慢查询的一个指标。通…

李氏牛仔网站建设风常州seo关键词排名

一、AIGC(Artificial Intelligence Generated Content)行业 历史背景 AIGC(Artificial Intelligence Generated Content)是指利用人工智能技术生成的内容。随着人工智能技术的不断发展,AIGC 行业逐渐兴起。早期的 AIG…

四川德阳做网站和app网站开发mvc架构

Vue3Ts项目——第三方认证登录 下载插件main.ts文件vue页面调用方式 前言:我们得先去注册成为谷歌开发者,创建一个项目再获取id,整个难点就是获取ID。我难受呀。(记得翻墙) 下载插件 npm install vue3-google-loginma…

湘潭网站网站建设教师进修学校网站建设方案

从团队资源管理器中打开迭代选项。 TFS在新建完团队项目后会自动为本团队项目新建迭代子项,包含发布和冲刺。第一级为团队项目TestProject,第二层为发布,第三层为冲刺,这样的层次一共可以建14层。 这些选项可以编辑,添…

常规网站建设内容网站建设理由和目的

今天得知NGW(New Generation Web,关于语义网络方面的)课程及实验作业成绩已公布,急去查看,但与想象中相去甚远。 罢了,凡事但求尽力而为,末了问心无愧即可,其它种种皆是虚幻。 附&am…