PyTorch 学习笔记(四)
Nov 15, 2018
1 . 从接口的角度来讲,对 tensor 的操作可分为两类:
torch.function
,如torch.save
等;- 另一类是
tensor.function
,如tensor.view
等。
为了方便使用,对 tensor 的大部分操作同时支持这两类接口,如 torch.sum(torch.sum(a, b))
与 tensor.sum(a.sum(b))
功能等价。
2 . 在 Pytorch 中新建 tensor 的方法具体有很多,如下表:
函数 | 功能 |
---|---|
Tensor(*sizes) |
基础构造函数 |
tensor(data) |
类似 np.array 的构造函数 |
ones(*sizes) |
全 1 Tensor |
zeros(*sizes) |
全 0 Tensor |
eye(*sizes) |
对角线为 1,其他为 0 |
arange(s, e, steps) |
从 s 到 e,步长为 step |
linspace(s, e, steps) |
从 s 到 e,均匀切分成 steps 份 |
rand/randn(*sizes) |
均匀/标准分布 |
normal(mean, std)/uniform(from, to) |
正态分布/均匀分布 |
randperm(m) |
随机排列 |
这些创建方法都可以在创建的时候指定数据类型 dtype
和存放 device(cpu/gpu)。
Input:
1 | import torch as t |
Output:
t.Tensor(*sizes)
创建 tensor 时,系统不会马上分配空间,只会计算剩余的内存是否足够使用,使用到 tensor 时才会分配,而其他操作都是在创建完 tensor 之后马上进行空间分配。
Input:
1 | import torch as t |
Output:
笔记来源:《pytorch-book》