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 相关文章推荐
Tensorflow实现卷积神经网络的详细代码
May 24 Python
python实现黑客字幕雨效果
Jun 21 Python
对Django 中request.get和request.post的区别详解
Aug 12 Python
python列表推导式操作解析
Nov 26 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python实现excel公式格式化的示例代码
Dec 23 Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 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
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
jQuery 操作XML入门
2008/12/25 Javascript
JavaScript类库D
2010/10/24 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
Python队列的定义与使用方法示例
2017/06/24 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python分支结构(switch)操作简介
2018/01/17 Python
解读python logging模块的使用方法
2018/04/17 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
会计专业自荐信范文
2013/12/02 职场文书
购房委托书范本
2014/09/18 职场文书
小学国庆节活动总结
2015/03/23 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
JavaScript 反射学习技巧
2021/10/16 Javascript