深度学习与PyTorch笔记5

创建Tensor

import from numpy

从numpy中导入。
在这里插入图片描述

import from list

数据量不是很大。
torch.tensor承接的参数量是现成的数据,要么是numpy要么是list。
torch.Tensor,torch.FloatTensor承接的参数是shape,数据的维度,也可以承接现有数据,必须是list。
在这里插入图片描述

生成未初始化的数据

1、Torch.empty()里面是shape
2、Torch.FloatTensor(d1,d2,d3)
3、Torch.IntTensor(d1,d2,d3)
问题:数据大小不一,非常不规则,最好不要直接使用。
torch.Tensor在pytorch里默认是torch.FloatTensor,可以设置更改。做增强学习时torch.DoubleTensor用的较多,精度高,转换:torch.set_default_tensor_type(torch.DoubleTensor)

生成随机初始化的数据

rand:随机的使用0-1的均值分布,torch.rand()参数为shape,比如torch.rand(3,3)。
rand_like:torch.rand_like()参数为tensor,比如a=torch.rand(3,3),torch.rand_like(a)。
randint:自定义区间,最大值不包含在区间内,[min,max),比如torch.randint(1,10,[3,3]),生成一个[1,10)之间的3*3的矩阵。
randn:正态分布,均值为0,方差为1。自定义均值和方差时:torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1)) 先生成一个长度为10但是都为0的向量,方差从1到0慢慢的减小(1,0.9,0.8,…,0)。
full函数:torch.full([2,3],7)生成一个两行三列元素全为7的矩阵。torch.full([],7),生成一个标量,torch.full([1],7),生成一个向量。
arange/range:递增递减生成等差数列,默认差为1,torch.arange(0,10),不包含10。torch.arange(0,10,2),差为2。torch里面不建议使用range。
linspace:torch.linspace(0,10,steps=4),steps为数量,从0到10,包含10,等分切割。
logspace:torch.logspace(0,-1,steps=10),steps为数量,从0到-1,包含-1,等分切割之后的参数作为幂次,返回10的幂次。
ones:生成全为1。
zeros:生成全为0。
eye:生成对角为1。torch.eye(3),torch.eye(3,4),eye只能接受一个或者两个参数。
在这里插入图片描述
用like替换。
randperm:随机打散,不包括最大值,生成索引,然后shuffle。
在这里插入图片描述
在这里插入图片描述
自行体会一下。

猜你喜欢

转载自blog.csdn.net/niuniu990/article/details/87653529
今日推荐