【学习周报】

最近看过的几篇论文里,VALOR和InstructBLIP模型使用了cross-attention机制,以这两篇论文为基础着重学习cross-attention相关的代码和思路。

学习内容:

  1. cross-attention机制学习
  2. lstm与transformer

学习时间:

  • 6.26 ~ 7.1

学习笔记:

cross-attention机制学习

1.VALOR

在这里插入图片描述
在“Multimodal Decode”中:

首先self-attention层运用causal attention掩码防止信息泄露以及保持自回归推理过程的一致性,然后通过cross-attention层融合文本、视觉、音频这三种模态特征,在融合前沿时间维度将 F a 和 F v F_a和F_v FaFv压缩为两个维度,并通过线形层将这两个特征转换为相同的hidden size。

在代码中,self-attention的 q , k , v q,k,v q,k,v 均为hidden_states。

  def forward(self, hidden_states, attention_mask, use_cache=False, cache=None, cache_first=False, layer_num=0, cache_type='unimlm'):mixed_query_layer = self.query(hidden_states)   ### b,n,cmixed_key_layer = self.key(hidden_states)mixed_value_layer = self.value(hidden_states)query_layer = self.transpose_for_scores(mixed_query_layer) # b,h,n,ckey_layer = self.transpose_for_scores(mixed_key_layer)    # b,h,n,cvalue_layer = self.transpose_for_scores(mixed_value_layer) # b,h,n,c

cross-attention的 q q q 为hidden_states,但 k , v k,v k,v 为cross_hidden_states。而cross_hidden_states就是MGC得到的分组结果(T-V、T-A、T-AV),当不使用音频特征时,计算代码为:

elif video_feat is not  None and audio_feat is  None:attention_output, cache = self.cross_attn(attention_output, None, video_feat)

hidden_states为self_attention的输出,而self_attention的输出是由输入的token序列得到的,cross_hidden_states为video_feat:

elif video_feat is not  None and audio_feat is  None:attention_output, cache = self.cross_attn(attention_output, None, video_feat)

因此,在Bert模型里是对text_feat和video_feat做了交叉注意力计算。

在HMN里没有能够直接与video_feat维度匹配的语义信息,而且在bert里输入序列经过mask操作替换和修改了一些内容。

lstm 与 transformer

在这里插入图片描述
HMN里只在entity module里使用了transformer,而predicate module、sentence module以及最后的description generator都使用的是lstm,可以考虑将lstm替换为transformer,然后在transformer里使用cross-attn计算entity_feat、action_feat、video_feat之间的交叉注意力分数,但需要设计相应的mask、padding_mask,还要再深入研究一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5467.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ModaHub AI模型开源社区——向量数据库Milvus存储操作教程

目录 存储操作 数据插入 数据落盘 定时触发 客户端触发 缓冲区达到上限触发 数据合并 建立索引 删除 删除集合 删除分区 删除实体 数据段整理 数据读取 常见问题 存储操作 阅读本文前,请先阅读 存储相关概念。 数据插入 客户端通过调用 insert 接…

多通道分离与合并

1、分离 2、合并 Mat img imread("F:/testMap/plan.png");Mat imgs[3];split(img,imgs);//分离Mat img0,img1,img2;img0 imgs[0];img1 imgs[1]; img2 imgs[2];Mat img_H;merge(imgs,3,img_H);//合并vector<Mat> imgsV; imgsV.push_back(img0);imgsV.push_b…

git常用命令之分支操作

3. 分支 3.1 创建分支 场景1&#xff1a;创建新分支 工作中遇到的使用方式&#xff1a;1.拉取新分支&#xff0c;2.做新需求 /修复BUG &#xff0c;3.基于新分支提PR到目标分支 命令作用延展阅读git branch test11. 基于当前分支最新提交新建分支 test1(但不会切换到test1分…

Bootstrap 按钮

文章目录 Bootstrap 按钮按钮大小按钮状态激活状态禁用状态 按钮标签 Bootstrap 按钮 本章将通过实例讲解如何使用 Bootstrap 按钮。任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观。但是 Bootstrap 提供了一些选项来定义按钮的样式&#xff0c;具体如下表所示&…

Redis - Redis GEO实现经纬度测算距离,附近搜索范围

Redis GEO 主要用于存储地理位置信息&#xff0c;并对存储的信息进行操作&#xff0c;该功能在 Redis 3.2 版本新增 一、Redis GEO 操作方法 geoadd&#xff1a;添加地理位置的坐标 geopos&#xff1a;获取地理位置的坐标 geodist&#xff1a;计算两个位置之间的距离 geor…

【ArcGIS Pro二次开发】(43):线闭合

当我们需要将多段线【polyline】转为面【polygon】的时候&#xff0c;必须保证线是闭合的&#xff0c;不然是无法生成面的&#xff0c;如下图&#xff1a; 如果cad线段&#xff0c;可以在属性里将闭合选项设置为是&#xff0c;实现线的闭合&#xff1a; 但如果是在ArcGIS Pro里…

C++【初识哈希】

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f383;操作环境&#xff1a; Visual Studio 2019 版本 16.11.17 文章目录 &#x1f307;前言&#x1f3d9;️正文1、哈希思想2、哈希函数2.1、哈希函数的设计原则2.2、常见的哈希函数 3、哈希…

云原生——什么是云原生?

❄️作者介绍&#xff1a;奇妙的大歪❄️ &#x1f380;个人名言&#xff1a;但行前路&#xff0c;不负韶华&#xff01;&#x1f380; &#x1f43d;个人简介&#xff1a;云计算网络运维专业人员&#x1f43d; 前言 伴随云计算的滚滚浪潮&#xff0c;云原生(CloudNative…

kubernetes核心概念 controller

kubernetes核心概念 Controller 一、pod控制器controller 1.1 Controller作用及分类 controller用于控制pod 参考: https://kubernetes.io/zh/docs/concepts/workloads/controllers/ 控制器主要分为: Deployments 部署无状态应用&#xff0c;控制pod升级,回退ReplicaSet 副…

ROS自带OpenCV和本地OpenCV版本冲突问题解决

1、报错信息 首先catkin_make编译功能包没有任何问题&#xff0c;100%生成目标文件&#xff0c;但是报了警告&#xff1a;库文件libmyslam.so需要的是libopencv_core.so.3.4&#xff0c;可能会与libopencv_core.so.3.2冲突。根据工程经验&#xff0c;警告不用管&#xff0c;直…

从浏览器输入url到页面加载(六)前端必须了解的路由器和光纤小知识

前言 上一章我们说到了数据包在网线中的故事&#xff0c;说到了双绞线&#xff0c;还说到了麻花。这一章继续沿着这条线路往下走&#xff0c;说一些和cdn以及路由器相关&#xff0c;运营商以及光纤相关的小知识&#xff0c;前端同学应该了解一下的 目录 前言 1. CDN和路由器…

Vue中watch与computed区别

<body><div id"root">姓&#xff1a;<input type"text" v-model"firstName"><br/><br/>名&#xff1a;<input type"text" v-model"lastName"><br/><br/>全名&#xff1a;&…