二维张量(矩阵):

假设你有一个形状为 [m, n] 的二维张量(可以想象成一个矩阵,有 m 行和 n 列):

  • dim=0 指的是行的方向(从上到下)。如果你在一个函数中指定 dim=0,那么操作将沿着每一列进行,对每一列中的行元素进行处理。
  • dim=1 指的是列的方向(从左到右)。如果你在一个函数中指定 dim=1,那么操作将沿着每一行进行,对每一行中的列元素进行处理。

例如,在一个 [m, n] 的矩阵中使用 torch.max(tensor, dim=0),会返回每列的最大值以及这些最大值的索引,结果是两个 [n] 形状的一维张量。使用 torch.max(tensor, dim=1),会返回每行的最大值以及索引,结果同样是两个 [m] 形状的一维张量。

 

三维张量:

对于一个形状为 [p, q, r] 的三维张量:

  • dim=0 指的是第一个维度,这在某些上下文中可以代表不同的样本或批次。【减小成一个样本】
  • dim=1 指的是第二个维度,这可以代表时间步长(在序列数据中)或是特定样本中的特征或子序列。【每个样本中,只保留横轴】
  • dim=2 则是第三个维度,通常代表每个时间步长的特征向量。【每个样本中,只保留列轴】

在三维张量中使用 torch.max(tensor, dim=0) 会沿着第一个维度找到最大值,例如在一个形状为 [p, q, r] 的张量中,它会返回一个形状为 [q, r] 的二维张量,代表沿第一个维度(每个 [q, r] 面)的最大值。使用 torch.max(tensor, dim=1) 则会返回一个形状为 [p, r] 的二维张量,代表沿第二个维度(每个 [p, r] 面)的最大值。

 



posted on 2023-11-28 17:17  黑逍逍  阅读(11)  评论(0编辑  收藏  举报