📜  pytorch 张量加一维 - Python (1)

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

PyTorch 张量加一维 - Python

在使用 PyTorch 进行深度学习开发时,经常需要对张量进行加一维操作。这种操作在数据处理、神经网络训练、图像处理等领域都非常常见。

方法一:使用 PyTorch 中的 unsqueeze()

在 PyTorch 中,可以使用 unsqueeze() 函数在指定位置对张量进行加一维操作。

import torch

# 创建一个 2x3 的张量
tensor1 = torch.tensor([[1, 2, 3], [4, 5, 6]])
print("原始张量:")
print(tensor1)

# 在第二个维度上加一维
tensor2 = tensor1.unsqueeze(1)
print("处理后的张量:")
print(tensor2)

输出结果为:

原始张量:
tensor([[1, 2, 3],
        [4, 5, 6]])
处理后的张量:
tensor([[[1, 2, 3]],

        [[4, 5, 6]]])

可以看到,处理后的张量在第二个维度上加了一维,变成了一个三维张量。

方法二:使用 PyTorch 中的 view()

另外一种常用的方法是使用 PyTorch 中的 view() 函数进行张量维度变换。在这种方法中,需要指定变换后的张量形状,同时使用 -1 表示由函数自动进行计算。

import torch

# 创建一个 2x3 的张量
tensor1 = torch.tensor([[1, 2, 3], [4, 5, 6]])
print("原始张量:")
print(tensor1)

# 使用 view() 在第二个维度上加一维
tensor2 = tensor1.view(2, 1, -1)
print("处理后的张量:")
print(tensor2)

输出结果为:

原始张量:
tensor([[1, 2, 3],
        [4, 5, 6]])
处理后的张量:
tensor([[[1, 2, 3]],

        [[4, 5, 6]]])

这种方法的使用与 unsqueeze() 函数类似,但是更加灵活,可以适用于各种张量形状的变换操作。

总结

在 PyTorch 中进行张量加一维操作,可以使用 unsqueeze() 或者 view() 函数。这两种方法的使用非常简单,可以根据实际需求灵活选择。