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

网站空间搭建怎么利用百度云盘做网站

网站空间搭建,怎么利用百度云盘做网站,石家庄seo代理,深圳装修公司哪家好十大排名文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 理论介绍a. 认知神经学中的注意力b. 注意力机制 1. 注意力权重矩阵可视化#xff08;矩阵热图#xff09;2. 掩码Softmax 操作3. 打分函数——加性注意力模型3. 打分函数——点积注意力与缩放… 文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 理论介绍a. 认知神经学中的注意力b. 注意力机制 1. 注意力权重矩阵可视化矩阵热图2. 掩码Softmax 操作3. 打分函数——加性注意力模型3. 打分函数——点积注意力与缩放点积注意力a. 缩放点积注意力模型b. 点积注意力模型c. 模拟实验d. 模型比较与选择e. 代码整合 ​ 一、实验介绍 注意力机制作为一种模拟人脑信息处理的关键工具在深度学习领域中得到了广泛应用。本系列实验旨在通过理论分析和代码演示深入了解注意力机制的原理、类型及其在模型中的实际应用。 本文将介绍将介绍带有掩码的 softmax 操作 二、实验环境 本系列实验使用了PyTorch深度学习框架相关操作如下 1. 配置虚拟环境 conda create -n DL python3.7 conda activate DLpip install torch1.8.1cu102 torchvision0.9.1cu102 torchaudio0.8.1 -f https://download.pytorch.org/whl/torch_stable.htmlconda install matplotlibconda install scikit-learn2. 库版本介绍 软件包本实验版本目前最新版matplotlib3.5.33.8.0numpy1.21.61.26.0python3.7.16scikit-learn0.22.11.3.0torch1.8.1cu1022.0.1torchaudio0.8.12.0.2torchvision0.9.1cu1020.15.2 三、实验内容 0. 理论介绍 a. 认知神经学中的注意力 人脑每个时刻接收的外界输入信息非常多包括来源于视 觉、听觉、触觉的各种各样的信息。单就视觉来说眼睛每秒钟都会发送千万比特的信息给视觉神经系统。人脑通过注意力来解决信息超载问题注意力分为两种主要类型 聚焦式注意力Focus Attention 这是一种自上而下的有意识的注意力通常与任务相关。在这种情况下个体有目的地选择关注某些信息而忽略其他信息。在深度学习中注意力机制可以使模型有选择地聚焦于输入的特定部分以便更有效地进行任务例如机器翻译、文本摘要等。 基于显著性的注意力Saliency-Based Attention 这是一种自下而上的无意识的注意力通常由外界刺激驱动而不需要主动干预。在这种情况下注意力被自动吸引到与周围环境不同的刺激信息上。在深度学习中这种注意力机制可以用于识别图像中的显著物体或文本中的重要关键词。 在深度学习领域注意力机制已被广泛应用尤其是在自然语言处理任务中如机器翻译、文本摘要、问答系统等。通过引入注意力机制模型可以更灵活地处理不同位置的信息提高对长序列的处理能力并在处理输入时动态调整关注的重点。 b. 注意力机制 注意力机制Attention Mechanism 作为资源分配方案注意力机制允许有限的计算资源集中处理更重要的信息以应对信息超载的问题。在神经网络中它可以被看作一种机制通过选择性地聚焦于输入中的某些部分提高了神经网络的效率。 基于显著性的注意力机制的近似 在神经网络模型中最大汇聚Max Pooling和门控Gating机制可以被近似地看作是自下而上的基于显著性的注意力机制这些机制允许网络自动关注输入中与周围环境不同的信息。 聚焦式注意力的应用 自上而下的聚焦式注意力是一种有效的信息选择方式。在任务中只选择与任务相关的信息而忽略不相关的部分。例如在阅读理解任务中只有与问题相关的文章片段被选择用于后续的处理减轻了神经网络的计算负担。 注意力的计算过程注意力机制的计算分为两步。首先在所有输入信息上计算注意力分布然后根据这个分布计算输入信息的加权平均。这个计算依赖于一个查询向量Query Vector通过一个打分函数来计算每个输入向量和查询向量之间的相关性。 注意力分布Attention Distribution注意力分布表示在给定查询向量和输入信息的情况下选择每个输入向量的概率分布。Softmax 函数被用于将分数转化为概率分布其中每个分数由一个打分函数计算得到。 打分函数Scoring Function打分函数衡量查询向量与输入向量之间的相关性。文中介绍了几种常用的打分函数包括加性模型、点积模型、缩放点积模型和双线性模型。这些模型通过可学习的参数来调整注意力的计算。 加性模型 s ( x , q ) v T tanh ⁡ ( W x U q ) \mathbf{s}(\mathbf{x}, \mathbf{q}) \mathbf{v}^T \tanh(\mathbf{W}\mathbf{x} \mathbf{U}\mathbf{q}) s(x,q)vTtanh(WxUq) 点积模型 s ( x , q ) x T q \mathbf{s}(\mathbf{x}, \mathbf{q}) \mathbf{x}^T \mathbf{q} s(x,q)xTq 缩放点积模型 s ( x , q ) x T q D \mathbf{s}(\mathbf{x}, \mathbf{q}) \frac{\mathbf{x}^T \mathbf{q}}{\sqrt{D}} s(x,q)D ​xTq​ 缩小方差增大softmax梯度 双线性模型 s ( x , q ) x T W q \mathbf{s}(\mathbf{x}, \mathbf{q}) \mathbf{x}^T \mathbf{W} \mathbf{q} s(x,q)xTWq 非对称性 软性注意力机制 定义软性注意力机制通过一个“软性”的信息选择机制对输入信息进行汇总允许模型以概率形式对输入的不同部分进行关注而不是强制性地选择一个部分。 加权平均软性注意力机制中的加权平均表示在给定任务相关的查询向量时每个输入向量受关注的程度通过注意力分布实现。 Softmax 操作注意力分布通常通过 Softmax 操作计算确保它们成为一个概率分布。 1. 注意力权重矩阵可视化矩阵热图 【深度学习实验】注意力机制一注意力权重矩阵可视化矩阵热图heatmap 2. 掩码Softmax 操作 【深度学习实验】注意力机制二掩码Softmax 操作 3. 打分函数——加性注意力模型 加性模型 s ( x , q ) v T tanh ⁡ ( W x U q ) \mathbf{s}(\mathbf{x}, \mathbf{q}) \mathbf{v}^T \tanh(\mathbf{W}\mathbf{x} \mathbf{U}\mathbf{q}) s(x,q)vTtanh(WxUq) 【深度学习实验】注意力机制三打分函数——加性注意力模型 3. 打分函数——点积注意力与缩放点积注意力 点积模型 s ( x , q ) x T q \mathbf{s}(\mathbf{x}, \mathbf{q}) \mathbf{x}^T \mathbf{q} s(x,q)xTq 缩放点积模型 s ( x , q ) x T q D \mathbf{s}(\mathbf{x}, \mathbf{q}) \frac{\mathbf{x}^T \mathbf{q}}{\sqrt{D}} s(x,q)D ​xTq​ 缩小方差增大softmax梯度 a. 缩放点积注意力模型 class DotProductAttention(nn.Module):缩放点积注意力def __init__(self, dropout, **kwargs):super(DotProductAttention, self).__init__(**kwargs)# 使用暂退法进行模型正则化self.dropout nn.Dropout(dropout)def forward(self, queries, keys, values, valid_lensNone):d queries.shape[-1]self.scores torch.bmm(queries, keys.transpose(1, 2)) / math.sqrt(d)self.attention_weights masked_softmax(self.scores, valid_lens)return torch.bmm(self.dropout(self.attention_weights), values) 初始化方法 (__init__): 参数: dropout: Dropout 正则化的概率。 说明: 初始化方法定义了模型的组件仅包含了一个 Dropout 正则化层。 前向传播方法 (forward): 参数: queries: 查询张量形状为 (batch_size, num_queries, d)。keys: 键张量形状为 (batch_size, num_kv_pairs, d)。values: 值张量形状为 (batch_size, num_kv_pairs, value_size)。valid_lens: 有效长度张量形状为 (batch_size,) 或 (batch_size, num_queries)。 返回值: 加权平均后的值张量形状为 (batch_size, num_queries, value_size)。 实现细节: 计算缩放点积得分通过张量乘法计算 queries 和 keys 的点积然后除以 d \sqrt{d} d ​ 进行缩放其中 d d d 是查询或键的维度。使用 masked_softmax 函数计算注意力权重根据有效长度对注意力进行掩码。将注意力权重应用到值上得到最终的加权平均结果。使用 Dropout 对注意力权重进行正则化。 b. 点积注意力模型 class DotProductAttention2(nn.Module):点积注意力def __init__(self, dropout, **kwargs):super(DotProductAttention2, self).__init__(**kwargs)# 使用暂退法进行模型正则化self.dropout nn.Dropout(dropout)def forward(self, queries, keys, values, valid_lensNone):# P195(8.3)(8.4)# 在计算得分时不进行缩放操作即不再除以sqrt(d)self.scores torch.bmm(queries, keys.transpose(1, 2))self.attention_weights masked_softmax(self.scores, valid_lens)return torch.bmm(self.dropout(self.attention_weights), values) 区别 计算点积得分通过张量乘法计算 queries 和 keys 的点积。 c. 模拟实验 模型数据 queries, keys torch.normal(0, 1, (2, 1, 2)), torch.ones((2, 10, 2)) values torch.arange(40, dtypetorch.float32).reshape(1, 10, 4).repeat(2, 1, 1) valid_lens torch.tensor([2, 6])模型应用 # 创建缩放点积注意力模型 attention DotProductAttention(0.5) attention.eval() # 使用模型进行前向传播 attention(queries, keys, values, valid_lens)# 创建点积注意力模型 attention2 DotProductAttention2(0.5) attention2.eval() # 使用模型进行前向传播 attention2(queries, keys, values, valid_lens)权重可视化   为了直观地展示模型在不同输入下的注意力分布使用前文 show_heatmaps 函数通过热图的形式展示注意力权重。 # 可视化缩放点积注意力权重 show_heatmaps(attention.attention_weights.reshape((1, 1, 2, 10)),xlabelKeys, ylabelQueries)# 可视化点积注意力权重 show_heatmaps(attention2.attention_weights.reshape((1, 1, 2, 10)),xlabelKeys, ylabelQueries)d. 模型比较与选择 缩放点积注意力模型 适用于处理高维度的查询和键。通过缩放操作有助于防止点积得分的方差过大。 点积注意力模型 适用于处理相对较低维度的查询和键。更方便地利用矩阵乘积提高计算效率。 e. 代码整合 # 导入必要的库 import math import torch from torch import nn import torch.nn.functional as F from d2l import torch as d2l from torch.utils import datadef masked_softmax(X, valid_lens):通过在最后一个轴上掩蔽元素来执行softmax操作# X:3D张量valid_lens:1D或2D张量if valid_lens is None:return nn.functional.softmax(X, dim-1)else:shape X.shapeif valid_lens.dim() 1:valid_lens torch.repeat_interleave(valid_lens, shape[1])else:valid_lens valid_lens.reshape(-1)# 最后一轴上被掩蔽的元素使用一个非常大的负值替换从而其softmax输出为0X d2l.sequence_mask(X.reshape(-1, shape[-1]), valid_lens, value-1e6)return nn.functional.softmax(X.reshape(shape), dim-1)def show_heatmaps(matrices, xlabel, ylabel, titlesNone, figsize(2.5, 2.5), cmapReds):显示矩阵热图d2l.use_svg_display()num_rows, num_cols matrices.shape[0], matrices.shape[1]fig, axes d2l.plt.subplots(num_rows, num_cols, figsizefigsize,sharexTrue, shareyTrue, squeezeFalse)for i, (row_axes, row_matrices) in enumerate(zip(axes, matrices)):for j, (ax, matrix) in enumerate(zip(row_axes, row_matrices)):pcm ax.imshow(matrix.detach().numpy(), cmapcmap)if i num_rows - 1:ax.set_xlabel(xlabel)if j 0:ax.set_ylabel(ylabel)if titles:ax.set_title(titles[j])fig.colorbar(pcm, axaxes, shrink0.6)class DotProductAttention(nn.Module):缩放点积注意力def __init__(self, dropout, **kwargs):super(DotProductAttention, self).__init__(**kwargs)# 使用暂退法进行模型正则化self.dropout nn.Dropout(dropout)# queries的形状(batch_size查询的个数d)# keys的形状(batch_size“键值”对的个数d)# values的形状(batch_size“键值”对的个数值的维度)# valid_lens的形状:(batch_size)或者(batch_size查询的个数)def forward(self, queries, keys, values, valid_lensNone):print(queries)d queries.shape[-1]print(d)self.scores torch.bmm(queries, keys.transpose(1, 2)) / math.sqrt(d)print(self.scores)self.attention_weights masked_softmax(self.scores, valid_lens)return torch.bmm(self.dropout(self.attention_weights), values)class DotProductAttention2(nn.Module):点积注意力def __init__(self, dropout, **kwargs):super(DotProductAttention2, self).__init__(**kwargs)# 使用暂退法进行模型正则化self.dropout nn.Dropout(dropout)# queries的形状(batch_size查询的个数d)# keys的形状(batch_size“键值”对的个数d)# values的形状(batch_size“键值”对的个数值的维度)# valid_lens的形状:(batch_size)或者(batch_size查询的个数)def forward(self, queries, keys, values, valid_lensNone):# P195(8.3)(8.4)# 在计算得分时不进行缩放操作即不再除以sqrt(d)self.scores torch.bmm(queries, keys.transpose(1, 2))print(self.scores)self.attention_weights masked_softmax(self.scores, valid_lens)return torch.bmm(self.dropout(self.attention_weights), values)queries, keys torch.normal(0, 1, (2, 1, 2)), torch.ones((2, 10, 2)) values torch.arange(40, dtypetorch.float32).reshape(1, 10, 4).repeat(2, 1, 1) valid_lens torch.tensor([2, 6])# 缩放点积注意力模型 attention DotProductAttention(0.5) attention.eval() attention(queries, keys, values, valid_lens)# 点积注意力模型 attention2 DotProductAttention2(0.5) attention2.eval() attention2(queries, keys, values, valid_lens)
http://www.huolong8.cn/news/259771/

相关文章:

  • 楚雄微网站建设常州网站建设套餐
  • 安徽网站建设 网新系统优化软件推荐
  • 移动网站网上营业厅做网站的外包公司可以进吗
  • 没有网站怎么做CPC全网热搜关键词排行榜
  • 网站怎么换空间商对单位网站建设的意见
  • 网站接入支付宝在线交易怎么做珠海正规网站制作系统
  • 杭州网站建设 企业深圳市住房与建设局网站
  • 什么是网站建设策划百度免费域名
  • 汕尾北京网站建设搜狐一开始把网站当做什么来做
  • 石家庄网站设计建设公司网站建设具体实施方案
  • 网页设计与网站建设 公开课漯河网站建设lhwzzz
  • 自己做的网站可以卖时间轴网站模板
  • 全英文外贸网站建设石油 技术支持 东莞网站建设
  • 上传的网站打不开 index.asp怎么在服务器上面建设网站
  • 网站设计 网站推广 网站优化做外国网站
  • 企业网站设计欣赏阿里巴巴国际站买家入口
  • 青岛模版网站建设济南网站建设选聚搜网络认可
  • 戴尔网站建设目标前端网站怎么做
  • 在线阅读网站开发教程网站根验证文件在哪
  • 长沙做网站推广莞城发布最新通告
  • 网站一般用什么语言写包装东莞网站建设0769
  • 建设部证书公布网站济南天桥区网站建设公司
  • 杭州模板建站哪家好企业网站开发报价单
  • 无锡企业推广网站五百丁简历官网
  • 怎么做考试资料分享网站电商网站建设与课程设计
  • 手机网站建立sem扫描电镜是测什么的
  • 网站开发运用的技术河南城源建设工程有限公司网站
  • 网站建设相关文献深圳交易服务中心官网
  • 站长之家网站建设制作自动交换友情链接
  • 学室内设计就是失业医院网站内链优化