当前位置: 首页 > news >正文

深度学习中特征(tensor)维度转换

深度学习中使用其他模块或者通道调整时常常需要维度转换,比如三维转四维或者四维转三维,下面用代码示例转换过程。

四维转三维 BCHW->BCN

import torch

x = torch.randn(8, 3, 32, 32) #BCN
print(x.shape)

b, c, h, w = x.size()
out = x.view(b, h*w, c)
print(out.shape)

'''
torch.Size([8, 3, 32, 32])
torch.Size([8, 1024, 3])
'''

核心方法是view函数,根据输入参数自动调整通道中的特征信息。

三维转四维 BCN->BCH*W

import torch

x = torch.randn(8, 3, 1024) #BCN
print(x.shape)

b, c, n = x.size()
h = 32
w = 32
out = x.view(-1, h, w, c)
print(out.shape)
out = x.view(b, h, w, c)
print(out.shape)
'''
torch.Size([8, 3, 1024])
torch.Size([8, 32, 32, 3])
torch.Size([8, 32, 32, 3])
'''

view中参数取-1会自动调整数值大小,如果手动设定,则要保证数值大小对应。

相关文章:

  • 数据链路层简单介绍
  • 阿里云数据库 SelectDB 版全面商业化,开启现代化实时数据仓库的全新篇章
  • 向郭老师学习研发项目管理
  • 赶紧收藏!2024 年最常见 20道 Redis面试题(三)
  • 文件搜索相关命令
  • 5.23小结
  • 老题重测,国产AI大模型从“智障”走向“智能”?
  • JS对象超细
  • 基于springboot+vue的学生考勤管理系统
  • LP-MSPM03507学习资料汇总
  • 2024年5月23号PMP每日三题含答案
  • 关于如何创建一个可配置的 SpringBoot Web 项目的全局异常处理
  • 创建vue工程、Vue项目的目录结构、Vue项目-启动、API风格
  • QComboBox
  • 专题汇编 | ChatGPT引领AIGC新浪潮(一)
  • React Query
  • Codeforces Round 821 (Div. 2) C. Parity Shuffle Sorting (构造之全变成一样的)
  • Python 全栈体系【四阶】(五十二)
  • 15:00面试,15:08就出来了,问的问题有点变态。。。
  • C#--SVG矢量图画法示例
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读