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搭建虚拟环境的步骤详解
Sep 27 Python
磁盘垃圾文件清理器python代码实现
Aug 24 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
Django框架 信号调度原理解析
Sep 04 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
pytorch数据预处理错误的解决
Feb 20 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
Feb 20 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Python工程师必考的6个经典面试题
Jun 28 Python
python实现npy格式文件转换为txt文件操作
Jul 01 Python
Python打印不合法的文件名
Jul 31 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
linux下 C语言对 php 扩展
2008/12/14 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
js实现表格字段排序
2014/02/19 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
JavaScript类的写法
2016/09/17 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
python类继承与子类实例初始化用法分析
2015/04/17 Python
python实现的发邮件功能示例
2019/09/11 Python
pandas DataFrame运算的实现
2020/06/14 Python
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
超市实习总结自我鉴定
2013/09/19 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
伦敦奥运会口号
2014/06/13 职场文书
迎七一演讲稿
2014/09/12 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书