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

相关推荐
观音山保我别报错8 小时前
列表,元组,字典
开发语言·python
小付爱coding8 小时前
Claude Code安装教程【windows版本】
java·git·python
高频交易dragon9 小时前
5分钟和30分钟联立进行缠论信号分析
开发语言·python
0思必得09 小时前
[Web自动化] 开发者工具应用(Application)面板
运维·前端·python·自动化·web自动化·开发者工具
我是华为OD~HR~栗栗呀9 小时前
华为OD-C面经-23届学院哦
java·c++·python·华为od·华为·面试
xiaozi41209 小时前
Ruey S. Tsay《时间序列分析》Python实现笔记:综合与应用
开发语言·笔记·python·机器学习
Aspect of twilight9 小时前
PyTorch DDP分布式训练Pytorch代码讲解
人工智能·pytorch·python
@游子9 小时前
Python学习笔记-Day5
笔记·python·学习
棒棒的皮皮9 小时前
【OpenCV】Python图像处理之数字水印
图像处理·python·opencv·计算机视觉
tomeasure9 小时前
INTERNAL ASSERT FAILED at “/pytorch/c10/cuda/CUDACachingAllocator.cpp“:983
人工智能·pytorch·python·nvidia