一.基本数据类型

"tensor"这个单词一般可译作“张量”,张量可以看作是一个多维数组。标量可以看作是0维张量,向量可以看作1维张量,矩阵可以看作是二维张量。

张量 不重复的值 pytorch pytorch张量切片_标量


张量 不重复的值 pytorch pytorch张量切片_pytorch_02


张量 不重复的值 pytorch pytorch张量切片_数据_03


1.类型推断

张量 不重复的值 pytorch pytorch张量切片_张量 不重复的值 pytorch_04


2.标量

dim:维度

size/shape:形状

tensor:具体数

张量 不重复的值 pytorch pytorch张量切片_pytorch_05


张量 不重复的值 pytorch pytorch张量切片_标量_06

张量 不重复的值 pytorch pytorch张量切片_数据_07


张量 不重复的值 pytorch pytorch张量切片_张量 不重复的值 pytorch_08

a.shape是一个成员;a.size()是一个成员函数。

3.向量

张量 不重复的值 pytorch pytorch张量切片_pytorch_09


张量 不重复的值 pytorch pytorch张量切片_数据_10


张量 不重复的值 pytorch pytorch张量切片_张量 不重复的值 pytorch_11


张量 不重复的值 pytorch pytorch张量切片_张量 不重复的值 pytorch_12


张量 不重复的值 pytorch pytorch张量切片_方差_13


张量 不重复的值 pytorch pytorch张量切片_pytorch_14


张量 不重复的值 pytorch pytorch张量切片_pytorch_15

二.创建Tensor

1.将numpy数据转换成Tensor

torch.from_numpy(a)

张量 不重复的值 pytorch pytorch张量切片_标量_16


2.从python list中导入数据

torch.tensor([2.,3.2])

torch.tensor():接收现有的数据(标量或者是一个list)
torch.Tensor 或者torch.FloatTensor():接收数据的维度,(也可以使用现有的数据,但是容易和数据维度混淆,不推荐使用)

3.uninitialized

不使用初始化创建tensor,但是会出现torch.nan,torch.inf类数值,造成问题。
1.Torch.empty(),里面的数值是随机的
2.Torch.IntTensor(d1,d2,d3),数值也是随机的

4.设置默认类型:

torch.set_default_tensor_type(torch.DoubleTensor)

torch.tensor([1.2,3]).type()查看tensor类型

张量 不重复的值 pytorch pytorch张量切片_张量 不重复的值 pytorch_17

5.随机初始化,rand/rand_like,randint

1、a = torch.rand(3,3)

rand会随机产生0~1之间的数值,不包括1。

2、torch.rand_like(a):产生一个和a张量相同维度的维度

3、torch.randint(min,max,[d1,d2])

张量 不重复的值 pytorch pytorch张量切片_标量_18


张量 不重复的值 pytorch pytorch张量切片_标量_19

6、正态分布:randn

1、均值为0,方差为1:N(0,1)

2、自定义方差:torch.normal(mean=mean,std=std)

(mean——均值,std——方差)

张量 不重复的值 pytorch pytorch张量切片_标量_20


7、全部赋值为相同的元素:

torch.full([d1,d2,…],num)

张量 不重复的值 pytorch pytorch张量切片_标量_21


8、torch.arange(start,end,step)

张量 不重复的值 pytorch pytorch张量切片_标量_22


9、等分

1、torch.linspace(min,max,num):从min,到max等分num个数字,包含max

2、torch.logspace(min,max,num)logspace的base参数可以设置为2,10,e等底数

张量 不重复的值 pytorch pytorch张量切片_方差_23

10、单位矩阵 torch.eye(num)

张量 不重复的值 pytorch pytorch张量切片_pytorch_24


张量 不重复的值 pytorch pytorch张量切片_张量 不重复的值 pytorch_25


11、randperm

生成随机索引,常用于样本和标签协同shuffle

张量 不重复的值 pytorch pytorch张量切片_标量_26

张量 不重复的值 pytorch pytorch张量切片_pytorch_27


三、索引与切片

Pytorch Tensor的索引与切片

1、index_select( )第一个参数表示维度

2、.ge()方法作用是选取大于大于0.5的元素,将其位置置1(True),其余置0(False)

mask = c.ge(0.5)

3、使用mask索引,输出满足条件的位置的值
4、take()函数:先将tensor转换为一个list,之后根据索引选取list对应位置的值(take索引是在原来Tensor的shape基础上打平,然后在打平后的Tensor上进行索引。)