【Pytorch】torch.Tensor.view()

84 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

在这里插入图片描述

简介

Hello!

非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~  

ଘ(੭ˊᵕˋ)੭

昵称:海轰

标签:程序猿|C++选手|学生

简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖...已保研

学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

唯有努力💪

torch.Tensor.view()

语法

Tensor.view(*shape) → Tensor

作用

返回一个新的张量,其数据与自张量相同,但形状不同。

返回的张量共享相同的数据,并且必须具有相同数量的元素,但可能具有不同的大小

对于要查看的张量,新视图大小必须与其原始大小和步幅兼容,即

  • 每个新视图维度必须是原始维度的子空间
  • 或者仅跨越原始维度 d,d+1,,d+kd,d+1,…,d+k 满足以下类邻接条件 i=d,,d+k1\forall i = d, \dots, d+k-1 ,

在这里插入图片描述

否则,如果不复制它(例如,通过 contiguous()),就无法将自张量视为形状

当不清楚是否可以执行 view() 时,建议使用 reshape(),如果形状兼容则返回view,否则复制(相当于调用 contiguous())

举例

在这里插入图片描述

注: -1 可以理解为此参数是需要估计的(依据其他确定的参数进行计算)


在这里插入图片描述 注:

  • b相当于a转化后的另一个拷贝
  • c则是直接在a基础上修改,内存还是一样(类似指针,指向的内存还是那一个)
  • 说明view不改变内存(不会重新拷贝)

参考

结语

文章仅作为个人学习笔记记录,记录从0到1的一个过程

希望对您有一点点帮助,如有错误欢迎小伙伴指正

在这里插入图片描述