概述
torch.cat()函数
将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起。
def cat(tensors: List[torch.Tensor], dim: int = 0)
C = torch.cat( (A,B),0 ) #按维数0拼接(竖着拼)(dim=0)
C = torch.cat( (A,B),1 ) #按维数1拼接(横着拼)(dim=1)
torch.stack()函数
这两者的区别在于torch.cat沿着给定的维度拼接,而torch.stack会新增一维。
A = torch.IntTensor([[1,2,3],[11,22,33]])
B = torch.IntTensor([[4,5,6],[44,55,66]])
C = torch.stack([A,B],dim=0)
D = torch.stack([A,B],dim=1)
E = torch.stack([A,B],dim=2)
print('nA:',A ,'nB:',B,'nC:',C,'nD:',D,'nE:',E)
-------------结果-------------------
A: tensor([[ 1, 2, 3],
[11, 22, 33]], dtype=torch.int32)
# size:2*3
B: tensor([[ 4, 5, 6],
[44, 55, 66]], dtype=torch.int32)
# size:2*3
C: tensor([[[ 1, 2, 3],
[11, 22, 33]],
[[ 4, 5, 6],
[44, 55, 66]]], dtype=torch.int32)
# size: 2*2*3
D: tensor([[[ 1, 2, 3],
[ 4, 5, 6]],
[[11, 22, 33],
[44, 55, 66]]], dtype=torch.int32)
# size: 2*2*3
E: tensor([[[ 1, 4],
[ 2, 5],
[ 3, 6]],
[[11, 44],
[22, 55],
[33, 66]]], dtype=torch.int32)
# size: 2*3*2
————————————————
版权声明:示例为CSDN博主「沐风大大」的原创文章,
原文链接:https://blog.csdn.net/weixin_42621901/article/details/109103604
numel()函数:返回数组中元素的个数
所谓三维(3D)数据,是指数据包含了现实三维场景中完整的几何信息的数据,与我们熟悉的二维数据相比,由于3D数据带有深度信息,因此它也成为了实现高精度识别、定位、重建、场景理解等机器视觉的关键。
SENet:
Sequeeze:顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野。具体操作就是对原特征图C * W * H 进行global average pooling,然后得到了一个 1 * 1 * C 大小的特征图,这个特征图具有全局感受野。
Excitation :输出的1x1xC特征图,再经过两个全连接神经网络,最后用一个类似于循环神经网络中门的机制。通过参数来为每个特征通道生成权重,其中参数被学习用来显式地建模特征通道间的相关性(论文中使用的是sigmoid)(原文链接:https://blog.csdn.net/qq_35451572/article/details/106620086)
一种称为scSE(Concurrent Spatial and Channel `Squeeze & Excitation’) block的神经网络,它可以应用在CNN的任意层,用于增强CNN编码空间信息(spatial encoding)能力,提高CNN的图像识别能力。
最后
以上就是愉快发箍为你收集整理的2021.08.22学习内容torch.cat()和torch.stack()函数的全部内容,希望文章能够帮你解决2021.08.22学习内容torch.cat()和torch.stack()函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复