卷积神经网络中的卷积核(或者叫过滤器)
(2017-02-15 10:00:22)| 分类: 神经网络 |
链接:https://www.zhihu.com/question/34729519
来源:知乎
通常是随机初始化再用BP算梯度做训练。如果数据少或者没有labeled
data的话也可以考虑用K-means的K个中心点,逐层做初始化。
来源:知乎
如果是卷积层输出4个feature
map,那么它就有4个卷积核。
对于卷积层里面的卷积核,你能定义的其实有卷积核的kernel_size,也就是kernel_width和kernel_height,然后num_output就是输出的feature map个数。还有一个数字其实也跟卷积核有关,如果你不了解卷积的话,可能这个不太好理解,就是这个卷积层的输入的channel数量...
总的来说,决定卷积层里面卷积核的参数数量的数字总共有4个:num_output, num_channel, kernel_height, kernel_width。其中,num_channel是由这个卷积层的输入来决定的,其他三个是我们能定义的。
===================== 卷积核的元素数量 =====================
按你所说,卷积层有4个输出feature map,所以它有4个卷积核,这个对应前面说的num_output
假设你这个卷积层的每个输入样本有10个channel,那么这里每个卷积核都有10个channel,卷积核的第1个channel与输入样本的第1个channel做卷积,卷积核的第2个channel与输入样本的第2个channel做卷积...以此类推...
接下来就是每个channel做卷积时,卷积核的大小了(也就是kernel_height和kernel_width)...这个卷积过程就跟你从网上随便找到的那种卷积神经网络的二维矩阵做卷积的过程一样了...(PS:实际上是做的是图像处理里面说的相关计算,只不过由于参数值是学习来的,旋不旋转其实是一样的...只要保持训练和测试的时候都不旋转就好了...)
===================== 卷积核的内容 =====================
最后就是卷积核里面的每个元素的具体值了,也就是一般说的卷积的参数值,这些一个个的值就不是人工定义的了,而是通过网络来学习到的...
对于卷积层里面的卷积核,你能定义的其实有卷积核的kernel_size,也就是kernel_width和kernel_height,然后num_output就是输出的feature map个数。还有一个数字其实也跟卷积核有关,如果你不了解卷积的话,可能这个不太好理解,就是这个卷积层的输入的channel数量...
总的来说,决定卷积层里面卷积核的参数数量的数字总共有4个:num_output, num_channel, kernel_height, kernel_width。其中,num_channel是由这个卷积层的输入来决定的,其他三个是我们能定义的。
===================== 卷积核的元素数量 =====================
按你所说,卷积层有4个输出feature map,所以它有4个卷积核,这个对应前面说的num_output
假设你这个卷积层的每个输入样本有10个channel,那么这里每个卷积核都有10个channel,卷积核的第1个channel与输入样本的第1个channel做卷积,卷积核的第2个channel与输入样本的第2个channel做卷积...以此类推...
接下来就是每个channel做卷积时,卷积核的大小了(也就是kernel_height和kernel_width)...这个卷积过程就跟你从网上随便找到的那种卷积神经网络的二维矩阵做卷积的过程一样了...(PS:实际上是做的是图像处理里面说的相关计算,只不过由于参数值是学习来的,旋不旋转其实是一样的...只要保持训练和测试的时候都不旋转就好了...)
===================== 卷积核的内容 =====================
最后就是卷积核里面的每个元素的具体值了,也就是一般说的卷积的参数值,这些一个个的值就不是人工定义的了,而是通过网络来学习到的...

加载中…