Bob*_*Bob 71 python torch pytorch
我无法理解PyTorch 文档中的示例如何对应于解释:
返回一个新的张量,其尺寸为 1,插入到指定位置。[...]
Run Code Online (Sandbox Code Playgroud)>>> x = torch.tensor([1, 2, 3, 4]) >>> torch.unsqueeze(x, 0) tensor([[ 1, 2, 3, 4]]) >>> torch.unsqueeze(x, 1) tensor([[ 1], [ 2], [ 3], [ 4]])
nor*_*ok2 65
如果您查看前后数组的形状,您会看到之前(4,)和之后(1, 4)(当第二个参数为 时0)和(4, 1)(当第二个参数为 时1)。因此,根据第二个参数的值,将a1插入到轴0或处的数组形状中1。
这与np.squeeze()删除大小轴1(单例)的(从 MATLAB 借用的命名法)相反。
小智 29
它指示添加尺寸的位置。torch.unsqueeze为张量增加一个额外的维度。
所以假设你有一个形状为 (3) 的张量,如果你在 0 位置添加一个维度,它将是形状 (1,3),这意味着 1 行和 3 列:
pro*_*sti 26
我不知道为什么这里没有提到 PyTorch 引用,因为这是 PyTorch 的遗产。
torch.squeeze(input, dim=None, *, out=None)? 张量返回一个张量,其中删除
input了大小为1 的所有维度。例如,如果输入的形状为:(A×1×B×C×1×D),则输出张量的形状为:(A×B×C×D)。
当
dim给定时,挤压操作只在给定的维度上进行。如果输入的形状为: (A×1×B) ,squeeze(input, 0)则保持张量不变,但squeeze(input, 1)会将张量压缩为形状 (A×B) 。
torch.unsqueeze(input, dim)? 张量返回一个新的张量,其尺寸为 1,插入到指定位置。
返回的张量与此张量共享相同的基础数据。
甲
dim的范围内的值[-input.dim() - 1, input.dim() + 1)可以被使用。负dim将对应于unsqueeze()应用在dim = dim + input.dim() + 1。
小智 8
unsqueeze是一种改变张量维度的方法,使得张量乘法等操作成为可能。这基本上改变了维度以产生具有不同维度的张量。
例如:如果你想将大小为 (4) 的张量与大小为(4, N, N)的张量相乘,那么你会得到一个错误。但是使用 unsqueeze 方法,您可以将张量转换为大小(4,1,1)。现在,由于它的操作数大小为 1,因此您将能够将两个张量相乘。
| 归档时间: |
|
| 查看次数: |
55508 次 |
| 最近记录: |