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])

相关推荐
A先生的AI之旅1 分钟前
2025顶会TimeDRT快速解读
人工智能·pytorch·python·深度学习·机器学习
温柔只给梦中人3 分钟前
深度学习:正则化
人工智能·深度学习
狮子座明仔4 分钟前
DocDancer:北大联合腾讯提出端到端训练的文档问答Agent,将DocQA形式化为信息寻求过程
人工智能·深度学习·语言模型·自然语言处理
foundbug9995 分钟前
MATLAB中实现信号迭代解卷积功能
开发语言·深度学习·matlab
程序员小远9 分钟前
完整的项目测试方案流程
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
程序猿阿伟10 分钟前
《量子算法开发实战手册:Python全栈能力的落地指南》
python·算法·量子计算
雪风飞舞24 分钟前
python根据音频生成柱状图
开发语言·python·音视频
_小苔藓_27 分钟前
混合Token与LoRA结合Qwen3-VL高效微调(代码开源)
深度学习·开源·大模型·微调·多模态
学Linux的语莫29 分钟前
python开发知识点
python
Frdbio1 小时前
环腺苷酸(cAMP)ELISA检测试剂盒
linux·人工智能·python