数据结构论坛

首页 » 分类 » 分类 » 深度学习基础深度学习卷积讲解及代码实
TUhjnbcbe - 2024/8/7 17:00:00
北京治疗白癜风哪家的好 https://m.39.net/disease/a_m7kpmsm.html

卷积是深度学习中最重要的运算,对于初学者,或者自学者来说,看书看得真是很迷糊。我也是经历了这个阶段,所以在这里分享一下我对卷积的理解,并且附上自己手撸的C++代码。

深度学习的卷积和信号与系统的卷积是截然不同的!

所以学通信的小伙伴千万不要被名词误导了。

01单通道卷积

单通道卷积

如上所示,对于一个卷积操作,输入就是待卷积的图像image,卷积核就是filter,得到的最终结果就是featuremap,这些英文的专属名词还是要知道的。

卷积过程就是卷积核在输入图像上滑动计算得到输出,滑动时对应点相乘,然后得到的结果相加,就是输出对应点的值,公式如下所示。

卷积公式

02多通道卷积

多通道的卷积是很多人不能理解的地方。

32x32x32的输入图像和3x3x64得kernel卷积,得到的输出为啥会是32x32x64(padding=‘SAME’的情况),怎么计算的呢?

说白了一点不复杂,对于64个3x3的kernel,我编号为k0,k2……k63。

输入图像为32个32x32的图像,我编号为a0,a1……a31。

那么计算的时候就是这样的:

k0和a0卷积,这个过程上面讲过,得到输出b0;以此类推,k0和a0~a31相乘得到b0~b31,那么将b0~b31对应的位置加起来,得到一个32x32的卷积图,我们称为c0;以此类推,将k1~k63分别于a0~a31计算一次,得到c1~c63,加上前面的c0,可不就是一个32x32x64得featuremap。Featuremap意为特征图,这个是专有名词,需要知道哦。

多通道卷积

如果文字你明白了的话,上面这幅图,嫌那么多就不要纠结了,能看懂最好了。

03卷积计算C++实现

C++实现卷积

这里需要用到Eigen的库,tensorflow也是这么做的。

我将与您分享AI算法面试所需的准备知识。实际上,这不仅限于深度学习和计算机视觉,还包括模型算法原理,模型训练,模型转换优化,模型部署和深度学习框架。此外,还有C++,数据结构和编译底层等。

欢迎大家的

1
查看完整版本: 深度学习基础深度学习卷积讲解及代码实