6 张量的基本操作

在上一篇我们讨论了张量的定义与构造,相信大家已经对张量的基础概念有了一定了解。本篇将聚焦于张量的基本操作,让我们一起深入探讨张量在实际使用中的常见操作。

张量的基本操作

在PyTorch中,各种操作都是基于张量的,因此掌握基本操作是至关重要的。我们将涵盖以下几种操作:

  1. 加法与减法
  2. 乘法与除法
  3. 张量的转置
  4. 张量的连接
  5. 张量的数值统计

1. 加法与减法

可以使用+-符号来进行张量的加法与减法操作。

1
2
3
4
5
6
7
8
9
10
11
12
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)

输出:

1
2
3
4
5
6
张量加法结果:
tensor([[ 6, 8],
[10, 12]])
张量减法结果:
tensor([[-4, -4],
[-4, -4]])

2. 乘法与除法

张量的乘法可以使用*进行元素间的逐个乘法,而使用torch.mm(矩阵乘法)进行矩阵之间的乘法。除法也类似,使用/进行元素间的逐个除法。

1
2
3
4
5
6
7
# 元素乘法
e = a * b
print("张量元素乘法结果:\n", e)

# 矩阵乘法
f = torch.mm(a, b)
print("张量矩阵乘法结果:\n", f)

输出:

1
2
3
4
5
6
张量元素乘法结果:
tensor([[ 5, 12],
[21, 32]])
张量矩阵乘法结果:
tensor([[19, 22],
[43, 50]])

3. 张量的转置

张量的转置是将行和列进行交换。可以使用torch.transpose.t()方法实现。

1
2
g = a.t()
print("张量转置结果:\n", g)

输出:

1
2
3
张量转置结果:
tensor([[1, 3],
[2, 4]])

4. 张量的连接

对于多个张量,可以使用torch.cat()函数进行连接。这里我们以沿着行和列进行连接为例。

1
2
3
4
5
6
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)

输出:

1
2
3
4
5
6
7
8
沿着行连接结果:
tensor([[ 1, 2],
[ 3, 4],
[ 9, 10],
[11, 12]])
沿着列连接结果:
tensor([[ 1, 2, 9, 10],
[ 3, 4, 11, 12]])

5. 张量的数值统计

PyTorch提供了多种函数以获取张量的统计信息,例如:求和,均值,方差等。

1
2
3
4
5
6
7
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)

输出:

1
2
3
张量的和: tensor(10)
张量的均值: tensor(2.5000)
张量的方差: tensor(1.1180)

总结

到此我们已经介绍了张量的基本操作,包括加法与减法、乘法与除法、转置、连接以及统计操作。这些操作是处理和分析数据的基础。在下一篇文章中,我们将讨论张量的索引与切片,帮助大家更灵活地操作张量。

希望本篇对你深入了解张量的基本操作有所帮助!如有疑问或者想了解更多内容,欢迎随时提问。

6 张量的基本操作

https://zglg.work/pytorch-zero/6/

作者

AI免费学习网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论