📅  最后修改于: 2023-12-03 15:09:07.330000             🧑  作者: Mango
在深度学习中,我们常常需要将多个同维度张量拼接为一个大张量。本文将介绍如何使用Python将张量列表转换为张量。
我们可以使用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]])
我们也可以采用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.concatenate
和torch.cat
函数均能有效完成多张量拼接为一个大张量的操作。我们只需要根据需要选择相应的方法即可。