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

相关推荐
龙文浩_15 小时前
AI深度学习神经网络的结构设计与激活机制
人工智能·深度学习·神经网络
Pushkin.15 小时前
LLM预训练完全指南:从理论到NanoQwen实战
人工智能·深度学习·机器学习
机器学习之心15 小时前
CEEMDAN-VMD-Transformer-GRU二次分解+编码器+门控循环单元多元时间序列预测
深度学习·gru·transformer·门控循环单元·编码器·二次分解
wd5i8kA8i15 小时前
Transformer 与模型架构原理
人工智能·深度学习·transformer
带娃的IT创业者15 小时前
NCT 是什么——让 AI 拥有意识的尝试
人工智能·深度学习·神经网络·科普·技术分享·ai架构·nct
ZC跨境爬虫16 小时前
免费验证码识别:用ddddocr实现Playwright自动化登录
爬虫·python·自动化
数据知道16 小时前
claw-code 源码详细分析:子系统目录地图——几十个顶层包如何用五条轴(会话 / 工具 / 扩展 / 入口 / 桥接)读懂?
服务器·python·ai·claude code
cxr82816 小时前
GPU 加速声场求解器 - 深度扩展
人工智能·python
zaim116 小时前
计算机的错误计算(二百二十六)
java·python·c#·c·错数·mpmath
EmmaXLZHONG16 小时前
Django By Example - 学习笔记
笔记·python·学习·django