Jupyter AI

6 Pytorch小白从零学教程系列:张量的基本操作

📅发表日期: 2024-08-10

🏷️分类: Pytorch小白

👁️阅读次数: 0

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

张量的基本操作

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

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

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)

总结

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

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

💬 评论

暂无评论