PyTorch矩阵加法的4种实现方法(附带实例)
在 PyTorch 中,矩阵的加法运算有 4 种实现方法,下面通过案例进行介绍。
首先创建两个张量,代码如下:
这里的张量 b 会调整为如下形式,维度与张量 a 一样:
【实例 1】使用 + 运算符实现加法。
【实例 2】使用函数 torch.add() 实现加法。
【实例 3】将结果存储到一个张量。
【实例 4】把一个张量加到另一个张量上。
首先创建两个张量,代码如下:
# 导入torch库 import torch # 创建一个3行4列的随机张量a,元素值在0和1之间 a = torch.rand(3, 4) # 创建一个长度为4的随机张量b,元素值在0和1之间 b = torch.rand(4) # 打印张量a的值 print(a) # 打印张量b的值 print(b)输出结果如下:
tensor([[0.5675, 0.7567, 0.4230, 0.5616], [0.7795, 0.4334, 0.3138, 0.7730], [0.4122, 0.7436, 0.1173, 0.9017]]) tensor([0.3944, 0.3240, 0.4609, 0.7860])从输出可以看出,张量 a 和张量 b 的维度不一样,在进行矩阵运算时,会隐式地把一个张量的维度调整到与另一个张量相匹配的维度以实现维度兼容,从而进行运算。
这里的张量 b 会调整为如下形式,维度与张量 a 一样:
tensor([[0.3944, 0.3240, 0.4609, 0.7860], [0.3944, 0.3240, 0.4609, 0.7860], [0.3944, 0.3240, 0.4609, 0.7860]])下面就可以进行加法运算了。
【实例 1】使用 + 运算符实现加法。
print(a+b)输出结果如下:
tensor([[0.9619, 1.0807, 0.8839, 1.3476], [1.1739, 0.7574, 0.7747, 1.5590], [0.8066, 1.0675, 0.5781, 1.6877]])
【实例 2】使用函数 torch.add() 实现加法。
print(torch.add(a,b))输出结果如下:
tensor([[0.9619, 1.0807, 0.8839, 1.3476], [1.1739, 0.7574, 0.7747, 1.5590], [0.8066, 1.0675, 0.5781, 1.6877]])
【实例 3】将结果存储到一个张量。
# 导入torch库 import torch # 创建一个3行4列的张量a,元素值在0和1之间 a = torch.rand(3, 4) # 创建一个长度为4的随机张量b,元素值在0和1之间 b = torch.rand(4) # 创建一个3行4列的空张量c,用于存储结果 c = torch.Tensor(3, 4) # 将张量a和b逐元素相加,并将结果存储在张量c中 result = torch.add(a, b, out=c) # 打印张量c的值 print(c)输出结果如下:
tensor([[0.9619, 1.0807, 0.8839, 1.3476], [1.1739, 0.7574, 0.7747, 1.5590], [0.8066, 1.0675, 0.5781, 1.6877]])
【实例 4】把一个张量加到另一个张量上。
# 导入torch库 import torch # 创建一个3行4列的张量a,元素值在0和1之间 a = torch.rand(3, 4) # 创建一个长度为4的随机张量b,元素值在0和1之间 b = torch.rand(4) # 将张量a和b逐元素相加,并将结果存储在张量b中 result = b.add(a) # 打印张量b的值 print(b)输出结果如下:
tensor([0.0815, 0.2655, 0.4416, 0.4971])