PyTorch中flatten() 函数的用法实例小结

 更新时间:2023年11月08日 09:45:25   作者:纽约恋情  
在PyTorch中,flatten函数的作用是将一个多维的张量转换为一维的向量,它可以将任意形状的张量转换为一维,而不需要指定转换后的大小,这篇文章主要介绍了PyTorch中flatten() 函数的用法,需要的朋友可以参考下

一. 用法

Flatten层主要是用来将输入“压平”,即把多维的输入一维化,用在卷积层到全连接层的过渡。其不会影响batch的大小,可以理解为把高纬度的数组按照x轴或者y轴进行拉伸,变成一维的数组。

二. 参数

      1.start_dim(可选参数):指定从哪个维度开始展平张量。默认情况下,start_dim被设置为0,表示从第一个维度(通常是批大小)开始展平。如果设置为其他整数值,则会从指定的维度开始展平。

       2.end_dim(可选参数):指定在哪个维度结束展平张量。默认情况下,end_dim被设置为-1,表示展平直到最后一个维度。如果设置为其他整数值,则会在指定的维度结束展平。

三. 实例

 (1). 首先随机定义一个满足正态分布的(2,3,4)的数据x

import torch 
x = torch.randn(2,3,4)
print(x)
x = x.flatten(0)
print(x)
------------------------------------
tensor([[[ 0.1281,  1.6878,  0.2301, -0.0721],
         [ 1.2374, -0.6929,  1.1186,  0.4372],
         [ 0.5122,  1.4653, -0.1673,  0.7258]],
        [[ 0.2772, -1.9994, -1.2284,  0.2764],
         [-0.0451, -0.9195,  0.5749,  0.1942],
         [ 0.8539, -0.0434, -0.7313,  0.0234]]])
tensor([ 0.1281,  1.6878,  0.2301, -0.0721,  1.2374, -0.6929,  1.1186,  0.4372,
         0.5122,  1.4653, -0.1673,  0.7258,  0.2772, -1.9994, -1.2284,  0.2764,
        -0.0451, -0.9195,  0.5749,  0.1942,  0.8539, -0.0434, -0.7313,  0.0234])
import torch 
x = torch.randn(2,3,4)
print(x)
x = x.flatten(0)
print(x)
------------------------------------
tensor([[[ 0.1281,  1.6878,  0.2301, -0.0721],
         [ 1.2374, -0.6929,  1.1186,  0.4372],
         [ 0.5122,  1.4653, -0.1673,  0.7258]],
        [[ 0.2772, -1.9994, -1.2284,  0.2764],
         [-0.0451, -0.9195,  0.5749,  0.1942],
         [ 0.8539, -0.0434, -0.7313,  0.0234]]])
tensor([ 0.1281,  1.6878,  0.2301, -0.0721,  1.2374, -0.6929,  1.1186,  0.4372,
         0.5122,  1.4653, -0.1673,  0.7258,  0.2772, -1.9994, -1.2284,  0.2764,
        -0.0451, -0.9195,  0.5749,  0.1942,  0.8539, -0.0434, -0.7313,  0.0234])

此时x的维度是2×3×4=24,x = flatten(0) 和 x = flatten()的结果相同。

 (2).

import torch 
x = torch.randn(2,3,4)
print(x)
x = x.flatten(1)
print(x)
===========================================
tensor([[[-0.7137, -0.0859, -1.5284,  0.7284],
         [ 0.8425,  0.3606,  1.7639,  0.1848],
         [ 0.4040, -1.6575,  1.9134, -1.0787]],
        [[ 0.6981,  1.3494, -0.5817, -1.1824],
         [-0.4972,  0.4179,  2.1742, -0.2462],
         [ 0.2429, -1.9315, -0.3497,  0.7190]]])
tensor([[-0.7137, -0.0859, -1.5284,  0.7284,  0.8425,  0.3606,  1.7639,  0.1848,
          0.4040, -1.6575,  1.9134, -1.0787],
        [ 0.6981,  1.3494, -0.5817, -1.1824, -0.4972,  0.4179,  2.1742, -0.2462,
          0.2429, -1.9315, -0.3497,  0.7190]])

此时x是从1维度开始展开,最后的x维度为(2,3×4),也就是(2,12)

注意:start_dimend_dim参数的取值范围应该在 -x.dim() <= start_dim <= end_dim < x.dim() 之间。

到此这篇关于PyTorch中flatten() 函数的用法的文章就介绍到这了,更多相关PyTorch flatten() 函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python数据结构算法分析

    python数据结构算法分析

    这篇文章主要介绍了python数据结构算法分析,在python的数据结构的章节中,我们上次学习到了python面向对象的思想,即我们想用程序来实现一个东西,我们需是用对象的特征来描述我们想构建的对象。感兴趣的小伙伴可以查看下面内容</P><P>
    2021-12-12
  • 详解python实现交叉验证法与留出法

    详解python实现交叉验证法与留出法

    这篇文章主要介绍了详解python实现交叉验证法与留出法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python实现微信公众平台自定义菜单实例

    Python实现微信公众平台自定义菜单实例

    这篇文章主要介绍了Python实现微信公众平台自定义菜单实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • 使用Python的Matplotlib绘制渐变的彩色曲线

    使用Python的Matplotlib绘制渐变的彩色曲线

    这篇文章主要介绍了使用Python的Matplotlib绘制渐变的彩色曲线,Matplotlib是Python生态圈中应用最为广泛的2D绘图库,通过扩展工具包mplot3d,也可以绘制简单的3D模型,需要的朋友可以参考下
    2023-08-08
  • Pytorch通过保存为ONNX模型转TensorRT5的实现

    Pytorch通过保存为ONNX模型转TensorRT5的实现

    这篇文章主要介绍了Pytorch通过保存为ONNX模型转TensorRT5的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 浅谈五大Python Web框架

    浅谈五大Python Web框架

    Python这么多框架,能挨个玩个遍的人不多,坦白的说我也只用过其中的三个开发过项目,另外一些稍微接触过,所以这里只能浅谈一下,欢迎懂行的朋友们补充
    2017-03-03
  • Python字符串通过''+''和join函数拼接新字符串的性能测试比较

    Python字符串通过''+''和join函数拼接新字符串的性能测试比较

    今天小编就为大家分享一篇关于Python字符串通过'+'和join函数拼接新字符串的性能测试比较,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Python基础之教你怎么在M1系统上使用pandas

    Python基础之教你怎么在M1系统上使用pandas

    这篇文章主要介绍了Python基础之教你怎么在M1系统上使用pandas,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • 详解如何使用Python操作MySQL的各种功能和用法

    详解如何使用Python操作MySQL的各种功能和用法

    当今互联网时代,数据处理已经成为了一个非常重要的任务,而MySQL作为一款开源的关系型数据库,被广泛应用于各种场景,本篇博客将介绍如何使用Python操作MySQL的各种功能,以及一些高级用法,需要的朋友可以参考下
    2023-11-11
  • 关于Python的pymouse click 双击的问题

    关于Python的pymouse click 双击的问题

    这篇文章主要介绍了关于Python的pymouse click 双击的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论