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尺寸的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • From CSV to SQLite3 by python 导入csv到sqlite实例

    From CSV to SQLite3 by python 导入csv到sqlite实例

    今天小编就为大家分享一篇From CSV to SQLite3 by python 导入csv到sqlite实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python实现将sqlite数据库导出转成Excel(xls)表的方法

    Python实现将sqlite数据库导出转成Excel(xls)表的方法

    这篇文章主要介绍了Python实现将sqlite数据库导出转成Excel(xls)表的方法,结合实例形式分析了Python针对sqlite数据库的连接、读取及使用写操作包(xlwt)生成Excel表的相关实现技巧,需要的朋友可以参考下
    2017-07-07
  • 解决Python 写文件报错TypeError的问题

    解决Python 写文件报错TypeError的问题

    这篇文章主要介绍了解决Python 写文件报错TypeError的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Python深入分析@property装饰器的应用

    Python深入分析@property装饰器的应用

    这篇文章主要介绍了Python @property装饰器的用法,在Python中,可以通过@property装饰器将一个方法转换为属性,从而实现用于计算的属性,下面文章围绕主题展开更多相关详情,感兴趣的小伙伴可以参考一下
    2022-07-07
  • python+requests接口压力测试500次,查看响应时间的实例

    python+requests接口压力测试500次,查看响应时间的实例

    这篇文章主要介绍了python+requests接口压力测试500次,查看响应时间的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python如何输出整数

    Python如何输出整数

    在本篇文章里小编给大家分享的是关于Python输出整数实例方法,有兴趣的朋友们可以学习下。
    2020-06-06
  • python实现自动解数独小程序

    python实现自动解数独小程序

    这篇文章主要为大家详细介绍了python实现自动解数独小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python使用openpyxl读写excel文件的方法

    Python使用openpyxl读写excel文件的方法

    本篇文章主要介绍了Python使用openpyxl读写excel文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • python 高阶函数简单介绍

    python 高阶函数简单介绍

    这篇文章主要介绍了python 高阶函数的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-02-02
  • DRF过滤排序分页异常处理的过程记录

    DRF过滤排序分页异常处理的过程记录

    在写django drf的时候会遇到搜索,以及过滤的情况,这篇文章主要给大家介绍了关于DRF过滤排序分页异常处理的相关资料,需要的朋友可以参考下
    2021-07-07

最新评论