PyTorch学习笔记(一)

创建张量 Tensors

torch.rand

1
torch.rand(*sizes, out=None) → Tensor

返回一个张量,包含了从区间[0,1)的均匀分布中抽取的一组随机数,形状由可变参数sizes 定义。

参数:

  • sizes (int…) – 整数序列,定义了输出形状
  • out (Tensor, optinal) - 结果张量

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> torch.rand(4)

0.9193
0.3347
0.3232
0.7715
[torch.FloatTensor of size 4]

>>> torch.rand(2, 3)

0.5010 0.5140 0.0719
0.1435 0.5636 0.0538
[torch.FloatTensor of size 2x3]

torch.randn

1
torch.randn(*sizes, out=None) → Tensor

返回一个张量,包含了从标准正态分布(均值为0,方差为 1,即高斯白噪声)中抽取一组随机数,形状由可变参数sizes定义。

参数:

  • sizes (int…) – 整数序列,定义了输出形状
  • out (Tensor, optinal) - 结果张量

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> torch.randn(4)

-0.1145
0.0094
-1.1717
0.9846
[torch.FloatTensor of size 4]

>>> torch.randn(2, 3)

1.4339 0.3351 -1.0999
1.5458 -0.9643 -0.3558
[torch.FloatTensor of size 2x3]

torch.randperm

1
torch.randperm(n, out=None) → LongTensor

给定参数n,返回一个从0 到n -1 ([0,n-1))的随机整数排列。

参数:

  • n (int) – 上边界(不包含)

例子:

1
2
3
4
5
6
7
>>> torch.randperm(4)

2
1
3
0
[torch.LongTensor of size 4]

torch.arange

1
torch.arange(start, end, step=1, out=None) → Tensor

返回一个1维张量,长度为 floor((end−start)/step) (向下取整)包含(闭区间)从start到end,以step为步长的一组序列值(默认步长为1)。

参数:

  • start (float) – 序列的起始点
  • end (float) – 序列的终止点
  • step (float) – 相邻点的间隔大小
  • out (Tensor, optional) – 结果张量

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> torch.arange(1, 4)

1
2
3
[torch.FloatTensor of size 3]

>>> torch.arange(1, 2.5, 0.5)

1.0000
1.5000
2.0000
[torch.FloatTensor of size 3]

torch.range() 建议使用 torch.arange()

1
torch.range(start, end, step=1, out=None) → Tensor

返回一个1维张量,有 floor((end−start)/step)+1 个元素。包含在半开区间[start, end)从start开始,以step为步长的一组值。 step 是两个值之间的间隔,即 $x_{i+1}=x_i+step$

警告:建议使用函数 torch.arange()

参数:

  • start (float) – 序列的起始点
  • end (float) – 序列的最终值
  • step (int) – 相邻点的间隔大小
  • out (Tensor, optional) – 结果张量

特例:

  • mean=0.0,所有抽取的样本共享均值
  • std=1.0,所有抽取的样本共享标准差

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> torch.range(1, 4)

1
2
3
4
[torch.FloatTensor of size 4]

>>> torch.range(1, 4, 0.5)

1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
[torch.FloatTensor of size 7]