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

相关推荐
RanMatrix7 分钟前
python-logging模块
python
e***749515 分钟前
Redis——使用 python 操作 redis 之从 hmse 迁移到 hset
数据库·redis·python
Ace_317508877621 分钟前
京东商品详情接口终极突破:从多接口联动解析到数据全息重构
python·重构
昨日之日200623 分钟前
InfiniteTalk V2版 - 声音驱动图片生成高度逼真的说话/唱歌视频 支持50系显卡 ComfyUI+WebUI 一键整合包下载
人工智能·深度学习·音视频
汗流浃背了吧,老弟!30 分钟前
Langchian检索YouTube视频字幕
python·音视频
励志前端小黑哥41 分钟前
uv包管理器--python也有自己的pnpm了
开发语言·python·uv
2501_941112071 小时前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python
2501_941112051 小时前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
小兵张健1 小时前
Java + Spring 到 Python + FastAPI (三)
python·spring·fastapi
阿龍17871 小时前
媒体文件问题检测脚本(一)(python+ffmpeg)
开发语言·python