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实现2048小游戏
Mar 30 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
详解python中init方法和随机数方法
Mar 13 Python
python中的协程深入理解
Jun 10 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
python中return如何写
Jun 18 Python
Django中使用Celery的方法步骤
Dec 07 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
Jan 05 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
PHP实现的购物车类实例
2015/06/17 PHP
PHP微信分享开发详解
2017/01/14 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
php实现文章评论系统
2019/02/18 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
Python如何转换字符串大小写
2020/06/04 Python
python使用smtplib模块发送邮件
2020/12/17 Python
python中if嵌套命令实例讲解
2021/02/25 Python
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
员工加薪申请报告
2015/05/15 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技