NumPy 或 PyTorch/TensorFlow 中的张量理解

(2, 2, 3) 形状的 3D 数组(或张量)的结构。

个人理解:
2个2维数组(张量),2维数组(张量)里面有2个1维向量(张量),1维向量(张量)里面有3个元素。
注:由于最后一个维度值3代表的是元素个数,左侧括号后的第1个2代表的是第n-1个[(中括号,即n-1维数组)的数量, 左侧括号后的第2个2代表的是第n-2个[(中括号,即n-2维数组)的数量。这段文字中,n代表的是数组的维度,这里是3维。

维度解析:

  • (2, 2, 3) 表示:
    1. 第1维(最外层)2 个样本(或批次)。
    2. 第2维(中间层):每个样本有 2 个时间步(或行)。
    3. 第3维(最内层):每个时间步有 3 个电压值(或列)。

可视化:

[
    # 样本1 (第1个2x3矩阵)
    [
        [12.5, 12.3, 12.4],  # 时间步1(第1个1x3向量)
        [12.6, 12.2, 12.5]    # 时间步2(第2个1x3向量)
    ],
    # 样本2 (第2个2x3矩阵)
    [
        [12.4, 12.1, 12.3],  # 时间步1(第1个1x3向量)
        [12.3, 12.0, 12.2]    # 时间步2(第2个1x3向量)
    ]
]

更直观的理解:

  • (2, 2, 3) 可以看作:
    • 2 个样本(比如 2 个电池的电压记录)。
    • 每个样本有 2 个时间步(比如 2 个时间点的测量)。
    • 每个时间步有 3 个电压值(比如 3 个传感器的读数)。

索引示例:

import numpy as np

data = np.array([
    [
        [12.5, 12.3, 12.4],
        [12.6, 12.2, 12.5]
    ],
    [
        [12.4, 12.1, 12.3],
        [12.3, 12.0, 12.2]
    ]
])

print(data.shape)  # (2, 2, 3)

# 访问第1个样本的第2个时间步的第3个电压值
print(data[0, 1, 2])  # 12.5

# 访问第2个样本的所有时间步的第1个电压值
print(data[1, :, 0])  # [12.4, 12.3]

总结:

  • (2, 2, 3) 不是 2个2维向量,而是 2个2x3矩阵(每个矩阵代表一个样本)。
  • 每个样本(2, 3) 矩阵(2 时间步 × 3 电压值)。
  • 每个时间步(3,) 向量(3 个电压值)。

你可能感兴趣的:(numpy,pytorch,tensorflow)