引言:在很多的深度学习网络都需要用到特征融合,尤其是残差网络,典型的融合结构,但是如何实现呢?不着急,torch给我们提供了丰富的函数库,下面我们一起来看看吧!!!。
1.torch.cat()函数
此函数主要用于将两个或者多个维度相同的数组进行有机融合。
例如:
import torch data1=torch.tensor([1,2,5,6]) data2=torch.tensor([2,5,9,3]) data=torch.cat((data1,data2),0) print(data)
output:
tensor([1, 2, 5, 6, 2, 5, 9, 3])
tensor([1, 2, 5, 6, 2, 5, 9, 3])解释:原因在于data1,data2都是一维数据,所以只有一个维度,所以只能在一维度上进行融合(连接)。(二维张量数据同理,只能在两个维度上融合)
2.torch.stack()函数
例子:
import torch data1=torch.tensor([1,2,5,6]) data2=torch.tensor([2,5,9,3]) data=torch.stack((data1,data2),0) print(data) data3=torch.stack((data1,data2),-1) print(data3)
output:
tensor([[1, 2, 5, 6],
[2, 5, 9, 3]])
tensor([[1, 2],
[2, 5],
[5, 9],
[6, 3]])解释:为什么呢?这是因为torch.stack函数类似于这篇文章所讲的一样,他是扩张一个维度,然后放入。(n维数据可以在n+1个维度上堆叠)
3.总结:
两个1*5的张量数据
使用torch.cat()函数:1*10的张量 ;tensor([1,10])
使用torch.stack()函数:2*1*5 / 5*1*2 ; 的张量tensor([2,5]) , tensor([5,2])
#
4.重要的是=结束。
GAME OVER
如果理解错误,欢迎大家批评,及时纠正小琼的错误哦,真心感谢你的纠正!!!
如果小伙伴梦有疑问欢迎在评论区留言哦!!!
如果感觉不错的话!点个赞呗,不用客气!(O(∩_∩)O哈哈~)
欢迎和小伙伴梦一起学习,共同努力,加油!!!
转载链接:
https://blog.csdn.net/m0_56654441/article/details/120853378