6 Pytorch小白从零学教程系列:张量的基本操作
在上一篇我们讨论了张量的定义与构造,相信大家已经对张量的基础概念有了一定了解。本篇将聚焦于张量的基本操作,让我们一起深入探讨张量在实际使用中的常见操作。
张量的基本操作
在PyTorch中,各种操作都是基于张量的,因此掌握基本操作是至关重要的。我们将涵盖以下几种操作:
- 加法与减法
- 乘法与除法
- 张量的转置
- 张量的连接
- 张量的数值统计
1. 加法与减法
可以使用+
和-
符号来进行张量的加法与减法操作。
import torch
a = torch.tensor([[1, 2], [3, 4]])
b = torch.tensor([[5, 6], [7, 8]])
# 张量加法
c = a + b
print("张量加法结果:\n", c)
# 张量减法
d = a - b
print("张量减法结果:\n", d)
输出:
张量加法结果:
tensor([[ 6, 8],
[10, 12]])
张量减法结果:
tensor([[-4, -4],
[-4, -4]])
2. 乘法与除法
张量的乘法可以使用*
进行元素间的逐个乘法,而使用torch.mm
(矩阵乘法)进行矩阵之间的乘法。除法也类似,使用/
进行元素间的逐个除法。
# 元素乘法
e = a * b
print("张量元素乘法结果:\n", e)
# 矩阵乘法
f = torch.mm(a, b)
print("张量矩阵乘法结果:\n", f)
输出:
张量元素乘法结果:
tensor([[ 5, 12],
[21, 32]])
张量矩阵乘法结果:
tensor([[19, 22],
[43, 50]])
3. 张量的转置
张量的转置是将行和列进行交换。可以使用torch.transpose
或.t()
方法实现。
g = a.t()
print("张量转置结果:\n", g)
输出:
张量转置结果:
tensor([[1, 3],
[2, 4]])
4. 张量的连接
对于多个张量,可以使用torch.cat()
函数进行连接。这里我们以沿着行和列进行连接为例。
h = torch.tensor([[9, 10], [11, 12]])
concat_dim0 = torch.cat((a, h), dim=0) # 沿着行(第一维)连接
concat_dim1 = torch.cat((a, h), dim=1) # 沿着列(第二维)连接
print("沿着行连接结果:\n", concat_dim0)
print("沿着列连接结果:\n", concat_dim1)
输出:
沿着行连接结果:
tensor([[ 1, 2],
[ 3, 4],
[ 9, 10],
[11, 12]])
沿着列连接结果:
tensor([[ 1, 2, 9, 10],
[ 3, 4, 11, 12]])
5. 张量的数值统计
PyTorch提供了多种函数以获取张量的统计信息,例如:求和,均值,方差等。
sum_a = torch.sum(a)
mean_a = torch.mean(a.float()) # 要求转换为浮点型
std_a = torch.std(a.float())
print("张量的和:", sum_a)
print("张量的均值:", mean_a)
print("张量的方差:", std_a)
输出:
张量的和: tensor(10)
张量的均值: tensor(2.5000)
张量的方差: tensor(1.1180)
总结
到此我们已经介绍了张量的基本操作,包括加法与减法、乘法与除法、转置、连接以及统计操作。这些操作是处理和分析数据的基础。在下一篇文章中,我们将讨论张量的索引与切片,帮助大家更灵活地操作张量。
希望本篇对你深入了解张量的基本操作有所帮助!如有疑问或者想了解更多内容,欢迎随时提问。