热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

为什么我们要批量处理矩阵产品?

如何解决《为什么我们要批量处理矩阵产品?》经验,为你挑选了1个好方法。

我正在关注Pytorch seq2seq教程,其使用torch.bmm方法如下:

attn_applied = torch.bmm(attn_weights.unsqueeze(0),
                         encoder_outputs.unsqueeze(0))

我了解为什么我们需要将注意力权重和编码器输出相乘。

我不太明白的是我们bmm在这里需要方法的原因。 torch.bmm文件说

对批处理1和批处理2中存储的矩阵执行批处理矩阵矩阵乘积。

batch1和batch2必须是每个都包含相同数量矩阵的3-D张量。

如果batch1是(b×n×m)张量,batch2是(b×m×p)张量,out将是(b×n×p)张量。



1> Wasi Ahmad..:

在seq2seq模型中,编码器对以小批量形式给出的输入序列进行编码。假设输入为B x S x d,其中B是批处理大小,S是最大序列长度,d是单词嵌入维数。然后,编码器的输出为:B x S x h其中h是编码器(RNN)的隐藏状态大小。

现在,在解码时(在训练过程中) ,输入序列一次被赋予一个,因此输入为B x 1 x d,解码器产生shape的张量B x 1 x h。现在要计算上下文向量,我们需要将解码器的隐藏状态与编码器的编码状态进行比较。

因此,考虑您有两个形状为T1 = B x S x h和的张量T2 = B x 1 x h。因此,如果可以按如下所示进行批矩阵乘法。

out = torch.bmm(T1, T2.transpose(1, 2))

本质上,您是将一个形状B x S x h的张量与一个形状的张量相乘B x h x 1,这将导致B x S x 1每个批次的注意权重。

这里,注意力权重B x S x 1表示解码器的当前隐藏状态与编码器的所有隐藏状态之间的相似度得分。现在,您可以B x S x h通过首先换位来吸引注意力权重,使其与编码器的隐藏状态相乘,这将导致shape的张量B x h x 1。而且,如果在dim = 2时执行挤压,将得到形状的张量,B x h这是您的上下文向量。

此上下文向量(B x h)通常与解码器的隐藏状态(B x 1 x h,挤压dim = 1)相连,以预测下一个标记。


推荐阅读
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • RMAN中的不完整恢复是指通过还原所有数据文件将整个数据库回退,然后执行不完全恢复的操作。不完整恢复的场景包括完整恢复不可行或故意要丢失数据。完整恢复需要备份后生成的所有归档日志和联机重做日志,而如果这些日志缺失或损坏,恢复将在该点停止。决定故意丢失数据是在用户错误发生后采取的行动,例如忘了where条件导致整个表受影响。对于已提交的事务来说,这样的更改是不可逆的。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • Oracle 和 mysql的9点区别【MySQL】
    数据库|mysql教程oracle,Oracle,money,mysql,coun数据库-mysql教程1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在o ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • iOS 集成Facebook 第三方分享报错[FBSDKInternalUtility validateAppID]: failed for URL: fbauth2:/error:...
    2019独角兽企业重金招聘Python工程师标准出现这种原因主要是因为info.plist文件里面没有添加一些配置文件转载于:https:my.oschina.net1715 ... [详细]
  • pytorch Dropout过拟合的操作
    这篇文章主要介绍了pytorchDropout过拟合的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完 ... [详细]
  • 我有一个带有H2数据库的springboot应用程序。该应用程序会在启动时引导数据库,为此,我在 ... [详细]
  • 都会|可能会_###haohaohao###图神经网络之神器——PyTorch Geometric 上手 & 实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了###haohaohao###图神经网络之神器——PyTorchGeometric上手&实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 最近学习反射机制的时候Properties.load(读取本地文件流的时候怎么也找不到加载文件后面发现IDEA的默认根目录是在它的Project工程下IDEA的文件目录和Ec ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • wordpress的内页悬浮选项卡功能预览及使用方法介绍
    本文介绍了wordpress的内页悬浮选项卡功能,包括功能预览和使用方法。用户可以自定义切换按钮,设置锚点信息区域,灵活多变且无需代码编辑。文章可以统一设置按钮,也可以独立设置单篇文章的按钮,滚动模式下按钮以滑动形式展示,具有条理性和锚点属性,有利于SEO。滚动效果增加了网站的互动性,让用户参与互动,同时完全兼容手机,使信息展示更清晰。 ... [详细]
author-avatar
lzmhezy198344
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有