Pytorch(一)入门:Tensor基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zw__chen/article/details/82801364

torch.Tensor 基础

Tensor就是pytorch中存储数据的主要格式,跟numpy类似 这里,我们先介绍一些最基本的操作和常用的功能

在这里插入图片描述

在numpy中,我们是通过shape来获取数组的形状,而在我们的tensor当中,我们使用size来得到形状。

在这里插入图片描述

有时候,我们需要对数组形状进行改变,我们可以采用 .view() 的方式

在这里插入图片描述

可以注意到test5通过test4变形的时候,是从test4的第一行从左至右,然后第二行从左至右…这样形成3x2的矩阵的。

torch.Tensor 支持大量的数学操作符 + , - , * , / 都是可以用的。
当然也可以用Tensor内置的 add() 等, 这里需要提一下的就是 add 和 add_ 的区别
使用add函数会生成一个新的Tensor变量, add_ 函数会直接再当前Tensor变量上进行操作
所以,对于函数名末尾带有"_" 的函数都是会对Tensor变量本身进行操作的
在这里插入图片描述

tensor对矩阵同样支持

在这里插入图片描述

跟numpy一样,再Tensor中,也存在Broadcasting
当二元操作符左右两边Tensor形状不一样的时候,系统会尝试将其复制到一个共同的形状。例如a的第0维是3, b的第0维是1,那么 a + b这个操作会将b沿着第0维复制3遍。

在这里插入图片描述

Tensor和Numpy的相互转换
在这里插入图片描述

一些其他的常用的操作

torch.unsqueeze() 可以把一个向量变成矩阵
在这里插入图片描述

squeeze() 可以把一个矩阵变成向量
在这里插入图片描述

stack() 可以让我们把很多个矩阵"堆"在一起形成一个新的高维矩阵。
比如,我们有 10 个 (5, 12)的 Tensor, 我们希望把他们堆在一起形成 (10, 5, 12)的Tensor,我们就可以使用 stack

在这里插入图片描述

以上代码参考:https://github.com/LianHaiMiao/pytorch-lesson-zh/

猜你喜欢

转载自blog.csdn.net/zw__chen/article/details/82801364