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发腾讯微博代码分享
Jan 10 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
简单谈谈python中的lambda表达式
Jan 19 Python
使用Python读取二进制文件的实例讲解
Jul 09 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
python多线程下信号处理程序示例
May 31 Python
Python实现变声器功能(萝莉音御姐音)
Dec 05 Python
Python concurrent.futures模块使用实例
Dec 24 Python
python查询MySQL将数据写入Excel
Oct 29 Python
详解Python生成器和基于生成器的协程
Jun 03 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中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
php实现cookie加密的方法
2015/03/10 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
js调用flash的效果代码
2008/04/26 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
Python中文件的读取和写入操作
2018/04/27 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
django-filter和普通查询的例子
2019/08/12 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
计算机操作自荐信
2013/12/07 职场文书
年度考核评语
2014/01/19 职场文书
精彩的英文自荐信
2014/01/30 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
小学生优秀评语大全
2014/04/22 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
勤俭节约主题班会
2015/08/13 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
python文件目录操作之os模块
2021/05/08 Python