在深度学习中什么是张量?张量的类别有几种?如何创建张量运算?

人工智能专栏

正文

在深度学习中什么是张量?张量的类别有几种?如何创建张量运算?

本文我们将学习pytorch中的张量(Tensor),它是一个多维数组,零维就是一个点,一维就是向量,二维就是一般的矩阵,多维就相当于一个多维的数组,这和 numpy理解是一样的,不同的是Tensor不仅可以在CPU上跑,在GPU上也可以跑。

给定一个张量数据,我们可以确定它的维度(dimension)、大小(size)和元素的个数。

维度表示这个张量有几维(零位、一维、二维、多维),大小可以理解为这个张量的shape,元素的个数表示张量中的元素的总数。只有维度、大小、元素个数、更元素都相同的两个张量,才是两个相同的张量。

需要注意的是,对于某个张量,若其大小(shape)中有一个条目是1,那么这个1也是不可以省略的,也应该算进张量的维度里。例如,大小为(3,1)的二维张量和大小为(3,)的张量虽然虽然有相同的元素个数,但是它们的维度不用(前面的二维,后面的一维)、大小不同,所以二者不是相同的张量。

张量的维度是这样就算的,我们就看向量的大小()括号中有几个数字,有几个数字那么这个张量就是几维,也就是说一维向量的大小具有(s[0],)的形式。

要想创建tensor有以下几种方式

方式一:将numpy转成tensor

方式二:将列表转成tensor,常用于两维以下

torch.tensor([1,2])

torch.tensor([[1,2],[3,4]])

方式三:torch.FloatTensor(d1,d2,d3)创建维度为d1,d2,d3维度的tensor(此时的数据是为初始化的,也就是数字会很大或者很小,一般需要对应的对其进行覆盖操作)

创建向量

在深度学习中什么是张量?张量的类别有几种?如何创建张量运算?

import torch

a=torch.tensor([1.])

print(a.type())

print(a.dim())

print(a.shape)

print(a.size())

创建向量的时候,直接在torch.tensor中放入我们想要创建的那个向量

还可以这样创建向量

在深度学习中什么是张量?张量的类别有几种?如何创建张量运算?

import torch

a=torch.FloatTensor(2)#创建一个一维向量,里面有两个元素

print(a)

print(a.type())

print(a.dim())

print(a.shape)

print(a.size())

相关推荐