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

自己做彩票网站简单吗麓谷做网站的公司

自己做彩票网站简单吗,麓谷做网站的公司,做服装网站设计书,汕头新闻头条最新消息自注意力(Self-Attention)与交叉注意力(Cross-Attention)PyTorch 简单实现 在深度学习中,注意力机制是现代 Transformer 架构的核心思想之一。本文将介绍两种常见的注意力机制:自注意力(Self-A…

自注意力(Self-Attention)与交叉注意力(Cross-Attention)PyTorch 简单实现

在深度学习中,注意力机制是现代 Transformer 架构的核心思想之一。本文将介绍两种常见的注意力机制:自注意力(Self-Attention)交叉注意力(Cross-Attention),并通过 PyTorch 给出简单实现与使用示例。


📦 必要导入

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch import einsum
from einops import rearrange, repeat
from inspect import isfunction# 一些基础工具函数
def exists(val):return val is not Nonedef default(val, d):if exists(val):return valreturn d() if isfunction(d) else d

🔍 什么是注意力机制?

注意力机制允许模型在处理输入序列时自动聚焦于最相关的部分,从而增强建模能力。以 Transformer 为例,它通过注意力机制建立了序列中不同位置之间的信息关联。


🤖 自注意力(Self-Attention)

自注意力是指查询(Query)、键(Key)、值(Value)都来自同一个输入序列。这种机制允许序列中的每个元素关注其它所有位置的信息,是 BERT、GPT 等模型的基本构件。

✅ PyTorch 实现:

class SelfAttention(nn.Module):def __init__(self, dim, heads=8, dim_head=64, dropout=0.0):super().__init__()inner_dim = dim_head * headsself.scale = dim_head ** -0.5self.heads = headsself.to_qkv = nn.Linear(dim, inner_dim * 3, bias=False)self.to_out = nn.Sequential(nn.Linear(inner_dim, dim),nn.Dropout(dropout))def forward(self, x, mask=None):h = self.headsqkv = self.to_qkv(x)q, k, v = qkv.chunk(3, dim=-1)q, k, v = map(lambda t: rearrange(t, "b n (h d) -> (b h) n d", h=h), (q, k, v))sim = einsum("b i d, b j d -> b i j", q, k) * self.scaleif exists(mask):...attn = sim.softmax(dim=-1)out = einsum("b i j, b j d -> b i d", attn, v)out = rearrange(out, "(b h) n d -> b n (h d)", h=h)return self.to_out(out)

🧪 使用示例:

attn = SelfAttention(dim=64)
x = torch.randn(1, 10, 64)
out = attn(x)
print(out.shape)  # torch.Size([1, 10, 64])

🔁 交叉注意力(Cross-Attention)

交叉注意力允许模型在处理一个序列时,从另一个序列中获取信息。常用于:

  • 编码器-解码器结构(如 Transformer 翻译模型)
  • 图文跨模态对齐
  • 条件生成任务

与自注意力的不同在于:

  • Query 来自当前输入(例如解码器)
  • Key 与 Value 来自另一个序列(例如编码器)

✅ PyTorch 实现:

class CrossAttention(nn.Module):def __init__(self, query_dim, context_dim=None, heads=8, dim_head=64, dropout=0.0):super().__init__()inner_dim = dim_head * headscontext_dim = default(context_dim, query_dim)self.scale = dim_head ** -0.5self.heads = headsself.to_q = nn.Linear(query_dim, inner_dim, bias=False)self.to_k = nn.Linear(context_dim, inner_dim, bias=False)self.to_v = nn.Linear(context_dim, inner_dim, bias=False)self.to_out = nn.Sequential(nn.Linear(inner_dim, query_dim),nn.Dropout(dropout))def forward(self, x, context=None, mask=None):h = self.headscontext = default(context, x)q = self.to_q(x)k = self.to_k(context)v = self.to_v(context)q, k, v = map(lambda t: rearrange(t, "b n (h d) -> (b h) n d", h=h), (q, k, v))sim = einsum("b i d, b j d -> b i j", q, k) * self.scaleif exists(mask):...attn = sim.softmax(dim=-1)out = einsum("b i j, b j d -> b i d", attn, v)out = rearrange(out, "(b h) n d -> b n (h d)", h=h)return self.to_out(out)

🧪 使用示例:

ca = CrossAttention(query_dim=64, context_dim=77)
x = torch.randn(1, 10, 64)          # 解码器输入
context = torch.randn(1, 20, 77)    # 编码器输出
out = ca(x, context)
print(out.shape)  # torch.Size([1, 10, 64])

🧠 总结对比

模块Query 来自Key/Value 来自典型应用
Self-Attention当前输入当前输入BERT、GPT、自注意图像建模
Cross-Attention当前输入外部上下文编解码结构、跨模态、条件生成

🔗 参考链接

Stable Diffusion CrossAttention 代码实现


文章转载自:

http://LPiJP7HK.ydytt.cn
http://xARiqC58.ydytt.cn
http://1swcUHAw.ydytt.cn
http://JPgSXrfJ.ydytt.cn
http://iphIgzQp.ydytt.cn
http://DN40QCiJ.ydytt.cn
http://kZSBAyoU.ydytt.cn
http://RXLVINug.ydytt.cn
http://RLbMwRlO.ydytt.cn
http://G3cuj1AW.ydytt.cn
http://TEkLCUdA.ydytt.cn
http://lLxxDwoa.ydytt.cn
http://6ZGpFkqv.ydytt.cn
http://9dAs8zYh.ydytt.cn
http://mAl7OGVB.ydytt.cn
http://EOA38myH.ydytt.cn
http://yK9E1DE2.ydytt.cn
http://yT4hcuz9.ydytt.cn
http://BaxnCR0A.ydytt.cn
http://z2FPybeD.ydytt.cn
http://hb4B8FUh.ydytt.cn
http://zsz7VM7j.ydytt.cn
http://FDb77nPu.ydytt.cn
http://ajhXjEVV.ydytt.cn
http://9nP6YmWL.ydytt.cn
http://qvly6gLB.ydytt.cn
http://Yx6a4HHx.ydytt.cn
http://zRiCqVCc.ydytt.cn
http://JJZlGE3i.ydytt.cn
http://LBxRc3iD.ydytt.cn
http://www.dtcms.com/wzjs/651180.html

相关文章:

  • 免费推广自己的网站前端开发入门薪水
  • 做外贸soho网站的公司个人备案网站可以做新闻站吗
  • 深圳官方网站建设网络工程师考试报名官网
  • 3合1网站建设哪家好万网域名安全锿
  • 陕西建设执业中心网站办事大厅免费推广软件排行榜
  • 做阿里巴巴网站运营一站式外贸综合服务平台
  • 权威的徐州网站建设网站开发需求网
  • 企业的网站建设费用佛山市seo网站设计哪家好
  • 个人作品展示 网站wordpress评论翻页
  • 南通模板建站定制哪个网站可以做视频软件
  • 网站美工主要工作是什么纵横网站
  • 建站公司网站用什么好响应式网站开发价格
  • 哪个网站做律师推广公关公司组织架构图
  • 宁波其它区低价企业网站搭建哪家好编程如何自学
  • h5网站建设 网站定制开发做网站推广有用吗
  • 装修公司做宣传在哪个网站企业建站系统cms
  • 北京网站制作公司报价网站建设服务器软件
  • 东莞化工网站建设做外贸怎么能上国外网站
  • 重庆网站排名推广手机网站做分享到朋友圈
  • 网站手机站怎么做的WordPress影视采集
  • 微官网 手机网站我想带货怎么找货源
  • 丹东做网站的网站竞价词怎么做
  • 网站备案验证码错误温州营销网站制作报价
  • 南阳河南网站建设价格门户网站的营销特点
  • 澄海建网站软件工程师报名官网
  • 做网站海报用什么app免费网站重生九零做商女
  • 易名中国域名门户网站住房和城乡建设部网站造价师
  • 苏州网站建设 苏州网络推广专家建立网站培训讲义
  • 番禺做网站费用昆山网站开发
  • 如何成立网站软件开发平台