unsqueeze(1)有什么用并举例
时间: 2024-05-03 22:21:15 浏览: 31
什么是SPI总线模块,请说明并举例如何使用
unsqueeze(1)可以将一维数组或向量转换为二维数组或矩阵,并在第一维度上添加一个维度。这通常用于将一个向量转换为一个单列矩阵,以便进行矩阵乘法或其他相似的操作。
例如,对于以下一维张量:
```
import torch
a = torch.tensor([1, 2, 3, 4])
```
我们可以使用unsqueeze(1)将其转换为一个二维张量:
```
b = a.unsqueeze(1)
print(b)
```
输出:
```
tensor([[1],
[2],
[3],
[4]])
```
可以看到,向量a变成了一个4x1的矩阵,其中第一维度为4,第二维度为1。这可以很方便地用于矩阵乘法,例如:
```
c = torch.tensor([[1, 2, 3], [4, 5, 6]])
d = torch.matmul(b, c)
print(d)
```
输出:
```
tensor([[ 1, 2, 3],
[ 8, 10, 12],
[ 9, 12, 15],
[16, 20, 24]])
```
可以看到,d是一个4x3的矩阵,其中每行都是向量a与矩阵c的乘积。这只是unsqueeze(1)的一个示例用法,它还有其他许多用途。
阅读全文