使用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 } }
本人网络最后部分结构: