pytorch 改变tensor尺寸的实现

 更新时间:2020年01月03日 14:55:41   作者:大白菜--  
今天小编就为大家分享一篇pytorch 改变tensor尺寸的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

改变Tensor尺寸的操作

1.tensor.view

tensor.view方法,可以调整tensor的形状,但必须保证调整前后元素总数一致。view不会改变自身数据,返回的新的tensor与源tensor共享内存,即更改其中一个,另外一个也会跟着改变。

例:

In: import torch as t
   a = t.arange(0, 6)
   a.view(2, 3)
Out:tensor([[0, 1, 2],
    [3, 4, 5]])

In: b = a.view(-1, 3)#当某一维为-1的时候,会自动计算它的大小
Out:tensor([[0, 1, 2],
    [3, 4, 5]])

2.tensor.unsqueeze 和 tensor.squeeze

tensor.unsqueeze 和 tensor.squeeze分别用于增加或减少tensor的某一维度。

例:

In: b.unsqueeze(1)#注意形状, 在第1维(下标从0开始)上增加“1”
Out:tensor([[[0, 1, 2]],
    [[3, 4, 5]]])
    
In: b.unsqueeze(-2) #-2表示倒数第二个维度
Out:tensor([[[0, 1, 2]],
    [[3, 4, 5]]])
    
In: c = b.view(1, 1, 1, 2, 3)
   c.unsqueeze(0)#压缩第0维的“1”
Out:tensor([[[[[[0, 1, 2],
      [3, 4, 5]]]]]])
      
In: c.squeeze() #把所有维度为“1”的压缩
Out:tensor([[0, 1, 2],
    [3, 4, 5]])
    
In:a[1] = 100
  b #a和b共享内存,修改了a,b也变了
Out:tensor([[ 0, 100,  2],
    [ 3,  4,  5]])

3.tensor.resize

tensor.resize是另外一种可以调整tensor尺寸的方法,但与view不同,它可以修改tensor的尺寸。如果新尺寸超过了原尺寸,会自动分配新的内存空间;如果新尺寸小于原尺寸,则之前的数据依旧会保存

例:

In: b.resize_(1, 3)
Out:tensor([[ 0, 100,  2]])

In: b.resize_(3, 3)#旧的数据依旧保存着,多出的数据会分配新空间
Out:tensor([[         0,         100,          2],
    [         3,          4,          5],
    [         0,          0, 2323344073926471279]])

以上这篇pytorch 改变tensor尺寸的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python游戏库pygame经典教程(推荐!)

    python游戏库pygame经典教程(推荐!)

    Python Pygame是一款专门为开发和设计 2D 电子游戏而生的软件包,是入门级游戏开发库,下面这篇文章主要给大家介绍了python游戏库pygame经典教程的相关资料,需要的朋友可以参考下
    2022-12-12
  • Python分类测试代码实例汇总

    Python分类测试代码实例汇总

    这篇文章主要介绍了Python分类测试代码实例汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python上传时包含boundary时的解决方法

    python上传时包含boundary时的解决方法

    这篇文章主要介绍了python上传时包含boundary时的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 基于Python实现实时监控CPU使用率

    基于Python实现实时监控CPU使用率

    这篇文章主要为大家介绍了一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实时监控CPU使用率,随时展现。也无需下载管理软件,感兴趣的可以了解一下
    2022-04-04
  • python+opencv实现视频抽帧示例代码

    python+opencv实现视频抽帧示例代码

    下面是采用以帧数为间隔的方法进行视频抽帧,为了避免不符合项目要求的数据增强,博主要求技术人员在录制视频时最大程度地让摄像头进行移动、旋转以及远近调节等,对python opencv视频抽帧示例代码感兴趣的朋友一起看看吧
    2021-06-06
  • 用Python将动态GIF图片倒放播放的方法

    用Python将动态GIF图片倒放播放的方法

    GIF(Graphics Interchange Format) 是一种可以用来呈现动画效果的图片格式,原理就是保存很多帧(Frame)静态图像,然后连续呈现。这篇文章主要介绍了用Python将动态GIF图片倒放播放的方法,需要的朋友可以参考下
    2016-11-11
  • 解决Python spyder显示不全df列和行的问题

    解决Python spyder显示不全df列和行的问题

    这篇文章主要介绍了解决Python spyder显示不全df列和行的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 深入解析Python中的WSGI接口

    深入解析Python中的WSGI接口

    这篇文章主要介绍了深入解析Python中的WSGI接口,WSGI接口是Python中网络框架连接服务器的必备工具,需要的朋友可以参考下
    2015-05-05
  • Python安装Graphviz超详细图文教程

    Python安装Graphviz超详细图文教程

    这篇文章主要介绍了Python安装Graphviz超详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • Python读写Excel表格的方法

    Python读写Excel表格的方法

    这篇文章主要为大家详细介绍了Python读写Excel表格的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论