nn.Conv1d和nn.Conv2d理解

参考链接:

https://blog.csdn.net/sunny_xsc1994/article/details/82969867

https://www.cnblogs.com/lovephysics/p/7220111.html

这里只做理解,不放官方文档。

1.nn.Conv1d
感觉一张图就可以理解,不得不说这个图真的太好了。图片来源:https://zhuanlan.zhihu.com/p/29201491

所谓一维卷积,就是卷积时只看纵列。初始:7乘5 卷积核:三种大小,分别为2*5、3*5、4*5,每种两个。重点是卷积时,只在纵列一个方向上滑动。这里stride为1,所以输出(n+2p-f)/s+1,padding为0,所以输出分别是{(7-2)/1 +1=6乘(5-5)/1+1=1},(5*1),4*1。经过一个卷积核大小为4的max_pooling,变成1个值。最后获得6个值,进行拼接,在经过一个全连接层,输出2个类别的概率。

2.nn.Conv2d
官方说明,给定一个4维的input和filter tensor,计算一个二维卷积。所谓二维计算就是横向和纵向均卷积。

举个例子:例子来源:https://www.cnblogs.com/lovephysics/p/7220111.html

输入和核如下,没有padding,stride=1

输出为:将卷积核对应在input上,第一行对应算完,再算第二行,不清楚的,可以动手写一下。

14 = 4 * 1 + 3 * 0 + 1 * 1 + 2 * 2 + 1 * 1 + 0 * 0 + 1 * 0 + 2 * 0 + 4 * 1
6 = 3 * 1 + 1 * 0 + 0 * 1 + 1 * 2 + 0 * 1 + 1 * 0 + 2 * 0 + 4 * 0 + 1 * 1
6 = 2 * 1 + 1 * 0 + 0 * 1 + 1 * 2 + 2 * 1 + 4 * 0 + 3 * 0 + 1 * 0 + 0 * 1
12 = 1 * 1 + 0 * 0 + 1 * 1 + 2 * 2 + 4 * 1 + 1 * 0 + 1 * 0 + 0 * 0 + 2 * 1
当然这只是我的个人理解,如果有问题,可以下方留言,共同讨论。
————————————————
版权声明:本文为CSDN博主「Elva_23」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Elva_23/article/details/83826587

原文地址:https://www.cnblogs.com/yibeimingyue/p/15135523.html