我是caffe的新人,我训练了一个带有64个7x7特征图的渐进神经网络,当我得到一个滤波器的权重y得到一个7x7矩阵。然而,我的第二层有32个3x3的特征映射,当我得到任何滤波器的权重时,我得到了第二层的任何滤波器的3×3矩阵的3x3内核。 有人知道为什么吗?
答案 0 :(得分:1)
TL; DR:
卷积层的过滤器必须与数量相匹配 该层输入的通道。
因此,假设您的网络接收3通道彩色图像(例如RGB),尺寸为128x128(高度和宽度为128像素)作为输入。因此,第一个卷积层的输入(我们称之为 conv1 )将是 3x128x128 (通道x宽x高)。
现在假设 conv1 有64个大小为7x7的过滤器。为了处理来自输入的所有值,单个过滤器必须与馈送到该层的输入通道的数量匹配(否则在卷积期间不会考虑某些通道)。所以它也必须是3通道滤波器,最后,我们将为 conv1 设置64个尺寸为3x7x7的滤波器。
Conv1将输出尺寸 64x128x128 的图(滤镜数X权重X高度)。如果您不清楚,请查看this demo [1]。
然后来自下一个转换层( conv2 )的过滤器也必须匹配它们的尺寸以匹配输出。例如,32个大小为64x5x5的过滤器(对于空间维度为5x5的过滤器)。等等...
(为了简单起见,我们假设在卷积之前对输入进行零填充。零填充是我们对输入映射进行零的“边界”。这意味着空间维度,即宽度和高度不会改变。如果没有填充,那么输出将小于输入。例如,对于输入尺寸为128x128的7x7滤波器,输出最终将具有125x125的尺寸。这种空间尺寸的减小是等于 楼层(filter_size / 2) )
[1] CS231n Convolutional Neural Networks for Visual Recognition