创建Tensor

1、从numpy导入

注:从np导入的Float其实是DOUBLE类型

a = np.array([2, 3.3])
torch.from_numpy(a)

a = np.ones([2,3])
torch.from_numpy(a)

在这里插入图片描述

2、从list导入

torch.tensor([2., 3.2])

torch.FloatTensor([2., 3.2])
#或者Tensor,可以接受shape,如二行三列(2,3)

torch.tensor([[2., 3.2], [1., 22.3]])

在这里插入图片描述

3、未初始化数据生成

会生成一系列或大或小无规律的数据,只是作为容器,需要后续真实数据进行替换

torch.empty()

torch.Tensor(2, 3)

torch.IntTensor(2, 3)

torch.FloatTensor(2, 3)

在这里插入图片描述

4、设置默认tensor类型

使用tensor生成张量数据,默认是float类型
torch.set_default_tensor_type(torch.DoubleTensor)
#增强学习一般使用double,其他一般使用float

在这里插入图片描述

5、均匀分布 rand/rand_like, randint

rand:
sample出的元素符合在[0,1)空间均值分布
如:a = torch.rand(3 ,3) , (3, 3)是shape

rand_like:
将一个目标张量a的shape读取之后,在进行[0,1)均值分布随机sanple数据填充
要是想生成[0, 10)均匀分布的数值,10 * torch.rand_like(a)

randint:
只能sample整数,且要给出数值范围和shape。
如: torch.randint(1, 10, (3, 3))

在这里插入图片描述

6、正态分布 randn

最常见的N(0, 1):
torch.randn(3, 3), (3, 3)是shape

在这里插入图片描述

7、full全部填充同一数值

full:给定目标张量shape,再给定填充数值
torch.full([shape], number)

在这里插入图片描述

8、arange/range 阶梯

在torch中建议使用arange,不需要使用range
arange:
torch.arange(min, max, step)# --> [min, max), step默认为1

在这里插入图片描述

9、linspace/logspace 等分

linspace:
torch.linspace(min, max, steps=?)
#[min, max], steps不是阶梯大小,而是stpes等于几,就等分为几个数,阶梯数等于stpes - 1
在这里插入图片描述
logspace:
在linspace结果上,里面的各元素作为x,最后各元素位置的数值结果为10的x次方

在这里插入图片描述

10、ones/zeros/eye

ones、zeros:
指定张量的shape,所有元素的值赋值为0、1
在这里插入图片描述
eye:
单位矩阵
torch.eye(3)则生成3*3的单位矩阵
若torch.eye(3,4),则多余的第四列数值均为0

在这里插入图片描述

11、randperm随机打散

torch.randperm(10) -->[0,10)
在这里插入图片描述
索引实现random.shuffle效果:

定义
a = torch.rand(2,3)
假设两行分别是人物1、人物2的a信息
b = torch.rand(2,2)
假设两行分别是人物1、人物2的b信息
现在想随机索引行顺序,但人物1、人物2对应的信息不变,只变数据顺序
idx = torch.randperm(2)
idx #看索引顺序
a[idx]
b[idx] # a、b都按idx的索引顺序进行打乱,但人物1、人物2对应的信息依旧不变

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值