torch.flatten()
参考
torch.flatten() - 云+社区 - 腾讯云
先看函数参数:
torch.flatten(input, start_dim=0, end_dim=-1)
input: 一个 tensor,即要被“推平”的 tensor。
start_dim: “推平”的起始维度。
end_dim: “推平”的结束维度。
首先如果按照 start_dim 和 end_dim 的默认值,那么这个函数会把 input 推平成一个 shape 为 [n][n] 的tensor,其中 nn 即 input 中元素个数。
如果我们要自己设定起始维度和结束维度呢?
我们要先来看一下 tensor 中的 shape 是怎么样的:
t = torch.tensor([[[1, 2, 2, 1],[3, 4, 4, 3],[1, 2, 3, 4]],[[5, 6, 6, 5],[7, 8, 8, 7],[5, 6, 7, 8]]])
print(t, t.shape)运行结果:tensor([[[1, 2, 2, 1],[3, 4, 4, 3],[1, 2, 3, 4]],[[5, 6, 6, 5],[7, 8, 8, 7],[5, 6, 7, 8]]])
torch.Size([2, 3, 4])
我们可以看到,最外层的方括号内含两个元素,因此 shape 的第一个值是 2;类似地,第二层方括号里面含三个元素,shape 的第二个值就是 3;最内层方括号里含四个元素,shape 的第二个值就是 4。
示例代码:
x = torch.flatten(t, start_dim=1)
print(x, x.shape)y = torch.flatten(t, start_dim=0, end_dim=1)
print(y, y.shape)运行结果:tensor([[1, 2, 2, 1, 3, 4, 4, 3, 1, 2, 3, 4],[5, 6, 6, 5, 7, 8, 8, 7, 5, 6, 7, 8]])
torch.Size([2, 12])tensor([[1, 2, 2, 1],[3, 4, 4, 3],[1, 2, 3, 4],[5, 6, 6, 5],[7, 8, 8, 7],[5, 6, 7, 8]])
torch.Size([6, 4])
可以看到,当 start_dim = 11 而 end_dim = −1−1 时,它把第 11 个维度到最后一个维度全部推平合并了。而当 start_dim = 00 而 end_dim = 11 时,它把第 00 个维度到第 11 个维度全部推平合并了。pytorch中的 torch.nn.Flatten 类和 torch.Tensor.flatten 方法其实都是基于上面的 torch.flatten 函数实现的。
torch.flatten()相关推荐
- torch.flatten()函数
1)flatten(x,1)是按照x的第1个维度拼接(按照列来拼接,横向拼接): 2)flatten(x,0)是按照x的第0个维度拼接(按照行来拼接,纵向拼接): 3)有时候会遇到flatten里面有 ...
- PyTorch基础(15)-- torch.flatten()方法
前言 最近在复现论文中一个块的时候需要使用到torch.flatten()这个方法,这个方法其实很简单,但其中有一些细节可能需要注意,且有个关键点很容易忘记,故在此记录以备查阅. 方法解析 flatt ...
- torch.flatten与torch.nn.flatten
torch.nn.flatten torch.nn.flatten是一个类,作用为将连续的几个维度展平成一个tensor(将一些维度合并) 参数为合并开始的维度,合并结束的维度(维度就是索引,从 0 ...
- 【PyTorch】 torch.flatten()与nn.Flatten()的区别
问题 torch.flatten()与nn.Flatten()都可以实现展开Tensor,那么二者的区别是什么呢? 方法 经过查阅相关资料,发现二者主要区别有: (1) 默认的dim不同,torch. ...
- torch.flatten作用是什么
torch.flatten作用是什么 解释 例子 解释 torch.flatten 作用是改变张量的维度和维数,从指定的维度开始将后面维度的维数全部展成一个维度,新的维数就是被展开的所有维度的维数的乘 ...
- tensor.view()、torch.flatten()
一.tensor.view() view()函数不改变原始数据. 例: import torchdata = torch.randn(2, 3, 3, 5, 5) #b,corps,c,h,w pri ...
- torch.flatten()函数详解
自己的理解: 介绍torch.flatten()函数的具体使用方法1.首先创建一个三维张量2.调用torch.flatten()函数 import torchx = torch.randn(2, 3, ...
- torch.flatten、np.flatten 详解
超链接:深度学习工作常用方法汇总,矩阵维度变化.图片.视频等操作,包含(torch.numpy.opencv等) B站视频讲解链接 1. 展平 :flatten torch版: x.flatten(n ...
- (超级详细)numpy与torch用法对比手册
文章目录 前言 生成类操作 采样类 数学运算操作 判断类(布尔类)操作 矩阵形状操作 其他操作 前言 由于numpy比较基础和通用,但是GPU上跑实验必须使用tensor,故还是直接用torch里面的 ...
最新文章
- SAP MM Reset预留单上的Deletion Flag?
- 【Spark Summit East 2017】Kerberizing Spark
- 高通 8x12 添加 TP和按键
- 3 - SQL Server 2008 之 使用SQL语句删除约束条件
- AngularJS快速入门简介
- air什么意思中文_Air 的中文意思是什么?
- 华为愿出售5G技术渴望对手;苹果将向印度投资10亿美元;华为全联接大会首发计算战略;腾讯自研轻量级物联网操作系统正式开源……...
- shell中判断远程主机的某个tcp端口是否存活
- Redis学习总结(22)——Redis的主从复制是如何做的?复制过程中也会产生各种问题?
- PHP7通过yum源安装及性能测试
- 从武则天的故事看职场生涯规划的一个最重要方面
- 台式计算机的无线上网卡多少线,台式电脑可以用无线上网卡上网吗
- 动态面板数据模型及Eviews实现
- html鼠标悬停边框颜色,CSS实现鼠标悬停图片时的边框变色效果
- php中拼音转汉字,php 汉字拼音如何转换
- 解决win10笔记本电脑无法睡眠只是黑屏问题的方法
- 今日头条内推码URQVEYM社招,校招,实习应有尽有
- 王译潇20162314 实验报告四
- 软考证书的含金量有多高?
- Self Service Password部署
热门文章
- 空气质量模型学习笔记 ① -----(模型基本介绍)
- 网吧服务器用户锁怎么办,如何进行网吧安全模式的锁定与解除
- Java中有哪几种常见的设计模式
- 软件工程一位大三学生成功上大学的案例
- 《奇点来临》——Linked-In上“奇点临近”论坛的观点
- 先进后出的数据结构-栈 一
- java全栈系列之JavaSE-稀释数组029
- semi-colon expectedcss(css-semicolonexpected)报错解决
- 【opencv-c++】cv::inRange阈值操作选择指定值范围的像素
- 数据库逻辑设计之 三大范式 及 反范式化 优缺点