hszhao / ICNet

ICNet for Real-Time Semantic Segmentation on High-Resolution Images, ECCV2018
https://hszhao.github.io/projects/icnet
607 stars 199 forks source link

how to train or finetune #19

Open gjtjx opened 6 years ago

gjtjx commented 6 years ago

any help? name: "ICNet"

layer { name: "data" type: "ImageSegData" top: "data" top: "label"

top: "data_dim"

include { phase: TRAIN } transform_param { mirror: true crop_width: 2049 crop_height: 1025 mean_value: 104.008 mean_value: 116.669 mean_value: 122.675 scale_factors: 0.5 scale_factors: 0.75 scale_factors: 1 scale_factors: 1.25 scale_factors: 1.5 scale_factors: 1.75 scale_factors: 2.0 seg_class_num: 7 } image_data_param {

root_folder: "/home/rcvlab/workspace/caffe-seg/pspnet/"

source: "/home/train_list.txt"
batch_size: 2
is_color: true
new_height: 1160
new_width: 2312
shuffle: true
label_type: PIXEL

} }

layer { name: "data_sub1" type: "Scale" bottom: "data" top: "data_sub1" }

layer { name: "data_sub2" type: "Interp" bottom: "data_sub1" top: "data_sub2" interp_param { shrink_factor: 2 } }

NETWORK

layer { name: "conv1_1_3x3_s2" type: "Convolution" bottom: "data_sub2" top: "conv1_1_3x3_s2" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv1_1_3x3_s2/bn" type: "BN" bottom: "conv1_1_3x3_s2" top: "conv1_1_3x3_s2" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv1_1_3x3_s2/relu" type: "ReLU" bottom: "conv1_1_3x3_s2" top: "conv1_1_3x3_s2" } layer { name: "conv1_2_3x3" type: "Convolution" bottom: "conv1_1_3x3_s2" top: "conv1_2_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv1_2_3x3/bn" type: "BN" bottom: "conv1_2_3x3" top: "conv1_2_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv1_2_3x3/relu" type: "ReLU" bottom: "conv1_2_3x3" top: "conv1_2_3x3" } layer { name: "conv1_3_3x3" type: "Convolution" bottom: "conv1_2_3x3" top: "conv1_3_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv1_3_3x3/bn" type: "BN" bottom: "conv1_3_3x3" top: "conv1_3_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv1_3_3x3/relu" type: "ReLU" bottom: "conv1_3_3x3" top: "conv1_3_3x3" } layer { name: "pool1_3x3_s2" type: "Pooling" bottom: "conv1_3_3x3" top: "pool1_3x3_s2" pooling_param { pool: MAX kernel_size: 3 stride: 2 pad: 1 } } layer { name: "conv2_1_1x1_reduce" type: "Convolution" bottom: "pool1_3x3_s2" top: "conv2_1_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_1_1x1_reduce/bn" type: "BN" bottom: "conv2_1_1x1_reduce" top: "conv2_1_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_1_1x1_reduce/relu" type: "ReLU" bottom: "conv2_1_1x1_reduce" top: "conv2_1_1x1_reduce" } layer { name: "conv2_1_3x3" type: "Convolution" bottom: "conv2_1_1x1_reduce" top: "conv2_1_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_1_3x3/bn" type: "BN" bottom: "conv2_1_3x3" top: "conv2_1_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_1_3x3/relu" type: "ReLU" bottom: "conv2_1_3x3" top: "conv2_1_3x3" } layer { name: "conv2_1_1x1_increase" type: "Convolution" bottom: "conv2_1_3x3" top: "conv2_1_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_1_1x1_increase/bn" type: "BN" bottom: "conv2_1_1x1_increase" top: "conv2_1_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_1_1x1_proj" type: "Convolution" bottom: "pool1_3x3_s2" top: "conv2_1_1x1_proj" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_1_1x1_proj/bn" type: "BN" bottom: "conv2_1_1x1_proj" top: "conv2_1_1x1_proj" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_1" type: "Eltwise" bottom: "conv2_1_1x1_proj" bottom: "conv2_1_1x1_increase" top: "conv2_1" eltwise_param { operation: SUM } } layer { name: "conv2_1/relu" type: "ReLU" bottom: "conv2_1" top: "conv2_1" } layer { name: "conv2_2_1x1_reduce" type: "Convolution" bottom: "conv2_1" top: "conv2_2_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_2_1x1_reduce/bn" type: "BN" bottom: "conv2_2_1x1_reduce" top: "conv2_2_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_2_1x1_reduce/relu" type: "ReLU" bottom: "conv2_2_1x1_reduce" top: "conv2_2_1x1_reduce" } layer { name: "conv2_2_3x3" type: "Convolution" bottom: "conv2_2_1x1_reduce" top: "conv2_2_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_2_3x3/bn" type: "BN" bottom: "conv2_2_3x3" top: "conv2_2_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_2_3x3/relu" type: "ReLU" bottom: "conv2_2_3x3" top: "conv2_2_3x3" } layer { name: "conv2_2_1x1_increase" type: "Convolution" bottom: "conv2_2_3x3" top: "conv2_2_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_2_1x1_increase/bn" type: "BN" bottom: "conv2_2_1x1_increase" top: "conv2_2_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_2" type: "Eltwise" bottom: "conv2_1" bottom: "conv2_2_1x1_increase" top: "conv2_2" eltwise_param { operation: SUM } } layer { name: "conv2_2/relu" type: "ReLU" bottom: "conv2_2" top: "conv2_2" } layer { name: "conv2_3_1x1_reduce" type: "Convolution" bottom: "conv2_2" top: "conv2_3_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_3_1x1_reduce/bn" type: "BN" bottom: "conv2_3_1x1_reduce" top: "conv2_3_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_3_1x1_reduce/relu" type: "ReLU" bottom: "conv2_3_1x1_reduce" top: "conv2_3_1x1_reduce" } layer { name: "conv2_3_3x3" type: "Convolution" bottom: "conv2_3_1x1_reduce" top: "conv2_3_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_3_3x3/bn" type: "BN" bottom: "conv2_3_3x3" top: "conv2_3_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_3_3x3/relu" type: "ReLU" bottom: "conv2_3_3x3" top: "conv2_3_3x3" } layer { name: "conv2_3_1x1_increase" type: "Convolution" bottom: "conv2_3_3x3" top: "conv2_3_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_3_1x1_increase/bn" type: "BN" bottom: "conv2_3_1x1_increase" top: "conv2_3_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_3" type: "Eltwise" bottom: "conv2_2" bottom: "conv2_3_1x1_increase" top: "conv2_3" eltwise_param { operation: SUM } } layer { name: "conv2_3/relu" type: "ReLU" bottom: "conv2_3" top: "conv2_3" } layer { name: "conv3_1_1x1_reduce" type: "Convolution" bottom: "conv2_3" top: "conv3_1_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_1_1x1_reduce/bn" type: "BN" bottom: "conv3_1_1x1_reduce" top: "conv3_1_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_1_1x1_reduce/relu" type: "ReLU" bottom: "conv3_1_1x1_reduce" top: "conv3_1_1x1_reduce" } layer { name: "conv3_1_3x3" type: "Convolution" bottom: "conv3_1_1x1_reduce" top: "conv3_1_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_1_3x3/bn" type: "BN" bottom: "conv3_1_3x3" top: "conv3_1_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_1_3x3/relu" type: "ReLU" bottom: "conv3_1_3x3" top: "conv3_1_3x3" } layer { name: "conv3_1_1x1_increase" type: "Convolution" bottom: "conv3_1_3x3" top: "conv3_1_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_1_1x1_increase/bn" type: "BN" bottom: "conv3_1_1x1_increase" top: "conv3_1_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_1_1x1_proj" type: "Convolution" bottom: "conv2_3" top: "conv3_1_1x1_proj" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_1_1x1_proj/bn" type: "BN" bottom: "conv3_1_1x1_proj" top: "conv3_1_1x1_proj" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_1" type: "Eltwise" bottom: "conv3_1_1x1_proj" bottom: "conv3_1_1x1_increase" top: "conv3_1" eltwise_param { operation: SUM } } layer { name: "conv3_1/relu" type: "ReLU" bottom: "conv3_1" top: "conv3_1" } layer { name: "conv3_1_sub4" type: "Interp" bottom: "conv3_1" top: "conv3_1_sub4" interp_param { shrink_factor: 2 } }

layer { name: "conv3_2_1x1_reduce" type: "Convolution" bottom: "conv3_1_sub4" top: "conv3_2_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_2_1x1_reduce/bn" type: "BN" bottom: "conv3_2_1x1_reduce" top: "conv3_2_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_2_1x1_reduce/relu" type: "ReLU" bottom: "conv3_2_1x1_reduce" top: "conv3_2_1x1_reduce" } layer { name: "conv3_2_3x3" type: "Convolution" bottom: "conv3_2_1x1_reduce" top: "conv3_2_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_2_3x3/bn" type: "BN" bottom: "conv3_2_3x3" top: "conv3_2_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_2_3x3/relu" type: "ReLU" bottom: "conv3_2_3x3" top: "conv3_2_3x3" } layer { name: "conv3_2_1x1_increase" type: "Convolution" bottom: "conv3_2_3x3" top: "conv3_2_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_2_1x1_increase/bn" type: "BN" bottom: "conv3_2_1x1_increase" top: "conv3_2_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_2" type: "Eltwise" bottom: "conv3_1_sub4" bottom: "conv3_2_1x1_increase" top: "conv3_2" eltwise_param { operation: SUM } } layer { name: "conv3_2/relu" type: "ReLU" bottom: "conv3_2" top: "conv3_2" } layer { name: "conv3_3_1x1_reduce" type: "Convolution" bottom: "conv3_2" top: "conv3_3_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_3_1x1_reduce/bn" type: "BN" bottom: "conv3_3_1x1_reduce" top: "conv3_3_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_3_1x1_reduce/relu" type: "ReLU" bottom: "conv3_3_1x1_reduce" top: "conv3_3_1x1_reduce" } layer { name: "conv3_3_3x3" type: "Convolution" bottom: "conv3_3_1x1_reduce" top: "conv3_3_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_3_3x3/bn" type: "BN" bottom: "conv3_3_3x3" top: "conv3_3_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_3_3x3/relu" type: "ReLU" bottom: "conv3_3_3x3" top: "conv3_3_3x3" } layer { name: "conv3_3_1x1_increase" type: "Convolution" bottom: "conv3_3_3x3" top: "conv3_3_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_3_1x1_increase/bn" type: "BN" bottom: "conv3_3_1x1_increase" top: "conv3_3_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_3" type: "Eltwise" bottom: "conv3_2" bottom: "conv3_3_1x1_increase" top: "conv3_3" eltwise_param { operation: SUM } } layer { name: "conv3_3/relu" type: "ReLU" bottom: "conv3_3" top: "conv3_3" } layer { name: "conv3_4_1x1_reduce" type: "Convolution" bottom: "conv3_3" top: "conv3_4_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_4_1x1_reduce/bn" type: "BN" bottom: "conv3_4_1x1_reduce" top: "conv3_4_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_4_1x1_reduce/relu" type: "ReLU" bottom: "conv3_4_1x1_reduce" top: "conv3_4_1x1_reduce" } layer { name: "conv3_4_3x3" type: "Convolution" bottom: "conv3_4_1x1_reduce" top: "conv3_4_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_4_3x3/bn" type: "BN" bottom: "conv3_4_3x3" top: "conv3_4_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_4_3x3/relu" type: "ReLU" bottom: "conv3_4_3x3" top: "conv3_4_3x3" } layer { name: "conv3_4_1x1_increase" type: "Convolution" bottom: "conv3_4_3x3" top: "conv3_4_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_4_1x1_increase/bn" type: "BN" bottom: "conv3_4_1x1_increase" top: "conv3_4_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_4" type: "Eltwise" bottom: "conv3_3" bottom: "conv3_4_1x1_increase" top: "conv3_4" eltwise_param { operation: SUM } } layer { name: "conv3_4/relu" type: "ReLU" bottom: "conv3_4" top: "conv3_4" } layer { name: "conv4_1_1x1_reduce" type: "Convolution" bottom: "conv3_4" top: "conv4_1_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_1_1x1_reduce/bn" type: "BN" bottom: "conv4_1_1x1_reduce" top: "conv4_1_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_1_1x1_reduce/relu" type: "ReLU" bottom: "conv4_1_1x1_reduce" top: "conv4_1_1x1_reduce" } layer { name: "conv4_1_3x3" type: "Convolution" bottom: "conv4_1_1x1_reduce" top: "conv4_1_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 2 dilation: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_1_3x3/bn" type: "BN" bottom: "conv4_1_3x3" top: "conv4_1_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_1_3x3/relu" type: "ReLU" bottom: "conv4_1_3x3" top: "conv4_1_3x3" } layer { name: "conv4_1_1x1_increase" type: "Convolution" bottom: "conv4_1_3x3" top: "conv4_1_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_1_1x1_increase/bn" type: "BN" bottom: "conv4_1_1x1_increase" top: "conv4_1_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_1_1x1_proj" type: "Convolution" bottom: "conv3_4" top: "conv4_1_1x1_proj" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_1_1x1_proj/bn" type: "BN" bottom: "conv4_1_1x1_proj" top: "conv4_1_1x1_proj" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_1" type: "Eltwise" bottom: "conv4_1_1x1_proj" bottom: "conv4_1_1x1_increase" top: "conv4_1" eltwise_param { operation: SUM } } layer { name: "conv4_1/relu" type: "ReLU" bottom: "conv4_1" top: "conv4_1" } layer { name: "conv4_2_1x1_reduce" type: "Convolution" bottom: "conv4_1" top: "conv4_2_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_2_1x1_reduce/bn" type: "BN" bottom: "conv4_2_1x1_reduce" top: "conv4_2_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_2_1x1_reduce/relu" type: "ReLU" bottom: "conv4_2_1x1_reduce" top: "conv4_2_1x1_reduce" } layer { name: "conv4_2_3x3" type: "Convolution" bottom: "conv4_2_1x1_reduce" top: "conv4_2_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 2 dilation: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_2_3x3/bn" type: "BN" bottom: "conv4_2_3x3" top: "conv4_2_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_2_3x3/relu" type: "ReLU" bottom: "conv4_2_3x3" top: "conv4_2_3x3" } layer { name: "conv4_2_1x1_increase" type: "Convolution" bottom: "conv4_2_3x3" top: "conv4_2_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_2_1x1_increase/bn" type: "BN" bottom: "conv4_2_1x1_increase" top: "conv4_2_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_2" type: "Eltwise" bottom: "conv4_1" bottom: "conv4_2_1x1_increase" top: "conv4_2" eltwise_param { operation: SUM } } layer { name: "conv4_2/relu" type: "ReLU" bottom: "conv4_2" top: "conv4_2" } layer { name: "conv4_3_1x1_reduce" type: "Convolution" bottom: "conv4_2" top: "conv4_3_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_3_1x1_reduce/bn" type: "BN" bottom: "conv4_3_1x1_reduce" top: "conv4_3_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_3_1x1_reduce/relu" type: "ReLU" bottom: "conv4_3_1x1_reduce" top: "conv4_3_1x1_reduce" } layer { name: "conv4_3_3x3" type: "Convolution" bottom: "conv4_3_1x1_reduce" top: "conv4_3_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 2 dilation: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_3_3x3/bn" type: "BN" bottom: "conv4_3_3x3" top: "conv4_3_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_3_3x3/relu" type: "ReLU" bottom: "conv4_3_3x3" top: "conv4_3_3x3" } layer { name: "conv4_3_1x1_increase" type: "Convolution" bottom: "conv4_3_3x3" top: "conv4_3_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_3_1x1_increase/bn" type: "BN" bottom: "conv4_3_1x1_increase" top: "conv4_3_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_3" type: "Eltwise" bottom: "conv4_2" bottom: "conv4_3_1x1_increase" top: "conv4_3" eltwise_param { operation: SUM } } layer { name: "conv4_3/relu" type: "ReLU" bottom: "conv4_3" top: "conv4_3" } layer { name: "conv4_4_1x1_reduce" type: "Convolution" bottom: "conv4_3" top: "conv4_4_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_4_1x1_reduce/bn" type: "BN" bottom: "conv4_4_1x1_reduce" top: "conv4_4_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_4_1x1_reduce/relu" type: "ReLU" bottom: "conv4_4_1x1_reduce" top: "conv4_4_1x1_reduce" } layer { name: "conv4_4_3x3" type: "Convolution" bottom: "conv4_4_1x1_reduce" top: "conv4_4_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 2 dilation: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_4_3x3/bn" type: "BN" bottom: "conv4_4_3x3" top: "conv4_4_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_4_3x3/relu" type: "ReLU" bottom: "conv4_4_3x3" top: "conv4_4_3x3" } layer { name: "conv4_4_1x1_increase" type: "Convolution" bottom: "conv4_4_3x3" top: "conv4_4_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_4_1x1_increase/bn" type: "BN" bottom: "conv4_4_1x1_increase" top: "conv4_4_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_4" type: "Eltwise" bottom: "conv4_3" bottom: "conv4_4_1x1_increase" top: "conv4_4" eltwise_param { operation: SUM } } layer { name: "conv4_4/relu" type: "ReLU" bottom: "conv4_4" top: "conv4_4" } layer { name: "conv4_5_1x1_reduce" type: "Convolution" bottom: "conv4_4" top: "conv4_5_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_5_1x1_reduce/bn" type: "BN" bottom: "conv4_5_1x1_reduce" top: "conv4_5_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_5_1x1_reduce/relu" type: "ReLU" bottom: "conv4_5_1x1_reduce" top: "conv4_5_1x1_reduce" } layer { name: "conv4_5_3x3" type: "Convolution" bottom: "conv4_5_1x1_reduce" top: "conv4_5_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 2 dilation: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_5_3x3/bn" type: "BN" bottom: "conv4_5_3x3" top: "conv4_5_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_5_3x3/relu" type: "ReLU" bottom: "conv4_5_3x3" top: "conv4_5_3x3" } layer { name: "conv4_5_1x1_increase" type: "Convolution" bottom: "conv4_5_3x3" top: "conv4_5_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_5_1x1_increase/bn" type: "BN" bottom: "conv4_5_1x1_increase" top: "conv4_5_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_5" type: "Eltwise" bottom: "conv4_4" bottom: "conv4_5_1x1_increase" top: "conv4_5" eltwise_param { operation: SUM } } layer { name: "conv4_5/relu" type: "ReLU" bottom: "conv4_5" top: "conv4_5" } layer { name: "conv4_6_1x1_reduce" type: "Convolution" bottom: "conv4_5" top: "conv4_6_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_6_1x1_reduce/bn" type: "BN" bottom: "conv4_6_1x1_reduce" top: "conv4_6_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_6_1x1_reduce/relu" type: "ReLU" bottom: "conv4_6_1x1_reduce" top: "conv4_6_1x1_reduce" } layer { name: "conv4_6_3x3" type: "Convolution" bottom: "conv4_6_1x1_reduce" top: "conv4_6_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 2 dilation: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_6_3x3/bn" type: "BN" bottom: "conv4_6_3x3" top: "conv4_6_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_6_3x3/relu" type: "ReLU" bottom: "conv4_6_3x3" top: "conv4_6_3x3" } layer { name: "conv4_6_1x1_increase" type: "Convolution" bottom: "conv4_6_3x3" top: "conv4_6_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv4_6_1x1_increase/bn" type: "BN" bottom: "conv4_6_1x1_increase" top: "conv4_6_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv4_6" type: "Eltwise" bottom: "conv4_5" bottom: "conv4_6_1x1_increase" top: "conv4_6" eltwise_param { operation: SUM } } layer { name: "conv4_6/relu" type: "ReLU" bottom: "conv4_6" top: "conv4_6" } layer { name: "conv5_1_1x1_reduce" type: "Convolution" bottom: "conv4_6" top: "conv5_1_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_1_1x1_reduce/bn" type: "BN" bottom: "conv5_1_1x1_reduce" top: "conv5_1_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_1_1x1_reduce/relu" type: "ReLU" bottom: "conv5_1_1x1_reduce" top: "conv5_1_1x1_reduce" } layer { name: "conv5_1_3x3" type: "Convolution" bottom: "conv5_1_1x1_reduce" top: "conv5_1_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 4 dilation: 4 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_1_3x3/bn" type: "BN" bottom: "conv5_1_3x3" top: "conv5_1_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_1_3x3/relu" type: "ReLU" bottom: "conv5_1_3x3" top: "conv5_1_3x3" } layer { name: "conv5_1_1x1_increase" type: "Convolution" bottom: "conv5_1_3x3" top: "conv5_1_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 1024 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_1_1x1_increase/bn" type: "BN" bottom: "conv5_1_1x1_increase" top: "conv5_1_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_1_1x1_proj" type: "Convolution" bottom: "conv4_6" top: "conv5_1_1x1_proj" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 1024 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_1_1x1_proj/bn" type: "BN" bottom: "conv5_1_1x1_proj" top: "conv5_1_1x1_proj" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_1" type: "Eltwise" bottom: "conv5_1_1x1_proj" bottom: "conv5_1_1x1_increase" top: "conv5_1" eltwise_param { operation: SUM } } layer { name: "conv5_1/relu" type: "ReLU" bottom: "conv5_1" top: "conv5_1" } layer { name: "conv5_2_1x1_reduce" type: "Convolution" bottom: "conv5_1" top: "conv5_2_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_2_1x1_reduce/bn" type: "BN" bottom: "conv5_2_1x1_reduce" top: "conv5_2_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_2_1x1_reduce/relu" type: "ReLU" bottom: "conv5_2_1x1_reduce" top: "conv5_2_1x1_reduce" } layer { name: "conv5_2_3x3" type: "Convolution" bottom: "conv5_2_1x1_reduce" top: "conv5_2_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 4 dilation: 4 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_2_3x3/bn" type: "BN" bottom: "conv5_2_3x3" top: "conv5_2_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_2_3x3/relu" type: "ReLU" bottom: "conv5_2_3x3" top: "conv5_2_3x3" } layer { name: "conv5_2_1x1_increase" type: "Convolution" bottom: "conv5_2_3x3" top: "conv5_2_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 1024 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_2_1x1_increase/bn" type: "BN" bottom: "conv5_2_1x1_increase" top: "conv5_2_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_2" type: "Eltwise" bottom: "conv5_1" bottom: "conv5_2_1x1_increase" top: "conv5_2" eltwise_param { operation: SUM } } layer { name: "conv5_2/relu" type: "ReLU" bottom: "conv5_2" top: "conv5_2" } layer { name: "conv5_3_1x1_reduce" type: "Convolution" bottom: "conv5_2" top: "conv5_3_1x1_reduce" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_3_1x1_reduce/bn" type: "BN" bottom: "conv5_3_1x1_reduce" top: "conv5_3_1x1_reduce" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_3_1x1_reduce/relu" type: "ReLU" bottom: "conv5_3_1x1_reduce" top: "conv5_3_1x1_reduce" } layer { name: "conv5_3_3x3" type: "Convolution" bottom: "conv5_3_1x1_reduce" top: "conv5_3_3x3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 4 dilation: 4 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_3_3x3/bn" type: "BN" bottom: "conv5_3_3x3" top: "conv5_3_3x3" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_3_3x3/relu" type: "ReLU" bottom: "conv5_3_3x3" top: "conv5_3_3x3" } layer { name: "conv5_3_1x1_increase" type: "Convolution" bottom: "conv5_3_3x3" top: "conv5_3_1x1_increase" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 1024 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_3_1x1_increase/bn" type: "BN" bottom: "conv5_3_1x1_increase" top: "conv5_3_1x1_increase" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_3" type: "Eltwise" bottom: "conv5_2" bottom: "conv5_3_1x1_increase" top: "conv5_3" eltwise_param { operation: SUM } } layer { name: "conv5_3/relu" type: "ReLU" bottom: "conv5_3" top: "conv5_3" } layer { name: "conv5_3_pool1" type: "Pooling" bottom: "conv5_3" top: "conv5_3_pool1" pooling_param { pool: AVE kernel_h: 33 kernel_w: 65 stride_h: 33 stride_w: 65 } } layer { name: "conv5_3_pool1_interp" type: "Interp" bottom: "conv5_3_pool1" top: "conv5_3_pool1_interp" interp_param { height: 33 width: 65 } } layer { name: "conv5_3_pool2" type: "Pooling" bottom: "conv5_3" top: "conv5_3_pool2" pooling_param { pool: AVE kernel_h: 17 kernel_w: 33 stride_h: 16 stride_w: 32 } } layer { name: "conv5_3_pool2_interp" type: "Interp" bottom: "conv5_3_pool2" top: "conv5_3_pool2_interp" interp_param { height: 33 width: 65 } } layer { name: "conv5_3_pool3" type: "Pooling" bottom: "conv5_3" top: "conv5_3_pool3" pooling_param { pool: AVE kernel_h: 13 kernel_w: 25 stride_h: 10 stride_w: 20 } } layer { name: "conv5_3_pool3_interp" type: "Interp" bottom: "conv5_3_pool3" top: "conv5_3_pool3_interp" interp_param { height: 33 width: 65 } } layer { name: "conv5_3_pool6" type: "Pooling" bottom: "conv5_3" top: "conv5_3_pool6" pooling_param { pool: AVE kernel_h: 8 kernel_w: 15 stride_h: 5 stride_w: 10 } } layer { name: "conv5_3_pool6_interp" type: "Interp" bottom: "conv5_3_pool6" top: "conv5_3_pool6_interp" interp_param { height: 33 width: 65 } } layer { name: "conv5_3_sum" type: "Eltwise" bottom: "conv5_3" bottom: "conv5_3_pool6_interp" bottom: "conv5_3_pool3_interp" bottom: "conv5_3_pool2_interp" bottom: "conv5_3_pool1_interp" top: "conv5_3_sum" } layer { name: "conv5_4_k1" type: "Convolution" bottom: "conv5_3_sum" top: "conv5_4_k1" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 kernel_size: 1 stride: 1 pad: 0 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv5_4_k1/bn" type: "BN" bottom: "conv5_4_k1" top: "conv5_4_k1" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv5_4_k1/relu" type: "ReLU" bottom: "conv5_4_k1" top: "conv5_4_k1" } layer { name: "conv5_4_interp" type: "Interp" bottom: "conv5_4_k1" top: "conv5_4_interp" interp_param { zoom_factor: 2 } } layer { name: "conv_sub4" type: "Convolution" bottom: "conv5_4_interp" top: "conv_sub4" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 kernel_size: 3 stride: 1 pad: 2 dilation: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv_sub4/bn" type: "BN" bottom: "conv_sub4" top: "conv_sub4" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } }

####################sub2#################### layer { name: "conv3_1_sub2_proj" type: "Convolution" bottom: "conv3_1" top: "conv3_1_sub2_proj" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 kernel_size: 1 stride: 1 pad: 0 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_1_sub2_proj/bn" type: "BN" bottom: "conv3_1_sub2_proj" top: "conv3_1_sub2_proj" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "sub24_sum" type: "Eltwise" bottom: "conv3_1_sub2_proj" bottom: "conv_sub4" top: "sub24_sum" } layer { name: "sub24_sum/relu" type: "ReLU" bottom: "sub24_sum" top: "sub24_sum" } layer { name: "sub24_sum_interp" type: "Interp" bottom: "sub24_sum" top: "sub24_sum_interp" interp_param { zoom_factor: 2 } } layer { name: "conv_sub2" type: "Convolution" bottom: "sub24_sum_interp" top: "conv_sub2" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 kernel_size: 3 stride: 1 pad: 2 dilation: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv_sub2/bn" type: "BN" bottom: "conv_sub2" top: "conv_sub2" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } }

####################sub1#################### layer { name: "conv1_sub1" type: "Convolution" bottom: "data_sub1" top: "conv1_sub1" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv1_sub1/bn" type: "BN" bottom: "conv1_sub1" top: "conv1_sub1" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv1_sub1/relu" type: "ReLU" bottom: "conv1_sub1" top: "conv1_sub1" } layer { name: "conv2_sub1" type: "Convolution" bottom: "conv1_sub1" top: "conv2_sub1" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv2_sub1/bn" type: "BN" bottom: "conv2_sub1" top: "conv2_sub1" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv2_sub1/relu" type: "ReLU" bottom: "conv2_sub1" top: "conv2_sub1" } layer { name: "conv3_sub1" type: "Convolution" bottom: "conv2_sub1" top: "conv3_sub1" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_sub1/bn" type: "BN" bottom: "conv3_sub1" top: "conv3_sub1" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } } layer { name: "conv3_sub1/relu" type: "ReLU" bottom: "conv3_sub1" top: "conv3_sub1" } layer { name: "conv3_sub1_proj" type: "Convolution" bottom: "conv3_sub1" top: "conv3_sub1_proj" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 kernel_size: 1 stride: 1 pad: 0 weight_filler { type: "msra" } bias_term: true } } layer { name: "conv3_sub1_proj/bn" type: "BN" bottom: "conv3_sub1_proj" top: "conv3_sub1_proj" param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 1 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } bn_param { slope_filler { type: "constant" value: 1 } bias_filler { type: "constant" value: 0 } frozen: false momentum: 0.95 } }

layer { name: "sub12_sum" type: "Eltwise" bottom: "conv3_sub1_proj" bottom: "conv_sub2" top: "sub12_sum" } layer { name: "sub12_sum/relu" type: "ReLU" bottom: "sub12_sum" top: "sub12_sum" } layer { name: "sub12_sum_interp" type: "Interp" bottom: "sub12_sum" top: "sub12_sum_interp" interp_param { zoom_factor: 2 } }

layer { name: "conv6_cls_a" type: "Convolution" bottom: "sub12_sum_interp" top: "conv6_cls" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 1 } convolution_param { num_output: 7 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "conv6_interp" type: "Interp" bottom: "conv6_cls" top: "conv6_interp" interp_param { zoom_factor: 4 } } layer { name: "loss" type: "SoftmaxWithLoss" bottom: "conv6_interp" bottom: "label" top: "loss" include { phase: TRAIN } loss_param { ignore_label: 255 } } but error 74 F1214 20:46:44.748036 22556 math_functions.cu:79] Check failed: error == cudaSuccess (74 vs. 0) misaligned address Check failure stack trace: @ 0x7f9cf2a81daa (unknown) @ 0x7f9cf2a81ce4 (unknown) @ 0x7f9cf2a816e6 (unknown) @ 0x7f9cf2a84687 (unknown) @ 0x7f9cf3285218 caffe::caffe_gpu_memcpy() @ 0x7f9cf323a82b caffe::SyncedMemory::gpu_data() @ 0x7f9cf31dbb02 caffe::Blob<>::gpu_data() @ 0x7f9cf32777b5 caffe::ScaleLayer<>::Backward_gpu() @ 0x7f9cf31c8125 caffe::Net<>::BackwardFromTo() @ 0x7f9cf31c8271 caffe::Net<>::Backward() @ 0x7f9cf3247b73 caffe::Solver<>::Step() @ 0x7f9cf324851a caffe::Solver<>::Solve() @ 0x408085 train() @ 0x4059ac main @ 0x7f9cf1a8df45 (unknown) @ 0x40620b (unknown) @ (nil) (unknown)

Soulempty commented 6 years ago

@gjtjx hello,have you solve the problem?Can you tell me where can get the model prototxt and share your experience about train with me?Thank you.

Soulempty commented 6 years ago

@gjtjx You can set the batchsize=1

feitiandemiaomi commented 6 years ago

@Soulempty Hi, I ues it to train but the loss always oscillating , have you encountered this situation?

Soulempty commented 6 years ago

I also doubt the model have some faulty,I remember there is oscillation at begin,do you use the model to infer the efficient?

feitiandemiaomi commented 6 years ago

I don't use the model given by author , but I use the keras version to infer it, 20fps

feitiandemiaomi commented 6 years ago

do you train it successfully?

Soulempty commented 6 years ago

I train it,but the batchsize =1,dou you have caffe train model? I use tensorflow train successfully and about 25fps

feitiandemiaomi commented 6 years ago

yes ,I am training it with caffe and the bathchsize 1, but the loss is oscillating , I cannot find the solution. 能加微信聊下吗,哈哈

oandrienko commented 6 years ago

I noticed this issue a while back ago. If you want to train you either need to initialize with either ICNet/PSPNet weights or from ResNet weights. The prototxt files you have use a modified ResNet so you would have to modify the layers to match the original ResNet prototxt released by Kaiming He. If you prefer Tensorflow, I have a training implementation here: https://github.com/oandrienko/fast-semantic-segmentation