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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
python求解水仙花数的方法
May 11 Python
使用Python写个小监控
Jan 27 Python
详解python3中的真值测试
Aug 13 Python
python3 爬取图片的实例代码
Nov 06 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
python如何控制进程或者线程的个数
Oct 16 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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实现文件上传二法
2006/10/09 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
PHP 表单提交给自己
2008/07/24 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
Python实现大文件排序的方法
2015/07/10 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
简单谈谈python基本数据类型
2018/09/26 Python
python 标准差计算的实现(std)
2019/07/29 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
详解Python实现进度条的4种方式
2020/01/15 Python
Python通过文本和图片生成词云图
2020/05/21 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
化妆师职业生涯规划书
2014/02/16 职场文书
农民工讨薪标语
2014/06/26 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
2015年教师节感言
2015/08/03 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL