- A+
所属分类:随笔创作
专栏限时打折

专栏每天五分钟玩转人工智能PyTorch作者:幻风的AI之路26.6币78人已购查看

专栏每天五分钟快速玩转深度学习算法作者:幻风的AI之路29.9币564人已购查看
正文
在机器学习编程的过程中,我们常常使用向量,而且最主要的就是使用向量的拼接,分割等等几种方式,本文对其进行详细的讲解。
Cat拼接
c=torch.cat([a,b],dim=0)表示将a和b按0维度进行拼接
需要注意再非dim维度,两个矩阵的维度必须是一致的
stack拼接
Stack并不会进行维度的拼接,而是会增加新的维度
我们可以看到将a和b在dim=0的维度进行stack,那么并不会将dim=0的16加起来组成32,3,28,28,而是会增加一个新的维度2,这是与cat不一样的地方。
注意stack的两个列表必须在所有维度上都一样大小,如果不一样大小则会出错
Split切割
有两种方式,一种方式是平均切割b,c=a.split(8,dim=0)这个表示将a在dim=0的维度上进行切割,每份为8,那么一共16,也就是说相当于切割为两份
还有一种切割方式是b,c=a.split([1,15],dim=0),直接指明切割的情况,本例中为在dim=0维度上切割两份,一份为1,另外一份为1
还有一个chunk也是切割的意思,但是它和split是相反的
b,c=a.chunk(2,dim=0)表示将a从0维度上切分为两份,这样每份就是8了