Python torch.flatten()函数案例详解


Posted in Python onAugust 30, 2021

先看函数参数:

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 函数实现的。

到此这篇关于Python torch.flatten()函数案例详解的文章就介绍到这了,更多相关Python torch.flatten()函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现搜索本地文件信息写入文件的方法
Feb 22 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
python交互式图形编程实例(二)
Nov 17 Python
python 字符串只保留汉字的方法
Nov 16 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
Python设计模式之解释器模式原理与用法实例分析
Jan 10 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
python tkinter组件摆放方式详解
Sep 16 Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
python基础之匿名函数详解
Apr 21 Python
python图像处理 PIL Image操作实例
Apr 09 Python
Python之基础函数案例详解
Aug 30 #Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 #Python
python使用matplotlib绘制图片时x轴的刻度处理
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 30 #Python
OpenCV绘制圆端矩形的示例代码
Aug 30 #Python
python中super()函数的理解与基本使用
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 #Python
You might like
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
javascript 全角转换实现代码
2009/07/17 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python实现得到一个给定类的虚函数
2014/09/28 Python
python实现简易动态时钟
2018/11/19 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
战友聚会邀请函
2014/01/18 职场文书
消防器材管理制度
2014/01/28 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
教师工作失职检讨书
2014/09/18 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
金秋助学感谢信
2015/01/21 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
文书工作总结(范文)
2019/07/11 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers