我在 PyTorch 中看到过这种用于索引张量的语法,但不确定它的含义:
v = torch.div(t, n[:, None])
where v
, t
, and n
是张量。
“的作用是什么?None
“在这里?我在文档中似乎找不到它。
与 NumPy 类似,您可以插入单个维度(“松开”一个维度)通过索引这个维度None
。反过来n[:, None]
将产生插入新尺寸的效果dim=1
。这相当于n.unsqueeze(dim=1)
:
>>> n = torch.rand(3, 100, 100)
>>> n[:, None].shape
(3, 1, 100, 100)
>>> n.unsqueeze(1).shape
(3, 1, 100, 100)
以下是一些其他类型的None
索引.
在上面的例子中:
被用作占位符来指定第一个维度dim=0
。如果您想插入尺寸dim=2
,您可以添加第二个:
as n[:, :, None]
.
你也可以place None
相反,相对于最后一个维度。为此,您可以使用ellipsis syntax ...
:
-
n[..., None]
最后将插入一个尺寸,i.e. n.unsqueeze(dim=-1)
.
-
n[..., None, :]
在前最后一个维度上,i.e. n.unsqueeze(dim=-2)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)