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

网站从建设到上线流程如何做网站效果更好

网站从建设到上线流程,如何做网站效果更好,数码网站模板,深圳聘请做网站人员#x1f3af;要点 #x1f3af;浏览器语言推理识别神经网络 | #x1f3af;不同语言秽语训练识别数据集 | #x1f3af;交互式语言处理解释 Transformer 语言模型 | #x1f3af;可视化Transformer 语言模型 | #x1f3af;语言模型生成优质歌词 | #x1f3af;模型不确…要点 浏览器语言推理识别神经网络 | 不同语言秽语训练识别数据集 | 交互式语言处理解释 Transformer 语言模型 | 可视化Transformer 语言模型 | 语言模型生成优质歌词 | 模型不确定性和鲁棒性深度学习估计基准 | 文本生成神经网络诗歌生成 | 模型透明度 | 验证揭示前馈Transformer 语言模型记忆组合 | 可视化语言模型注意力 | Transformer语言模型文本解释器和视觉解释器 | 分布式训练和推理模型 | 知识获取模型 | 信息提取模型 | 文本生成模型 | 语音图像视频模型 Python注意力 注意力机制描述了神经网络中最近出现的一组新层在过去几年中引起了广泛关注尤其是在序列任务中。文献中对“注意力”有很多不同的定义但我们在这里使用的定义如下注意力机制描述了序列元素的加权平均值其权重根据输入查询和元素的键动态计算。那么这到底是什么意思呢目标是对多个元素的特征取平均值。但是我们不希望对每个元素赋予相同的权重而是希望根据它们的实际值赋予它们权重。换句话说我们希望动态地决定我们更希望“关注”哪些输入。 缩放点积注意力 自注意力背后的核心概念是缩放点积注意力。我们的目标是建立一种注意力机制序列中的任何元素都可以关注任何其他元素同时仍能高效计算。点积注意力将一组查询 Q ∈ R T × d k Q \in R ^{T \times d_k} Q∈RT×dk​、键 K ∈ R T × d k K \in R ^{T \times d_k} K∈RT×dk​ 和值 V ∈ R T × d v V \in R ^{T \times d_v} V∈RT×dv​ 作为输入其中 T T T 是序列长度 d k d_k dk​ 和 d v d_v dv​ 分别是查询/键和值的隐藏维度。为了简单起见我们现在忽略批量维度。从元素 i i i到 j j j的注意力值基于查询 Q i Q_i Qi​和键 K j K_j Kj​的相似度使用点积作为相似度度量。在数学中我们计算点积注意力如下 注意力  ( Q , K , V ) softmax ⁡ ( Q K T d k ) V \text { 注意力 }(Q, K, V)\operatorname{softmax}\left(\frac{Q K^T}{\sqrt{d_k}}\right) V  注意力 (Q,K,V)softmax(dk​ ​QKT​)V 其中 Q、K、V 是查询、键和值向量的串联。 矩阵乘法 Q K T Q K^T QKT 对每个可能的查询和键对执行点积产生形状为 T × T T \times T T×T 的矩阵。每行代表特定元素 i i i​ 相对于序列中所有其他元素的注意力 logits。对此我们应用 softmax 并与值向量相乘以获得加权平均值权重由注意力决定。这种注意力机制的另一个视角提供了如下所示的计算图。 我们尚未讨论的一方面是缩放因子 1 / d k 1 / \sqrt{d_k} 1/dk​ ​。这个比例因子对于在初始化后保持注意力值的适当方差至关重要。请记住我们初始化层的目的是使整个模型具有相等的方差因此 Q Q Q 和 K K K 的方差也可能接近 1 。然而对方差为 σ 2 \sigma^2 σ2 的两个向量执行点积会产生方差为 d k d_k dk​ 倍的标量 q i ∼ N ( 0 , σ 2 ) , k i ∼ N ( 0 , σ 2 ) → Var ⁡ ( ∑ i 1 d k q i ⋅ k i ) σ 4 ⋅ d k q_i \sim N \left(0, \sigma^2\right), k_i \sim N \left(0, \sigma^2\right) \rightarrow \operatorname{Var}\left(\sum_{i1}^{d_k} q_i \cdot k_i\right)\sigma^4 \cdot d_k qi​∼N(0,σ2),ki​∼N(0,σ2)→Var(i1∑dk​​qi​⋅ki​)σ4⋅dk​ 如果我们不将方差缩小到 ∼ σ 2 \sim \sigma^2 ∼σ2则 logits 上的 softmax 对于一个随机元素将饱和为 1对于所有其他元素则饱和为 0。通过 softmax 的梯度将接近于零因此我们无法正确地学习参数。请注意 σ 2 \sigma^2 σ2 的额外因子即用 σ 4 \sigma^4 σ4 而不是 σ 2 \sigma^2 σ2通常不是问题因为我们保持原始方差 σ 2 \sigma^2 σ2 接近无论如何到1。 上图中的块 Mask (opt.) 表示对注意力矩阵中的特定条目进行可选屏蔽。例如如果我们将具有不同长度的多个序列堆叠成一个批次就会使用此功能。为了仍然受益于 PyTorch 中的并行化我们将句子填充到相同的长度并在计算注意力值时屏蔽填充标记。这通常是通过将相应的注意力逻辑设置为非常低的值来实现的。 在讨论了缩放点积注意力块的细节之后我们可以在下面编写一个函数在给定查询、键和值三元组的情况下计算输出特征 def scaled_dot_product(q, k, v, maskNone):d_k q.size()[-1]attn_logits torch.matmul(q, k.transpose(-2, -1))attn_logits attn_logits / math.sqrt(d_k)if mask is not None:attn_logits attn_logits.masked_fill(mask 0, -9e15)attention F.softmax(attn_logits, dim-1)values torch.matmul(attention, v)return values, attention请注意上面的代码支持序列长度前面的任何附加维度因此我们也可以将其用于批处理。但是为了更好地理解让我们生成一些随机查询、键和值向量并计算注意力输出 seq_len, d_k 3, 2 pl.seed_everything(42) q torch.randn(seq_len, d_k) k torch.randn(seq_len, d_k) v torch.randn(seq_len, d_k) values, attention scaled_dot_product(q, k, v) print(Q\n, q) print(K\n, k) print(V\n, v) print(Values\n, values) print(Attention\n, attention)Qtensor([[ 0.3367, 0.1288],[ 0.2345, 0.2303],[-1.1229, -0.1863]]) Ktensor([[ 2.2082, -0.6380],[ 0.4617, 0.2674],[ 0.5349, 0.8094]]) Vtensor([[ 1.1103, -1.6898],[-0.9890, 0.9580],[ 1.3221, 0.8172]]) Valuestensor([[ 0.5698, -0.1520],[ 0.5379, -0.0265],[ 0.2246, 0.5556]]) Attentiontensor([[0.4028, 0.2886, 0.3086],[0.3538, 0.3069, 0.3393],[0.1303, 0.4630, 0.4067]])多头注意力 缩放点积注意力允许网络参与序列。然而序列元素通常需要关注多个不同方面并且单个加权平均值并不是一个好的选择。这就是为什么我们将注意力机制扩展到多个头即相同特征上的多个不同的查询键值三元组。具体来说给定一个查询、键和值矩阵我们将它们转换为 h h h 子查询、子键和子值并独立地通过缩放的点积注意力。然后我们连接头部并将它们与最终的权重矩阵组合起来。从数学上来说我们可以将此操作表示为 多头  ( Q , K , V ) Concat ⁡ ( head  1 , … , head  h ) W O 其中 head  i Attention  ( Q W i Q , K W i K , V W i V ) \begin{aligned} \text { 多头 }(Q, K, V) \operatorname{Concat}\left(\text { head }_1, \ldots, \text { head }_h\right) W^O \\ \text { 其中 head }_i \text { Attention }\left(Q W_i^Q, K W_i^K, V W_i^V\right) \end{aligned}  多头 (Q,K,V) 其中 head i​​Concat( head 1​,…, head h​)WO Attention (QWiQ​,KWiK​,VWiV​)​ 在没有任意查询、键和值向量作为输入的情况下我们如何在神经网络中应用多头注意力层查看批量大小 T T T 序列长度 d model  d_{\text {model }} dmodel ​ X X X 的隐藏维度。连续的权重矩阵 W Q 、 W K W^Q、W^K WQ、WK 和 W V W^V WV 可以将 X X X​ 转换为表示输入的查询、键和值的相应特征向量。使用这种方法我们可以实现下面的多头注意力模块。 def expand_mask(mask):assert mask.ndim 2, Mask must be at least 2-dimensional with seq_length x seq_lengthif mask.ndim 3:mask mask.unsqueeze(1)while mask.ndim 4:mask mask.unsqueeze(0)return maskclass MultiheadAttention(nn.Module):def __init__(self, input_dim, embed_dim, num_heads):super().__init__()assert embed_dim % num_heads 0, Embedding dimension must be 0 modulo number of heads.self.embed_dim embed_dimself.num_heads num_headsself.head_dim embed_dim // num_headsself.qkv_proj nn.Linear(input_dim, 3*embed_dim)self.o_proj nn.Linear(embed_dim, embed_dim)self._reset_parameters()def _reset_parameters(self):nn.init.xavier_uniform_(self.qkv_proj.weight)self.qkv_proj.bias.data.fill_(0)nn.init.xavier_uniform_(self.o_proj.weight)self.o_proj.bias.data.fill_(0)def forward(self, x, maskNone, return_attentionFalse):batch_size, seq_length, _ x.size()if mask is not None:mask expand_mask(mask)qkv self.qkv_proj(x)qkv qkv.reshape(batch_size, seq_length, self.num_heads, 3*self.head_dim)qkv qkv.permute(0, 2, 1, 3) # [Batch, Head, SeqLen, Dims]q, k, v qkv.chunk(3, dim-1)values, attention scaled_dot_product(q, k, v, maskmask)values values.permute(0, 2, 1, 3) # [Batch, SeqLen, Head, Dims]values values.reshape(batch_size, seq_length, self.embed_dim)o self.o_proj(values)if return_attention:return o, attentionelse:return o参阅一计算思维 参阅二亚图跨际
http://www.tj-hxxt.cn/news/141731.html

相关文章:

  • 福建平潭建设局网站搭建网站知识
  • 免费网站推广渠道网络营销主要做什么
  • 重庆选科网站app网站的优点
  • 网站建设公司十大怎么做租号网站
  • 仓储设备东莞网站建设阿里云可以几个网站
  • 昆山便宜做网站无锡网站建设哪家做的比较好
  • 网站建设置顶形象墙在线设计网站
  • 什么网站都可以进入的浏览器网站制作的动画怎么做的
  • 电商网站规划昆明网站建设推广公司哪家好
  • 百度建设网站的目的5000元可注册劳务公司吗
  • 河北省承德市建设局网站上不去有哪些做二手的网站
  • 4免费网站建站网站搭建好有什么内容可以修改
  • 连锁酒店设计网站建设国外网站做调查
  • 淘宝客网站推广工具欧米伽男士手表官方网站
  • 那个企业网站是用vue做的wordpress 子网站
  • 做响应式网站制作云南城市建设培训中心网站
  • 网站建设wap站中国文化网站建设策划书
  • 2网站制作网站建设朝阳
  • 用服务器建立网站信誉好的公司官网建设
  • 企业档案网站建设wordpress 基于 网店
  • 怎么修改php网站时事热点新闻
  • 用wordpress搭建的网站哈尔滨网络招聘
  • 2023网站推荐网站建设捌金手指花总五
  • 新闻资讯网站模板下载手游网站怎么做的
  • 通化好的网站建设的公司spring mvc 做网站
  • 建设银行河北省分行网站杭州协会网站建设方案
  • 昆明网站建设有限公司深圳工程项目
  • 做网站时为什么导航时两行字wordpress菜单对齐修改
  • 做淘口令的网站网络规划设计师待遇怎么样
  • 聊城网站制作价格seo搜索引擎优化知乎