张量的运算函数
2026/4/18 11:51:48 网站建设 项目流程

张量的基本运算函数

张量运算在深度学习和科学计算中至关重要。常见的张量运算函数包括加法、减法、乘法和除法。这些运算通常按元素进行,要求参与运算的张量具有相同的形状。

加法运算:

import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) c = a + b # 结果为 tensor([5, 7, 9])

乘法运算:

d = a * b # 结果为 tensor([4, 10, 18])

矩阵乘法运算

矩阵乘法是深度学习中的核心操作,使用matmul@运算符实现。矩阵乘法要求第一个张量的最后一维与第二个张量的倒数第二维匹配。

矩阵乘法示例:

x = torch.randn(3, 4) y = torch.randn(4, 5) z = torch.matmul(x, y) # 结果为 3x5 张量

批量矩阵乘法:

batch_x = torch.randn(10, 3, 4) batch_y = torch.randn(10, 4, 5) batch_z = torch.bmm(batch_x, batch_y) # 结果为 10x3x5 张量

张量缩减操作

缩减操作沿着指定维度对张量进行汇总计算,包括求和、求均值、最大值和最小值等。

求和运算:

t = torch.tensor([[1, 2], [3, 4]]) sum_all = torch.sum(t) # 结果为 10 sum_dim0 = torch.sum(t, dim=0) # 结果为 tensor([4, 6])

最大值运算:

max_val, max_idx = torch.max(t, dim=1) # 返回值和索引

张量变形操作

变形操作改变张量的形状而不改变其数据,包括viewreshapetranspose等。

改变形状:

t = torch.arange(6) t_reshaped = t.view(2, 3) # 变为 2x3 张量

转置操作:

t = torch.tensor([[1, 2], [3, 4]]) t_transposed = t.t() # 变为 2x2 转置矩阵

广播机制

广播机制允许不同形状的张量进行运算,较小的张量会自动扩展以匹配较大张量的形状。

广播示例:

a = torch.tensor([1, 2, 3]) b = torch.tensor([[0], [1], [2]]) c = a + b # b 广播为 3x3 张量

高级索引操作

高级索引允许复杂的数据选择和修改,包括布尔索引和整数数组索引。

布尔索引:

t = torch.tensor([1, 2, 3, 4]) mask = t > 2 selected = t[mask] # 结果为 tensor([3, 4])

整数数组索引:

t = torch.tensor([[1, 2], [3, 4]]) indices = torch.tensor([0, 1]) selected = t[indices, indices] # 结果为 tensor([1, 4])

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询