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)

相关推荐
阿童木写作1 小时前
TikTok Shop视频翻译工具实战测评
人工智能·python·音视频
circuitsosk1 小时前
大模型驱动的AI产品后端架构设计与实践
人工智能·python
JackSparrow4141 小时前
前端安全之JS混淆+请求加密+请求签名以提升爬虫难度
前端·javascript·后端·爬虫·python·安全
软糖姐姐2 小时前
python eureka服务发现_python与consul 实现gRPC服务注册-发现
python·consul·grpc·服务注册·发现
听雨入夜2 小时前
zero.zhang
开发语言·python
叶 落3 小时前
Mac 通过 Miniconda 安装 Python
python·macos·conda·miniconda
就改了9 小时前
Java8 日期处理(详细版)
java·python·算法
威联通安全存储12 小时前
TS-h1887XU-RP在汽车发动机热试与NVH在线质检网中的部署
python·汽车
LaughingZhu13 小时前
Product Hunt 每日热榜 | 2026-07-30
人工智能·经验分享·深度学习·神经网络·产品运营
qq_3164110313 小时前
腹腔镜模拟手术训练数字化管理平台构建
人工智能·python·深度学习·机器学习