pytorch张量分块投影示例代码

devtools/2025/1/16 15:28:00/

张量的投影操作

背景

张量投影 是深度学习中常见的操作,将输入张量通过线性变换映射到另一个空间。例如:
Y=W⋅X+b
其中:

  • X: 输入张量(形状可能为 (B,M,K),即批量维度、序列维度、特征维度)。
  • W: 权重矩阵((K,N),将 K 维投影到 N 维)。
  • b: 偏置向量(可选,(N,))。
  • Y: 输出张量(形状 (B,M,N))。

对于巨大张量 XX,直接计算 W⋅XW⋅X 可能会因为显存不足导致 OOM(Out of Memory)。因此,分块操作是一种有效的解决方案。


分块投影的操作方法

原理

将输入张量 X 沿着某个维度(通常是 序列维度 M 或 批量维度 B)分成多个小块,分别进行线性变换,再将结果拼接起来。

具体步骤
  1. 定义分块大小

    • 根据显存限制和硬件特性,确定每次可以处理的块大小(chunk_size)。
  2. 迭代计算

    • 将输入张量 X 按 序列维度 M(或其他维度)进行切片。
    • 对每个切片分别进行线性投影操作。
    • 将每次的结果存储起来,最后拼接成完整输出。

分块投影计算函数代码:

import torchdef block_projection(X, W, b=None, chunk_size=64):"""Perform block-wise tensor projection.Args:X: Input tensor of shape (B, M, K)W: Weight matrix of shape (K, N)b: Bias vector of shape (N,) or Nonechunk_size: Size of each block along the M dimensionReturns:Y: Output tensor of shape (B, M, N)"""B, M, K = X.shape

http://www.ppmy.cn/devtools/150987.html

相关文章

硬件实用技巧:TPS54331DR横杠标识识别1引脚

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/145116969 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

Zookeeper(1)什么是Zookeeper?

Zookeeper 是一个分布式协调服务,主要用于分布式应用中的协调工作。它提供了分布式应用所需的一些基础服务,如配置管理、命名服务、分布式同步、组服务等。Zookeeper 通过其简单且高效的原语(如节点、会话、观察者等)实现了这些功…

G1原理—G1的GC日志分析解读

1.TLAB的GC日志解读 (1)一套基本的参数设置 首先参数上要有一套基本的设置: -XX:InitialHeapSize128M -XX:MaxHeapSize128M -XX:UseG1GC -XX:PrintGCDetails -XX:PrintGCTimeStamps -XX:PrintTLAB -XX:UnlockExperimentalVMOptions -XX:G1LogLevelfinest -XX:MaxGCP…

GaussDB分布式数据倾斜处理

常规数据倾斜巡检 在库中表个数少于1W的场景,直接使用倾斜视图查询当前库内所有表的数据倾斜情况 SELECT * FROM pgxc_get_table_skewness ORDER BY totalsize DESC;在库中表个数非常多(至少大于1W)的场景,因PGXC_GET_TABLE_SKEWN…

[Qt] 窗口 | 菜单栏MenuBar

目录 QMainWindow 概述 一、菜单栏 1、创建菜单栏 2、在菜单栏中添加菜单 3、创建菜单项 4、在菜单项之间添加分割线 5、添加快捷键 6、添加子菜单 7、添加图标 综合示例 QMainWindow 概述 Qt 窗口是通过 QMainWindow 类来实现的。 QMainWindow 是一个为用户 提供主…

Ubuntu 的内置字体中哪些字体支持中文

Ubuntu 的内置字体中,部分字体是支持中文的,但默认配置可能不完整或显示效果不佳。以下是 Ubuntu 内置支持中文的字体以及如何增强对中文的支持: Ubuntu 内置支持中文的字体 Noto Fonts(推荐) 字体名称:Not…

如何从本地计算机连接至远程服务器上的 Jupyter Notebook

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

js:正则表达式

目录 正则表达式的语法 定义 检测 检索 元字符 边界符 量词 字符类 表单判断案例 修饰符 过滤敏感词 正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本字符组合模式 正则表达式是一…