
我们继续学习张量的相关基础操作。
索引
这个依旧是和numpy差不多,我们简单看一些例子。

tensor.view方法可以返回一个类似视图的结果,是浅拷贝的关系,我们来看一下。

分片
chunk函数可以用来分块。
split函数既能进行均分,也能进行自定义切分。

合并
拼接函数cat,和堆叠函数stack。我们需要注意二者的区别,拼接的维度不变,堆叠之后维度升高。
go
a = torch.zeros(2,3)
b = torch.ones(2,3)
c = torch.cat([a,b])
d = torch.stack([a,b])
###
c:
tensor([[0., 0., 0.],
[0., 0., 0.],
[1., 1., 1.],
[1., 1., 1.]])
d:
tensor([[[0., 0., 0.],
[0., 0., 0.]],
[[1., 1., 1.],
[1., 1., 1.]]])
维度变换
此前我们介绍过,通过reshape方法,能够灵活调整张量的形状。而在实际操作张量进行计算时,往往需要另外进行降维和升维的操作,当我们需要除去不必要的维度时,可以使用squeeze函数,而需要手动升维时,则可采用unsqueeze函数。
squeeze删除不必要的维度,简单的说就是把shape中的1给剔除。

unsqueeze函数是手动升维度,可以指定在哪个维度上再升高一个维度。
