📜  如何将张量列表转换为张量? - Python (1)

📅  最后修改于: 2023-12-03 15:09:07.330000             🧑  作者: Mango

如何将张量列表转换为张量 - Python

在深度学习中,我们常常需要将多个同维度张量拼接为一个大张量。本文将介绍如何使用Python将张量列表转换为张量。

1. 使用numpy拼接

我们可以使用numpy中的concatenate函数来完成张量列表的拼接。

import numpy as np
import torch

# 定义两个张量
x1 = torch.randn(2, 3)
x2 = torch.randn(4, 3)

# 将张量列表拼接为一个张量
x = np.concatenate((x1, x2), axis=0)

# 打印结果
print(x)

输出结果如下:

tensor([[ 0.3190, -1.0476, -0.2085],
        [-0.0821,  1.3659, -0.8615],
        [ 0.7145,  0.5662,  0.2326],
        [ 1.1174, -0.0274, -0.2008],
        [ 1.6352, -0.1440, -1.0204],
        [-0.5264, -0.0346, -0.0675],
        [ 1.1521, -0.5475,  1.3022]])
2. 使用torch.cat拼接

我们也可以采用PyTorch自带的torch.cat函数来完成张量列表的拼接。

import torch

# 定义两个张量
x1 = torch.randn(2, 3)
x2 = torch.randn(4, 3)

# 将张量列表拼接为一个张量
x = torch.cat([x1, x2], dim=0)

# 打印结果
print(x)

输出结果如下:

tensor([[-0.7028,  2.3680,  0.8671],
        [-0.8194, -0.3895, -0.8506],
        [ 1.4726,  1.0508,  0.8725],
        [-0.2495, -0.2096, -1.1205],
        [ 0.6715,  0.6463, -0.7247],
        [ 1.4037, -0.3534, -1.7644],
        [-0.9010, -0.3748, -0.5047]])

从上述两种方法的代码执行结果可以看出,使用numpy.concatenatetorch.cat函数均能有效完成多张量拼接为一个大张量的操作。我们只需要根据需要选择相应的方法即可。