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

相关推荐
API_Zevin10 分钟前
如何优化亚马逊广告以提高ROI?
大数据·开发语言·前端·后端·爬虫·python·学习
青松@FasterAI28 分钟前
【NLP高频面题 - 分布式训练篇】ZeRO主要为了解决什么问题?
人工智能·深度学习·自然语言处理·分布式训练·nlp面试
CodeClimb1 小时前
【华为OD-E卷 - 服务失效判断 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
CodeClimb1 小时前
【华为OD-E卷 - 九宫格按键输入 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
大霸王龙1 小时前
Python中使用PostgreSQL和Apache AGE扩展来绘制和显示图表
python·postgresql·apache
几两春秋梦_1 小时前
PINN求解偏微分方程
人工智能·pytorch·python
数据小小爬虫1 小时前
淘宝商品详情API返回值说明:Python爬虫代码示例
java·爬虫·python
重剑无锋10241 小时前
【《python爬虫入门教程11--重剑无峰168》】
开发语言·爬虫·python
大学生毕业题目2 小时前
毕业项目推荐:基于yolov8/yolov5的行人检测识别系统(python+卷积神经网络)
python·yolo·cnn
小王子10242 小时前
面向对象分析与设计Python版 面向对象的核心特征
python·面向对象·分析与设计