C语言实现矩阵卷积运算

直观的说卷积操作可以理解为——每次透过一个较小的“窗口”去覆盖被输入进来的大窗口中的某一部分所得出的结果。每次得出结果后小窗口就会根据步长滑动至下一个位置并重复这一计算过程,最终得到卷积后的输出矩阵结果。

卷积的计算过程可由下图直观说明。
在这里插入图片描述
必须注意的是,根据卷积的数学原理,上图中的3*3矩阵实际上是真正卷积核矩阵经逆时针旋转180度所得到的矩阵。再举一详细示例加以说明。
假设卷积核为:
在这里插入图片描述
待处理矩阵为:
在这里插入图片描述
则首先应该将卷积核逆时针旋转180度得到如下矩阵:
在这里插入图片描述
再将卷积核h的中心对准x的第一个元素,然后h和x重叠的元素相乘,h中不与x重叠的地方x用0代替,再将相乘后h对应的元素相加,得到结果矩阵中Y的第一个元素。比如结果矩阵中第一个数字即为下图所示的矩阵运算得出,结果为16。
在这里插入图片描述
值得注意的是矩阵卷积运算实际上分为三种不同的计算情况,将会导致卷积后的输出矩阵大小不同。说明如下。
1、same mode:即如上面所举例子中的重合方法,将卷积核的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值