PyTorch - 11 - 深度学习张量 - 使用PyTorch进行广播和明智的操作

本文介绍了在PyTorch中,元素级别的操作如加法是张量运算的基础,同时阐述了广播机制如何允许不同形状的张量进行按元素运算。广播使得标量值能够与任意形状的张量进行运算,而比较操作同样遵循元素对齐的原则。这些概念在神经网络编程中至关重要。
摘要由CSDN通过智能技术生成

What Does Element-Wise Mean?

Element-Wise操作是神经网络编程中带有张量的极其常见的操作。让我们以元素操作的定义开始讨论。

逐元素操作是两个张量之间的操作,其对相应张量内的相应元素进行操作

基于元素的操作对张量之间的相应元素进行操作。

如果两个元素在张量内占据相同位置,则认为这两个元素是对应的。该位置由用于定位每个元素的索引确定。

假设我们有以下两个张量:

> t1 = torch.tensor([
    [1,2],
    [3,4]
], dtype=torch.float32)

> t2 = torch.tensor([
    [9,8],
    [7,6]
], dtype=torch.float32)

这两个张量均为2 x 2形状的2级张量

这意味着我们有两个轴,每个轴的长度均为两个元素。第一轴的元素是数组,第二轴的元素是数字。

# Example of the first axis
> print(t1[0])
tensor([1., 2.])

# Example of the second axis
> print(t1[0][0])
tensor(1.)

这是我们现在在本系列中经常看到的那种东西。好吧,让我们以此为基础。

我们知道,如果两个元素在张量内处于相同位置,则认为这两个元素是对应的,并且该位置由用于定位每个元素的索引确定。让我们看一个对应元素的例子。

> t1[0][0]
tensor(1.)

> t2[0][0]
tensor(9.)

这使我们看到t1中1的对应元素是t29的元素。

对应关系由索引定义。这很重要,因为它揭示了元素方式操作的重要特征。我们可以推断出张量必须具有相同数量的元素才能执行按元素的操作。

我们将继续进行此声明,使其更具限制性。两个张量必须具有相同的形状,以便对其执行按元素的操作。

Addition Is An Element-Wise Operation

让我们看一下我们第一个基于元素的操作加法。 不用担心 它将变得更加有趣。

> t1 + t2
tensor([[10., 10.],
        [10., 10.]])

这使我们看到张量之间的加法是元素操作。 对应位置的每对元素被加在一起以产生相同形状的新张量。

因此,加法是按元素进行的运算,实际上,所有算术运算(加,减,乘和除)都是按元素进行的运算。

Arithmetic Operations Are Element-Wise Operations

我们通常用张量看到的运算是使用标量值的算术运算。我们可以通过两种方式执行此操作:

(1)使用以下符号操作:

> print(t + 2)
tensor([[3., 4.],
        [5., 6.]])

> print(t - 2)
tensor([[-1.,  0.],
        [ 1.,  2.]])

> print(t * 2)
tensor([[2., 4.],
        [6., 8.]])

> print(t / 2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值