摘要:Tensor,它可以是 0 维、一维以及多维的数组,你可以将它看作为神经网络界的 Numpy,它与 Numpy 相似,二者可以共享内存,且之间的转换非常方便。
本文分享自华为云社区《Tensor:Pytorch神经网络界的Numpy》,作者: 择城终老 。
Tensor
Tensor,它可以是0维、一维以及多维的数组,你可以将它看作为神经网络界的Numpy,它与Numpy相似,二者可以共享内存,且之间的转换非常方便。
但它们也不相同,最大的区别就是Numpy会把ndarray放在CPU中进行加速运算,而由Torch产生的Tensor会放在GPU中进行加速运算。
对于Tensor,从接口划分,我们大致可分为2类:
1. torch.function:如torch.sum、torch.add等。
2. tensor.function:如tensor.view、tensor.add等。
而从是否修改自身来划分,会分为如下2类:
1. 不修改自身数据,如x.add(y),x的数据不变,返回一个新的Tensor。
2. 修改自身数据,如x.add_(y),运算结果存在x中,x被修改。
简单的理解就是方法名带不带下划线的问题。
现在,我们来实现2个数组对应位置相加,看看其效果究竟如何:
import torch x = torch.tensor([1, 2]) y = torch.tensor([3, 4]) print(x + y) print(x.add(y)) print(x) print(x.add_(y)) print(x)
运行之后,效果如下:

下面,我们来正式讲解Tensor的使用方式。
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv14979