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

相关推荐
ZC跨境爬虫32 分钟前
极验滑动验证码自动化实战(ddddocr免费方案):本地缺口识别与Playwright滑动模拟
前端·爬虫·python·自动化
AI医影跨模态组学1 小时前
Adv Sci 复旦大学附属中山医院宋志坚&复旦大学上海肿瘤医院黄丹等团队:基于基础模型的多模态深度学习用于结直肠癌不完整模态的预后预测
人工智能·深度学习·论文·医学·医学影像
ZhiqianXia1 小时前
PyTorch学习笔记(6) : torch.autograd
pytorch·笔记·学习
重生之我要成为代码大佬1 小时前
神经网络基础
人工智能·深度学习·神经网络
单片机学习之路1 小时前
【Python】输入print函数
开发语言·前端·python
后藤十八里1 小时前
极验4消消乐验证码逆向笔记
笔记·爬虫·python
李昊哲小课1 小时前
Python办公自动化教程 - 第1章 openpyxl基础入门 - 第一次用代码操控Excel
开发语言·python·excel·openpyxl
我的Doraemon1 小时前
大模型是怎么被训练出来的?
人工智能·深度学习·机器学习
智算菩萨1 小时前
【Python图像处理】4 NumPy数组操作与图像矩阵运算
图像处理·python·numpy
SomeB1oody1 小时前
【Python深度学习】1.1. 多层感知器MLP(人工神经网络)介绍
开发语言·人工智能·python·深度学习·机器学习