pytorch(3d、4d张量转换)

维度转换

import torch

from einops import rearrange

print(torch.cuda.is_available())

to_3d

把四维的张量转换为三维的张量,输入形状(b,c,h,w),输出形状(b,hw,c)

def to_3d(x):

return rearrange(x, 'b c h w -> b (h w) c')

to_4d

把三维的张量转换为四维的张量,输入形状(b,hw,c),输出形状(b,c,h,w)

def to_4d(x,h,w):

return rearrange(x, 'b (h w) c -> b c h w', h=h, w=w)

测试

if name == 'main':

创建一个四维张量

tensor_4d = torch.randn(2, 3, 4, 5) # 形状(批大小2, 通道数3, 高度4, 宽度5)

转换为三维张量

tensor_3d = to_3d(tensor_4d) # 形状(批大小2, 20, 3)

转换为四维张量

height, width = 4, 5

tensor_4d_back = to_4d(tensor_3d, height, width) # 形状(批大小2, 通道数3, 高度4, 宽度5)

print(tensor_4d.shape)

print(tensor_3d.shape) # 输出:torch.Size(2, 20, 3)

print(tensor_4d_back.shape) # 输出:torch.Size(2, 3, 4, 5)

相关推荐
paeamecium1 小时前
【PAT甲级真题】- Rational Sum (20)
数据结构·c++·python·算法·pat考试·pat
爱昏羔7 小时前
下篇:从检索到交互 — 物流RAG问答系统与WebUI全实现
python·langchain·agent
_Jimmy_8 小时前
Agent引用数据库知识过时的增量同步方案
人工智能·python·langchain
min(a,b)9 小时前
学习第 4 天:面向对象与异常处理
python·学习·学习方法
大鹏的NLP博客10 小时前
机器学习中的统计波动控制与表征几何优化原则:从函数稳定性到隐空间结构学习
人工智能·深度学习·机器学习
yangshicong11 小时前
第19章:AI安全防护与AI安全
人工智能·python·安全·prompt·ai编程
果汁华11 小时前
Function Calling 与 Python 实战完整指南
开发语言·网络·python
c_lb728811 小时前
2026年不同基础做量化,先找AI能参与的位置
人工智能·python
chenment13 小时前
ComfyUI 自定义节点开发:从零扩展你的图像生成工作流
python·stable diffusion
IT空门:门主13 小时前
Python 基础语法学习路线图
网络·python·学习