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最长公共子串算法实例
Mar 07 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
Python制作爬虫采集小说
Oct 25 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
Jun 11 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
python 求10个数的平均数实例
Dec 16 Python
python线程join方法原理解析
Feb 11 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
python Scrapy框架原理解析
Jan 04 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
python画条形图的具体代码
Apr 20 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
微信扫描二维码登录网站代码示例
2013/12/30 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript Event对象详解及使用示例
2013/11/22 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
python 默认参数问题的陷阱
2016/02/29 Python
浅谈Python 对象内存占用
2016/07/15 Python
python测试mysql写入性能完整实例
2018/01/18 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
python的pstuil模块使用方法总结
2019/07/26 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
工作表扬信的范文
2014/01/10 职场文书
学校创先争优活动总结
2014/08/28 职场文书
单位委托书怎么写
2014/09/21 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书