Tensor 的组合与分块
组合与分块是将 Tensor 相互叠加或者分开
# 创建两个 2 x 2 的 Tensor
# 以第一维进行拼接,则变成 4 x 2 的矩阵
# 以第二维进行拼接,则变成 2 x 4 的矩阵
# 以第 0 维进行 stcak, 叠加的基本单位为序列本身, 则 a 与 b, 则因此输出 [a, b], 输出维度为 2 x 2 x 2
# 以第 1 维进行 stcak, 叠加的基本单位为每一行, 输出维度为 2 x 2 x 2
# 以第 2 维进行 stcak, 叠加的基本单位为每一行的每一个元素, 输出维度为 2 x 2 x 2
分块则是与组合相反的操作,指将 Tensor 分割成不同的子 Tensor
# 使用 chunk, 沿着第 0 维度进行分块,一共分两块, 因此分割成两个 1 x 3 的 Tensor
# 沿着第 1 维进行分块, 因此分割成两个 tensor, 当不能整除时, 最后一个的维度数会小于前面的因此第一个 Tensor 为 2 x 2, 第二个为 2 x 1
# 使用 split, 沿着第 0 维度分块, 每一块维度为 2, 由于第一维维度总共为 2, 因此相当于没有分割
# 使用 split, 沿着第 1 维度分块, 每一块维度为 2, 因此第一个 tensor 为 2 x 2 , 第二个为2 x 1
# split 也可以根据输入的 list 进行自动分块, list 中的元素代表了每一个块占的维度