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

AIGC笔记--条件自回归Transformer的搭建

1--概述

        1. 自回归 TransFormer 规定Token只能看到自身及前面的Token,因此需生成一个符合规定的Attention Mask;(代码提供了两种方式自回归Attention Mask的定义方式);

        2. 使用Cross Attention实现条件模态和输入模态之间的模态融合,输入模态作为Query,条件模态作为Key和Value;

2--代码

import torch
import torch.nn as nnclass CrossAttention(nn.Module):def __init__(self, embed_dim: int, num_heads: int):super().__init__()self.cross_attn = nn.MultiheadAttention(embed_dim, num_heads)def forward(self, input_x: torch.Tensor, condition: torch.Tensor, attn_mask: torch.Tensor = None):'''query: input_xkey: conditionval: condition'''input_x = self.cross_attn(input_x, condition, condition, attn_mask=attn_mask)[0]return input_xclass Cond_Autoregressive_layer(nn.Module):def __init__(self, input_dim: int, condtion_dim: int, embed_dim: int, num_heads: int):super(Cond_Autoregressive_layer, self).__init__()self.linear1 = nn.Linear(input_dim, embed_dim)self.linear2 = nn.Linear(condtion_dim, embed_dim)self.cond_multihead_attn = CrossAttention(embed_dim = embed_dim, num_heads = num_heads)def forward(self, input_x: torch.Tensor, conditon: torch.Tensor, attention_mask1: torch.Tensor, attention_mask2: torch.Tensor):# q, k, v, attention mask, here we set key and value are both condtion y1 = self.cond_multihead_attn(self.linear1(input_x), self.linear2(conditon), attn_mask = attention_mask1)y2 = self.cond_multihead_attn(self.linear1(input_x), self.linear2(conditon), attn_mask = attention_mask2)return y1, y2if __name__ == "__main__":# set sequence len, embedding dim, multi attention headseq_length = 10input_dim = 32condtion_dim = 128embed_dim = 64num_heads = 8# init input sequence and condtioninput_x = torch.randn(seq_length, 1, input_dim)condtion = torch.randn(seq_length, 1, condtion_dim)# create two attention mask (actually they have the same function)attention_mask1 = torch.triu((torch.ones((seq_length, seq_length)) == 1), diagonal=1) # bool typeattention_mask2 = attention_mask1.float() # True->1 False->0attention_mask2 = attention_mask2.masked_fill(attention_mask2 == 1, float("-inf"))  # Convert ones to -inf# init modelAG_layer = Cond_Autoregressive_layer(input_dim, condtion_dim, embed_dim, num_heads)# forwardy1, y2 = AG_layer(input_x, condtion, attention_mask1, attention_mask2)# here we demonstrate the attention_mask1 and attention_mask2 have the same functionassert(y1[0].equal(y2[0]))

相关文章:

AIGC笔记--条件自回归Transformer的搭建

1--概述 1. 自回归 TransFormer 规定Token只能看到自身及前面的Token,因此需生成一个符合规定的Attention Mask;(代码提供了两种方式自回归Attention Mask的定义方式); 2. 使用Cross Attention实现条件模态和输入模态之…...

数据结构->链表分类与oj(题),带你提升代码好感

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 1.🍎链表的分类 前面我们学过顺序表,顺序表问题: …...

unity-unity2d基础操作笔记(三)0.5.000

目标是:牢记以下137条操作,越级上升到中级阶段 unity-unity2d基础操作笔记(三) 一百零一、如何操作一个游戏物体由多个部分组成的动画一百零二、如何使用rigidbody 2d进行物体移动一百零三、获取游戏物体身上的组件方法一百零四、代码控制物体朝向一百零五、不使用插件,纯…...

【精华】AIGC启元2024

文章目录 AIGC 前沿(1) Gemini 1.5 Pro(2) Sora(3) EMO(4) Playground v2.5(5) VSP-LLM(6) Ideogram.ai(7) LTX studio AIGC 前沿 (1) Gemini 1.5 Pro 2024.02.16 谷歌新一代多模态大模型Gemini 1.5 Pro,在性能上超越OpenAI的GPT-4 Turbo,堪称业界最强…...

js对象解构语法

对象解构语法是一种 JavaScript 的语法特性,用于从对象中提取属性,并将这些属性值赋值给变量。 基本语法 const { property1, property2 } object;object 是要解构的对象。property1 和 property2 是对象中的属性名,用花括号 {} 包裹起来表…...

flowable使用taskService.addComment新增评论需要full_msg字段进行读取

背景 在构建创业项目JeecgFlow过程中,在调用taskService.addComment接口出现了异常。就是数据存储的Message信息出现了截取,也就是存储不完整。 效果如下. flowable版本6.7.2 问题排查 接口详解及问题代码 //新增评论的接口说明 Comment addComment(…...

java常用技术栈,java面试带答案

前言 我们从一个问题引入今天的主题。 在日常业务开发中,我们可能经常听到 DBA 对我们说“不要”(注意:不是禁止)使用 join,那么为什么 DBA 对 join 这么抵触呢?是 join 本身有问题,还是我们使…...

刷题第11天

代码随想录刷题第11天 | 二叉树前中后序遍历 前序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x…...

QML中动态增加表格数据

1.QML中的表格实现 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableModel{id:table_modelTabl…...

OBS插件开发(二)推流实时曲线

不发视频了,截个图算了,嫌麻烦 1,自定义QWidget图表绘制 ,动态更新 2,OBS直播帧率,码率监控 3,主要用于前端推流状况可视化,异常报警,及时性,无人值守直播...

Linux编程3.3 进程-进程的终止

1、正常终止 从main函数返回调用exit(标准C库函数)调用_exti或_Exit(系统调用)最后一个线程从其启动例程返回最后一个线程调用 pthread exit 2、异常终止 调用abort接受到一个信号并终止最后一个线程对取消请求做处理响应 3、进程返回 通常程序运行…...

排序(3)——直接选择排序

目录 直接选择排序 基本思想 整体思路(升序) 单趟 多趟 代码实现 特性总结 直接选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的…...

[LeetBook]【学习日记】数组内重组

题目:训练计划 I 训练计划 I 教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性,需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以数组形式返回。 示例 1: 输入:act…...

【Linux】磁盘情况、挂载,df -h无法看到的卷

文章目录 解决挂载、解决挂载完重启就消失1、查看linux下的硬盘挂载的空间、使用空间2、查看没有挂载的硬盘是否检测在系统中3、挂载 (挂载完,要在/etc/fstab 下面配置挂载信息 要不然重启挂载就消失了) 解决挂载、解决挂载完重启就消失 linu…...

AIOps实践中常见的挑战:故障根因与可观测性数据的割裂

运维的挑战与责任 在数字化时代,运维团队面临的挑战前所未有。他们不仅要确保系统的高可用性和高性能,还要快速响应并解决故障,以减少对业务的影响。在这种背景下,运维团队急需工具和技术,能够帮助他们提高效率&#…...

python 远程代码第一次推送

conda windows 环境 conda 安装后 配置环境变量 运行 conda init; conda active base 创建虚拟环境 conda create -n my_venv python3.9.5 虚拟环境应用 file-->New project --> Existing interpreter ... -->Virtualenv environment-->interpreter ...--&g…...

C++开发基础之简单的计时器也有适配场景

一、前言 计时器的开发通常涉及到计算时间间隔的方法和计算时间的方式。一般计时器的开发步骤: 获取起始时间点:在开始计时时,记录当前的时间戳作为起始时间点。 获取结束时间点:在结束计时时,记录当前的时间戳作为结…...

数电学习笔记——逻辑函数及其描述方法

目录 一、逻辑函数 二、逻辑函数的描述方法 1、逻辑真值表 2、逻辑函数式 3、逻辑图 4、波形图 三、逻辑函数的两种标准形式 1、最小项与最大项 最小项 最小项的性质 最大项 最大项的性质 2、最大项与最小项的关系 3、逻辑函数的最小项之和形式 4、逻辑函数的最…...

2024年护眼台灯哪家品牌好?五款优质品牌专业推荐

护眼台灯几乎是每个孩子书桌上都会有的灯具,但还是有不少家长觉得是“智商税”。其实护眼台灯好处非常多,列如能够提供舒适的照明,缓解用眼疲劳,预防近视等等。所以今天准备了一期护眼台灯测评,并附上护眼台灯的榜单&a…...

搜索iconfont或者阿里图标就可以得到免费的图标

你在搜索过程中就会出现一些无耻,不要脸的网站,比如说下面这个 这个才是阿里图标 看它的网址 都是免费的...

Kandinsky-5.0-I2V-Lite-5s多场景应用:社交头像动效、PPT动态配图、电子相册生成

Kandinsky-5.0-I2V-Lite-5s多场景应用:社交头像动效、PPT动态配图、电子相册生成 1. 认识Kandinsky-5.0-I2V-Lite-5s Kandinsky-5.0-I2V-Lite-5s是一款轻量级图生视频模型,它能将静态图片转化为动态视频。你只需要上传一张首帧图片,再补充一…...

从三角函数到雷达滤波:三角窗的DSP实现与性能测试全记录

从三角函数到雷达滤波:三角窗的DSP实现与性能测试全记录 1. 三角窗的数学本质与信号处理价值 在数字信号处理领域,窗函数就像是一位精密的调音师,能够对原始信号进行细致的修饰和调整。三角窗作为其中最基础却又最富特色的成员之一&#xff0…...

Phi-4-mini-reasoning与IDEA集成开发:提升Java代码推理与注释生成效率

Phi-4-mini-reasoning与IDEA集成开发:提升Java代码推理与注释生成效率 1. 引言:当AI遇见Java开发 作为一名Java开发者,你是否经常遇到这样的困扰:接手一个复杂项目时,面对层层嵌套的代码逻辑感到无从下手&#xff1b…...

小型物联网系统——家居网关设计(C语言实现)

一、系统概述 家居网关是小型物联网系统的核心枢纽,负责多协议设备接入、数据汇聚转发、本地/远程控制三大核心功能。本设计基于STM32F103C8T6主控,集成Zigbee(传感器接入)、Wi-Fi(云端通信)、GPIO&#xf…...

Alibaba DASD-4B Thinking 对话工具在网络安全领域的应用:智能威胁分析与响应

Alibaba DASD-4B Thinking 对话工具在网络安全领域的应用:智能威胁分析与响应 每天,安全运维团队的工程师们都要面对海量的安全告警。防火墙日志、入侵检测系统的报警、终端防护软件的提示……这些信息像潮水一样涌来。传统的处理方式,往往依…...

文脉定序详细步骤:自定义prompt模板提升BGE-m3在垂直领域表现

文脉定序详细步骤:自定义prompt模板提升BGE-m3在垂直领域表现 1. 理解文脉定序与BGE-m3的核心价值 文脉定序是一款基于BGE-m3模型的智能语义重排序系统,专门解决传统搜索引擎"搜得到但排不准"的痛点。它通过全交叉注意机制,对问题…...

重构macOS鼠标体验:从痛点到解决方案的技术探索

重构macOS鼠标体验:从痛点到解决方案的技术探索 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 【问题发现:被忽视的交互…...

手把手教你编译运行openHiTLS社区的FrodoKEM源码(附完整环境配置)

从零构建FrodoKEM开发环境:openHiTLS社区源码实战指南 当量子计算机从理论走向现实,传统加密算法正面临前所未有的挑战。FrodoKEM作为后量子密码学领域的明星算法,以其坚实的数学基础和简洁的实现逻辑,成为开发者探索抗量子加密技…...

4G DTU选型指南:Cat1模块在智能水电表项目中的7个关键参数对比

4G DTU选型实战:Cat1模块在智能水电表项目中的7个工程化参数解析 水电表远程抄表系统正经历从2G向4G Cat1的技术迁移浪潮。作为工业现场的核心通信枢纽,DTU模块的选型直接关系到数据上报成功率、设备维护成本和系统生命周期。本文将基于某省级电网改造项…...

探索光的世界:Ray Optics Simulation 几何光学仿真平台深度解析

探索光的世界:Ray Optics Simulation 几何光学仿真平台深度解析 【免费下载链接】ray-optics A web app for creating and simulating 2D geometric optical scenes, with a gallery of (interactive) demos. 项目地址: https://gitcode.com/gh_mirrors/ra/ray-op…...