我很难理解以下两者之间的差异:
x1 = torch.tensor([1, 2, 3]) # single brackets
x2 = torch.tensor([[1, 2, 3]]) # double brackets
检查尺寸时:
x1.size()
和{
torch.Size([3])
torch.Size([1, 3])
我将其解释为x1
是(3x1)列向量,而x2
是(1x3)行向量
但是,当尝试转置两个向量时:
print(x1.T)
print(x2.T)
,我们得到:
tensor([1, 2, 3])
tensor([[1],
[2],
[3]])
x1
似乎不受转位的影响?
此外,当尝试使用“.view()”强制x1
成为(1x3)行向量时:
print(x1.view(1, -1))
我们得到:
tensor([[1, 2, 3]]) # double brackets
那么为什么“.T”没有做到这一点,但是“.view(1,-1)”能够将x1
转换成(1x3)行向量呢
当我们第一次分配它时,它到底是什么
根据official documentation-
这就是
x1
没有效果的原因。它现在是一维张量,而不是二维张量。(3,)
和(3,1)
的形状之间存在差异。第一个轴只有一个轴,而另一个轴有两个轴(类似于您添加的双括号)这句话在某种程度上是不正确的
相关问题 更多 >
编程相关推荐