如何将 N N N个 m ∗ n m*n m∗n的tensor合并成一个 N ∗ m ∗ n N*m*n N∗m∗n的tensor
在某些应用情景下,我们需要将很多大小相同的tensor合并在一起,形成一个新的tensor,那么如何将
N
N
N个
m
∗
n
m*n
m∗n的tensor合并成一个
N
∗
m
∗
n
N*m*n
N∗m∗n的tensor呢?要想实现这个功能,需要pytorch中的stack函数,pytorch官网上对此函数的说明如下所示:
描述非常简单,意思就是 将一系列size相同的tensor沿着一个新的维度连接在一起
以下将编写一个示例,将 4 4 4个 3 ∗ 3 3*3 3∗3的tensor堆叠在一起,形成一个 4 ∗ 3 ∗ 3 4*3*3 4∗3∗3的tensor
import torch
# 创建n个3x3的矩阵,假设n=4
matrices = [torch.randn(3, 3) for _ in range(4)]
# 使用列表推导式将所有矩阵堆叠在一起,形成一个nx3x3的tensor
tensor = torch.stack([matrix for matrix in matrices])
print(tensor)
这样最后就得到了堆叠之后的tensor,是不是很简单呢!