使用冒号时,None在第几位,就在那一维上扩展一个维度;如果要扩展多个维度,把冒号视作原始维度,None插入所需的位置即可,最后一个None后面的冒号可以省略不写。
使用省略号,在最后一维扩展维度。
t = torch.tensor([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) # (2,2,3)
t1 = t[None] # (1,2,2,3)
t2 = t[:, None] # (2,1,2,3)
t3 = t[:, :, None] # (2,2,1,3)
t4 = t[:, :, :, None] # (2,2,3,1)
tt1 = t[:, :, None, :, None] # (2,2,1,3,1)
tt2 = t[:, :, None, None] # (2,2,1,1,3)
t5 = t[..., None] # (2,2,3,1)
tt3 = t[..., None, None] # (2,2,3,1,1)