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

相关推荐
Swizard3 小时前
别再让你的 Python 傻等了:三分钟带你通过 asyncio 实现性能起飞
python
过期的秋刀鱼!4 小时前
人工智能-深度学习-线性回归
人工智能·深度学习
IE064 小时前
深度学习系列84:使用kokoros生成tts语音
人工智能·深度学习
IE064 小时前
深度学习系列83:使用outetts
人工智能·深度学习
Darkershadow4 小时前
python学习之串口通信
python·学习
3824278275 小时前
python:输出JSON
前端·python·json
也许是_6 小时前
大模型应用技术之 详解 MCP 原理
人工智能·python
沙漠豪6 小时前
提取PDF发票信息的Python脚本
开发语言·python·pdf
亚里随笔6 小时前
突破性框架TRAPO:统一监督微调与强化学习的新范式,显著提升大语言模型推理能力
人工智能·深度学习·机器学习·语言模型·llm·rlhf