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

宿州网站建设工作室东莞英文网站制作

宿州网站建设工作室,东莞英文网站制作,网站首页广告,114推广平台主要组成部分: 1. 定义注意力层: 定义一个Attention_Layer类,接受两个参数:hidden_dim(隐藏层维度)和is_bi_rnn(是否是双向RNN)。 2. 定义前向传播: 定义了注意力层的…

主要组成部分:

1. 定义注意力层

定义一个Attention_Layer类,接受两个参数:hidden_dim(隐藏层维度)和is_bi_rnn(是否是双向RNN)。

2. 定义前向传播:

定义了注意力层的前向传播过程,包括计算注意力权重和输出。

3. 数据准备

生成一个随机的数据集,包含3个句子,每个句子10个词,每个词128个特征。

4. 实例化注意力层:

实例化一个注意力层,接受两个参数:hidden_dim(隐藏层维度)和is_bi_rnn(是否是双向RNN)。

5. 前向传播

将数据传递给注意力层的前向传播方法。

6. 分析结果

获取第一个句子的注意力权重。

7. 可视化注意力权重

使用matplotlib库可视化了注意力权重。

**主要函数和类:**
Attention_Layer类:定义了注意力层的结构和前向传播过程。
forward方法:定义了注意力层的前向传播过程。
torch.from_numpy函数:将numpy数组转换为PyTorch张量。
matplotlib库:用于可视化注意力权重。
import torch
import torch.nn as nn
import torch.nn.functional as F
import numpy as np
import matplotlib.pyplot as plt# 定义注意力层
class Attention_Layer(nn.Module):def __init__(self, hidden_dim, is_bi_rnn):super(Attention_Layer,self).__init__()self.hidden_dim = hidden_dimself.is_bi_rnn = is_bi_rnnif is_bi_rnn:self.Q_linear = nn.Linear(hidden_dim * 2, hidden_dim * 2, bias = False)self.K_linear = nn.Linear(hidden_dim * 2, hidden_dim * 2, bias = False)self.V_linear = nn.Linear(hidden_dim * 2, hidden_dim * 2, bias = False)else:self.Q_linear = nn.Linear(hidden_dim, hidden_dim, bias = False)self.K_linear = nn.Linear(hidden_dim, hidden_dim, bias = False)self.V_linear = nn.Linear(hidden_dim, hidden_dim, bias = False)def forward(self, inputs, lens):# 获取输入的大小size = inputs.size()Q = self.Q_linear(inputs) K = self.K_linear(inputs).permute(0, 2, 1)V = self.V_linear(inputs)max_len = max(lens)sentence_lengths = torch.Tensor(lens)mask = torch.arange(sentence_lengths.max().item())[None, :] < sentence_lengths[:, None]mask = mask.unsqueeze(dim = 1)mask = mask.expand(size[0], max_len, max_len)padding_num = torch.ones_like(mask)padding_num = -2**31 * padding_num.float()alpha = torch.matmul(Q, K)alpha = torch.where(mask, alpha, padding_num)alpha = F.softmax(alpha, dim = 2)out = torch.matmul(alpha, V)return out# 准备数据
data = np.random.rand(3, 10, 128)  # 3个句子,每个句子10个词,每个词128个特征
lens = [7, 10, 4]  # 每个句子的长度# 实例化注意力层
hidden_dim = 64
is_bi_rnn = True
att_L = Attention_Layer(hidden_dim, is_bi_rnn)# 前向传播
att_out = att_L(torch.from_numpy(data).float(), lens)# 分析结果
attention_weights = att_out[0, :, :].detach().numpy()  # 获取第一个句子的注意力权重# 可视化注意力权重
plt.imshow(attention_weights, cmap='hot', interpolation='nearest')
plt.colorbar()
plt.show()

在这里插入图片描述

http://www.dtcms.com/wzjs/797523.html

相关文章:

  • 做网站用什么ps软件网站百度收录秒收方法
  • 郯城县住房和城乡建设局网站建设网站设计专业服务
  • 自己制作头像的网站 设计 动漫国外的调查网站上做问卷
  • 盗版做的最好的网站建立网站大概需要多长时间
  • 厦门制作网站哪家好上海市住房和城乡建设厅网站查询
  • 如何提高网站的用户粘度wordpress++分页
  • 广州天拓做网站吗优设计网站建设
  • 商城网站开发解决方案卧龙区网站建设
  • 公司免费推广网站新乡网站的建设
  • 浙江省住房和城乡建设厅网站企业咨询管理是干嘛的
  • 平面设计做网站的步骤广告创意设计案例
  • 怎样自己创网站咸阳佰亿网络工程有限公司
  • 建设工程规划许可证在哪个网站查询搜索引擎大全
  • 网站开发项目建设经验淘宝网站c 设计怎么做
  • 网站开发岗位群网站产品 模块
  • 企业网站建设如何做好外链建设Wordpress 免费收款插件
  • 深圳网站建设美橙互联wordpress像微博
  • 做策划网站推广怎么写简历旅游网站开发背景论文
  • 金湖有哪里做网站的php做音乐网站
  • 网站建设net接口visual studio 开发网站开发
  • 校园网站建设材料北京网站制作与营销培训
  • 金华婺城区建设局网站eclipse网站开发教程
  • 建设公司网站报价网站打开慢怎么回事啊
  • 河北省建设工程协会网站快速排名新
  • 在百度怎么建立自己的网站吗长沙优化科技有限公司地址
  • 网站设计计划书网站没更新
  • 深圳建网站兴田德润很好微信网站建设报价
  • 一个网站如何推广基于jquery做的网站
  • 宁波市建设局网站经典传奇网页游戏
  • 电子商务静态网站建设实验报告如何用手机建立网站