使用caffe-jacinto去训练一个网络时,定义网络的最后一层的卷积核为1*1,输出为1。训练时报错(附图),但是看官方例程的网络也有相似的结构,只是输出不一样,我是模仿官方结构的。请问问题出在哪儿?
训练报错:

官方相似结构(object detection的mobilenet结构),图中的conv3_1/sep和conv3_2/sep都是kernel为1*1,group都为1,但output channel和group是不匹配的。

本人网络最后部分:
layer {
name: "fu1_1/dw"
type: "Convolution"
bottom: "conv7_3"
top: "fu1_1/dw"
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
weight_filler {
type: "msra"
}
dilation: 1
}
}
layer {
name: "fu1_1/dw/bn"
type: "BatchNorm"
bottom: "fu1_1/dw"
top: "fu1_1/dw"
batch_norm_param {
scale_bias: true
}
}
layer {
name: "relu1_1/dw"
type: "ReLU"
bottom: "fu1_1/dw"
top: "fu1_1/dw"
}
layer {
name: "fu1_1/sep"
type: "Convolution"
bottom: "fu1_1/dw"
top: "fu1_1/sep"
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
dilation: 1
}
}
layer {
name: "fu1_1/sep/bn"
type: "BatchNorm"
bottom: "fu1_1/sep"
top: "fu1_1/sep"
batch_norm_param {
scale_bias: true
}
}
layer {
name: "relu1_1/sep"
type: "ReLU"
bottom: "fu1_1/sep"
top: "fu1_1/sep"
}
layer {
name: "fu1_2/dw"
type: "Convolution"
bottom: "fu1_1/sep"
top: "fu1_2/dw"
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
weight_filler {
type: "msra"
}
dilation: 1
}
}
layer {
name: "fu1_2/dw/bn"
type: "BatchNorm"
bottom: "fu1_2/dw"
top: "fu1_2/dw"
batch_norm_param {
scale_bias: true
}
}
layer {
name: "relu1_2/dw"
type: "ReLU"
bottom: "fu1_2/dw"
top: "fu1_2/dw"
}
layer {
name: "fu1_2/sep"
type: "Convolution"
bottom: "fu1_2/dw"
top: "estdmap"
convolution_param {
num_output: 1
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
dilation: 1
}
}
本人网络最后部分结构:
