PyTorch - 12 - 深度学习代码 - ArgMax和缩减Tensor Ops
Tensor Reduction Operations
`
让我们为还原操作定义一个开始。
张量的归约运算是减少张量中包含的元素数量的运算。
A reduction operation on a tensor is an operation that reduces the number of elements contained within the tensor.
到目前为止,在本系列文章中,我们已经了解到,张量是深度学习的数据结构。 我们的首要任务是将数据元素加载到张量中。
因此,张量
非常重要,但最终,我们在本系列中学到的操作中正在做的事情是管理张量中包含的数据元素。
张量使我们能够管理数据。
整形操作使我们能够沿特定轴定位元素。 逐元素运算允许我们对两个张量之间的元素执行运算,归约运算允许我们对单个张量内的元素执行运算。
我们来看一个代码示例。
Reduction Operation Example
假设我们使用以下3 x 3 rank-2
张量:
> t = torch.tensor([
[0,1,0],
[2,0,2],
[0,3,0]
], dtype=torch.float32)
让我们看一下我们的第一个归约运算:
> t.sum()
tensor(8.)
利用事实
> t.numel()
9
> t.sum().numel()
1
我们可以看到
> t.sum().numel() < t.numel()
True
张量的标量分量之和是使用sum()
张量方法计算的。 该调用的结果是标量值张量。
根据sum()
调用的结果检查原始张量中的元素数量,我们可以看到,确实,对sum()
的调用返回的张量包含的元素少于原始张量。
由于该操作已减少了元素数量,因此我们可以得出结论sum()
方法是一种减少操作。
Common Tensor Reduction Operations
如您所料,这是一些其他常见的归约函数:
> t.sum()
tensor(8.)
> t.prod()
tensor(0.)
> t.mean()
tensor(.8889)
> t.std()
tensor(1.1667)
所有这些张量方法都通过对所有张量元素进行运算而将张量缩减为单个元素标量值张量。
归约运算通常使我们能够计算跨数据结构的合计(总)值。 在我们的情况下,我们的结构是张量。
不过,这是一个问题:
归约运算是否总是将一个张量归约