深度学习之物体检测(二)图像卷积的程序实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/crazyeden/article/details/83007171

首先用图来说明基本概念:

矩阵乘法的概念理解

在神经网络全连接的使用情况为:

此时,输出为K个神经元,每个神经元有一个输出,后接的全连接层,对每个神经元都有一个系数,又有n个这样的神经元,所以权值矩阵为k*n,输出为1*n维,则保证每个输出神经元都有一个输出。

在神经网络卷积的使用情况为:

输入有Depth维度,则卷积核也应该是depth维度。

图示为卷积的原理,每个卷积核逐个扫过输入数据,累加得到相应的输出。知道卷积计算的原理,但是怎么样在程序中进行高效的执行呢?使用了GEMM函数,通用矩阵乘法函数,把输入数据进行了转化,这里是输入×权值,把输入转化成了行,权值转化成了列,也可以反过来。

把输入数据对应需要做卷积的每一个块,都拉成矩阵的一行,把卷积核都拉成一列,利用矩阵乘法完成卷积计算。然后再按照输出图像的要求,把得到的结果矩阵还原成要求的图像大小。

单通道输入进行如下处理:

此时卷积核也是单通道,直接拉成一个行向量即可。

如果是多通道,首先卷积核按照通道拉成一个一维行向量,三个通道排成一行,对于输入也是按照通道,排成一个大矩阵,如下:

 根据矩阵乘法得到的矩阵还原成输出。

 

 

 

阅读更多
换一批

没有更多推荐了,返回首页