python中flatten()参数示例详解

作者:皮皮宽 时间:2022-07-03 11:19:57 

这篇博客主要写flatten()作用,及其参数的含义

  • flatten()是对多维数据的降维函数。

  • flatten(),默认缺省参数为0,也就是说flatten()和flatte(0)效果一样。

  • python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的维度,其他维度的数据全都挤在dim这一维。

  • 比如一个数据的维度是( S 0 , S 1 , S 2......... , S n ) , flatten(m)后的数据为( S 0 , S 1 , S 2 , . . . , S m − 2 , S m − 1 , S m ∗ S m + 1 ∗ S m + 2 ∗ . . . ∗ S n ) 

  • 下面我们举个例子来理解一下flatten

比如我们随机定义一个维度为(2,3,4)的数据a

import torch
a = torch.rand(2,3,4)

a输出结果为:

python中flatten()参数示例详解

a此时的维度为(2,3,4)

flatten()和flatten(0)效果一样,a这个数据从0维展开,就是( 2 ∗ 3 ∗ 4 2*3*4 2∗3∗4),维度就是(24)

b = a.flatten()
c = a.flatten(0)

b,c的结果如图:

python中flatten()参数示例详解

b,c相等,维度均为 ( 2 ∗ 3 ∗ 4 ) (2*3*4) (2∗3∗4)也就是(24)

a从1维展开flatten(1),就是 ( 2 , 3 ∗ 4 ) (2,3*4) (2,3∗4),也就是(2,12).

d = a.flatten(1)

d的结果如图所示:

python中flatten()参数示例详解

a从一维展开后的数据d的维度为 ( 2 , 3 ∗ 4 ) (2,3*4) (2,3∗4)也就是(2,12)

a若是从2维展开flatten(2),那就是(2,3,4)和之前没有变化

e = a.flatten(2)

e的结果如图所示:

python中flatten()参数示例详解

e从二维展开后的数据d的维度为 ( 2 , 3 , 4 ) (2,3,4) (2,3,4)

总结

  • python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的维度,其他维度的数据全都挤在dim这一维。

  • 比如一个数据的维度是( S 0 , S 1 , S 2 , S 3......... , S n ) (S0,S1,S2,S3.........,Sn)(S0,S1,S2,S3.........,Sn), flatten(m)后的数据为( S 0 , S 1 , S 2 , S 3 , . . . , S m − 2 , S m − 1 , S m ∗ S m + 1 ∗ S m + 2 ∗ . . . ∗ S n ) (S0, S1,S2,S3,...,Sm-2,Sm-1,Sm*Sm+1*Sm+2*...*Sn)(S0,S1,S2,S3,...,Sm−2,Sm−1,Sm∗Sm+1∗Sm+2∗...∗Sn)

来源:https://blog.csdn.net/kuan__/article/details/116987162

标签:python,flatten(),参数
0
投稿

猜你喜欢

  • 细化解析:SQL Server数据库的集群设计

    2009-02-05 15:59:00
  • Python基础之tkinter图形化界面学习

    2023-09-03 00:47:06
  • python实现人机对战的五子棋游戏

    2021-07-05 04:36:03
  • python数据预处理 :样本分布不均的解决(过采样和欠采样)

    2023-08-10 07:03:14
  • Python序列化模块JSON与Pickle

    2022-11-06 00:24:37
  • ASP连接SQL2005数据库连接代码

    2011-03-25 10:44:00
  • 【MongoDB for Java】Java操作MongoDB数据库

    2023-07-14 01:10:43
  • django实现支付宝支付实例讲解

    2023-08-27 04:45:44
  • 解决pytorch 的state_dict()拷贝问题

    2022-10-05 22:03:57
  • 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)

    2022-08-18 14:01:35
  • ASP批量生成静态页面的写法(批量生成技巧iframe)

    2011-02-24 11:01:00
  • Python如何获取pid和进程名字

    2023-11-11 11:44:11
  • 什么是python类属性

    2021-07-31 20:27:16
  • 推荐9款很棒的网页绘制图表JavaScript框架脚本

    2009-04-15 12:13:00
  • 5个css布局的常见问题及解决方法

    2009-11-19 13:21:00
  • 利用Django内置的认证视图实现用户密码重置功能详解

    2023-09-29 18:57:53
  • photoshop快捷键大全及使用技巧

    2007-10-26 07:40:00
  • IE下,事件触发那点破烂事儿

    2009-04-27 12:31:00
  • python使用redis模块来跟redis实现交互

    2023-05-06 04:13:40
  • Oracle性能究极优化 下

    2010-07-30 13:25:00
  • asp之家 网络编程 m.aspxhome.com