从 Trained caffenet 中提取权重后感到困惑
Got confused after I extracted weights from Trained caffenet
所以基本上这是经过训练的 caffenet 的权重维度:
conv1: (96,3,11,11)
conv2: (256,48,5,5)
转换 3:(384,256,3,3)
conv4: (384,192,3,3)
conv5:(256, 192, 3 , 3)
我很困惑,虽然 conv1 给出了 96 个通道作为输出,但为什么 conv2 在卷积时只考虑 48 个通道?我错过了什么吗?
是的,您错过了参数 'group'。给定conv2层中定义的convolution_parambelow.You可以发现参数组设置为2因为对卷积层进行分组可以节省gpu内存。
convolution_param {
num_output: 256
pad: 2
kernel_size: 5
group: 2
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 1
}
所以基本上这是经过训练的 caffenet 的权重维度:
conv1: (96,3,11,11) conv2: (256,48,5,5) 转换 3:(384,256,3,3) conv4: (384,192,3,3) conv5:(256, 192, 3 , 3)
我很困惑,虽然 conv1 给出了 96 个通道作为输出,但为什么 conv2 在卷积时只考虑 48 个通道?我错过了什么吗?
是的,您错过了参数 'group'。给定conv2层中定义的convolution_parambelow.You可以发现参数组设置为2因为对卷积层进行分组可以节省gpu内存。
convolution_param {
num_output: 256
pad: 2
kernel_size: 5
group: 2
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 1
}