QZQ的小世界!

  • 首页
你好!
这里是QZQ的博客站!
  1. 首页
  2. 未分类
  3. 正文

Tensor中的view()、sequeeze()、resize()操作

2025年4月4日 47点热度 0人点赞 0条评论

view

tensor.view()方法可以调整tensor的形状,但必须保证调整前后元素总数一致。view不会修改自身的数据,返回的新tensor与原tensor共享内存,即更改一个,另一个也随之改变。

import torch as t
a=t.arange(0,6).view(2,3)
print(a)

b=a.view(-1,2)  #当某一维是-1时,会自动计算它的大小
print(b)

#输出
tensor([[0, 1, 2],
        [3, 4, 5]])
tensor([[0, 1],
        [2, 3],
        [4, 5]])

unsequeeze()和sequeeze()

unsequeeze(dim)用来在维度dim上增加1维;sequeeze(dim)用来在dim上减少维度。

import torch as t
a=t.arange(0,6).view(2,3)
print(a)

b=a.view(-1,2)  #当某一维是-1时,会自动计算它的大小
print(b)
c=b.unsqueeze(1)    #在第1维上,增加1
print(c.size())

d=c.squeeze(-2)   #在倒数第二维上,减少1维
print(d.size())


#输出
tensor([[0, 1, 2],
        [3, 4, 5]])
tensor([[0, 1],
        [2, 3],
        [4, 5]])
torch.Size([3, 1, 2])
torch.Size([3, 2])

resize()

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

import torch as t
a=t.arange(0,6).view(2,3)
print(a)

b=a.resize_(1,3)
print(b)

c=b.resize_(3,3)
print(c)

#结果
tensor([[0, 1, 2],
        [3, 4, 5]])
tensor([[0, 1, 2]])
tensor([[                  0,                   1,                   2],
        [                  3,                   4,                   5],
        [                  0,                  15, 3184145383629680499]])

最后一行是随机填充的数据。

来自

https://blog.csdn.net/weixin_38664232/article/details/104539351

[文章导入自 http://qzq-go.notion.site/18749a7b4e7580628f80e6014ccbdc72 访问原文获取高清图片]

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: IT技术 Pytorch和它学不完的AI =.=
最后更新:2025年4月3日

QZQ

一只涉猎广泛的技术爱好者,绝赞养猫中~

点赞
< 上一篇
下一篇 >

归档

  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月

分类

  • 技术
  • 未分类

COPYRIGHT © 2024 QZQ的小世界!. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang