PyTorch中的`view()`函数有什么作用?

view()函数对张量x有什么作用?负值的含义是什么?

x = x.view(-1, 16 * 5 * 5)

回答:

view()函数重塑张量形状而不复制内存,类似于numpy的reshape()函数。

假设有一个包含16个元素的张量a

import torcha = torch.range(1, 16)

要将这个张量重塑为4 x 4的张量,可以使用:

a = a.view(4, 4)

现在a将是一个4 x 4的张量。*请注意,reshape后元素的总数需要保持不变。将张量a重塑为3 x 5的张量是不合适的。*

参数-1的含义是什么?

如果在某些情况下你不知道需要多少行,但确定了列数,你可以用-1来指定。(*请注意,这可以扩展到更多维度的张量。只有一个轴的值可以是-1*)。这是一种告诉库的方式:“给我一个具有这些列数的张量,你来计算需要多少行来实现这一点”。

这可以在这个模型定义代码中看到。在forward函数中的x = self.pool(F.relu(self.conv2(x)))这行之后,你将得到一个深度为16的特征图。你需要将它展平以提供给全连接层。因此,你告诉PyTorch将你得到的张量重塑为特定数量的列,并让它自己决定行数。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注