运算符
- 如何在这些数据上执行数学运算,其中最简单且最有用的操作是按元素(elementwise)运算。
- 它们将标准标量运算符应用于数组的每个元素。 对于将两个数组作为输入的函数,按元素运算将二元运算符应用于两个数组中的每对位置对应的元素。
- 我们可以基于任何从标量到标量的函数来创建按元素函数。
在数学中,我们通过符号f:R→R 来表示一元标量运算符(只接收一个输入)。 这意味着该函数从任何实数映射到另一个实数。
通过符号f:R,R→R 表示二元标量运算符 这意味着该函数接收两个输入,并产生一个输出。
给定同一形状的任意两个向量𝐮和𝐯和二元运算符𝑓, 我们可以得到向量𝐜=𝐹(𝐮,𝐯)
计算方法是𝑐𝑖←𝑓(𝑢𝑖,𝑣𝑖)(其中ci、ui和vi分别是向量𝐜、𝐮和𝐯中的元素)
在这里通过将标量函数升级为按元素向量运算来生成向量值F:Rd,Rd→Rd。
对于任意具有相同形状的张量, 常见的标准算术运算符(**+ - * / ****)都可以被升级为按元素运算。
可以在同一形状的任意两个张量上调用按元素操作。 在下面的例子中,我们使用逗号来表示一个具有5个元素的元组,其中每个元素都是按元素操作的结果。
x = torch.tensor([1.0, 2, 4, 8])
y = torch.tensor([2, 2, 2, 2])
x + y, x - y, x * y, x / y, x ** y # 本质上是矩阵的基本运算
(tensor([ 3., 4., 6., 10.]),
tensor([-1., 0., 2., 6.]),
tensor([ 2., 4., 8., 16.]),
tensor([0.5000, 1.0000, 2.0000, 4.0000]),
tensor([ 1., 4., 16., 64.]))
“按元素”方式可以应用更多的计算,包括像求幂这样的一元运算符。
torch.exp(x)
tensor([2.7183e+00, 7.3891e+00, 5.4598e+01, 2.9810e+03])
把多个张量连结(concatenate)在一起
把它们端对端地叠起来形成一个更大的张量。 只需要提供张量列表,并给出沿哪个轴连结。 下面的例子分别演示了当沿行(轴-0,形状的第一个元素) 和按列(轴-1,形状的第二个元素)连结两个矩阵时,会发生什么情况。
0表示按行拼接,1表示按列拼接
X = torch.arange(12, dtype=torch.float32