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

相关推荐
咕噜签名-铁蛋3 分钟前
英伟达旗下
python
皮肤科大白10 分钟前
图像处理的 Python库
图像处理·人工智能·python
一招定胜负17 分钟前
自然语言处理CBOW模型:基于上下文预测中间词
人工智能·深度学习·机器学习
FL162386312927 分钟前
基于yolo11实现的车辆实时交通流量进出统计与速度测量系统python源码+演示视频
开发语言·python·音视频
华如锦37 分钟前
四:从零搭建一个RAG
java·开发语言·人工智能·python·机器学习·spring cloud·计算机视觉
向阳蒲公英1 小时前
Pycharm2025版本配置Anaconda步骤
python
Darkershadow1 小时前
蓝牙学习之uuid与mac
python·学习·ble
北海有初拥1 小时前
Python基础语法万字详解
java·开发语言·python
汤姆yu1 小时前
基于深度学习的杂草检测系统
人工智能·深度学习
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-01-06
人工智能·经验分享·深度学习·神经网络·产品运营