#quantize: true name: "ResNet-11" #layer { # name: "data" # type: "Input" # top: "data" # input_param { shape: { dim: 50 dim: 3 dim: 112 dim: 96 } } #} input: "data" input_shape { dim: 1 dim: 3 dim: 112 dim: 96 } layer { name: "data/bias" type: "Bias" bottom: "data" top: "data/bias" param { lr_mult: 0 decay_mult: 0 } bias_param { filler { type: "constant" value: -128 } } } layer { bottom: "data/bias" top: "conv1" name: "conv1" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 2 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "conv1" top: "conv1" name: "bn_conv1" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "conv1" top: "conv1" name: "conv1_relu" type: "ReLU" } layer { bottom: "conv1" top: "pool1" name: "pool1" type: "Pooling" pooling_param { kernel_size: 3 stride: 2 pool: MAX } } layer { bottom: "pool1" top: "res2a_branch1" name: "res2a_branch1" type: "Convolution" convolution_param { num_output: 64 kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res2a_branch1" top: "res2a_branch1" name: "bn2a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "pool1" top: "res2a_branch2a" name: "res2a_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "bn2a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res2a_branch2a" top: "res2a_branch2a" name: "res2a_branch2a_relu" type: "ReLU" } layer { bottom: "res2a_branch2a" top: "res2a_branch2b" name: "res2a_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res2a_branch2b" top: "res2a_branch2b" name: "bn2a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res2a_branch1" bottom: "res2a_branch2b" top: "res2a" name: "res2a" type: "Eltwise" eltwise_param { operation: SUM } } layer { bottom: "res2a" top: "res2a" name: "res2a_relu" type: "ReLU" } layer { bottom: "res2a" top: "res2b_branch2a" name: "res2b_branch2a" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "bn2b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res2b_branch2a" top: "res2b_branch2a" name: "res2b_branch2a_relu" type: "ReLU" } layer { bottom: "res2b_branch2a" top: "res2b_branch2b" name: "res2b_branch2b" type: "Convolution" convolution_param { num_output: 64 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res2b_branch2b" top: "res2b_branch2b" name: "bn2b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res2a" bottom: "res2b_branch2b" top: "res2b" name: "res2b" type: "Eltwise" eltwise_param { operation: SUM } } layer { bottom: "res2b" top: "res2b" name: "res2b_relu" type: "ReLU" } layer { bottom: "res2b" top: "res3a_branch1" name: "res3a_branch1" type: "Convolution" convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 2 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res3a_branch1" top: "res3a_branch1" name: "bn3a_branch1" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res2b" top: "res3a_branch2a" name: "res3a_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 2 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "bn3a_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res3a_branch2a" top: "res3a_branch2a" name: "res3a_branch2a_relu" type: "ReLU" } layer { bottom: "res3a_branch2a" top: "res3a_branch2b" name: "res3a_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res3a_branch2b" top: "res3a_branch2b" name: "bn3a_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res3a_branch1" bottom: "res3a_branch2b" top: "res3a" name: "res3a" type: "Eltwise" eltwise_param { operation: SUM } } layer { bottom: "res3a" top: "res3a" name: "res3a_relu" type: "ReLU" } layer { bottom: "res3a" top: "res3b_branch2a" name: "res3b_branch2a" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res3b_branch2a" top: "res3b_branch2a" name: "bn3b_branch2a" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res3b_branch2a" top: "res3b_branch2a" name: "res3b_branch2a_relu" type: "ReLU" } layer { bottom: "res3b_branch2a" top: "res3b_branch2b" name: "res3b_branch2b" type: "Convolution" convolution_param { num_output: 128 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "xavier" } bias_term: false } } layer { bottom: "res3b_branch2b" top: "res3b_branch2b" name: "bn3b_branch2b" type: "BatchNorm" batch_norm_param { use_global_stats: false } } layer { bottom: "res3a" bottom: "res3b_branch2b" top: "res3b" name: "res3b" type: "Eltwise" eltwise_param { operation: SUM } } #layer { # bottom: "res3b" # top: "res3b" # name: "res3b_relu" # type: "ReLU" #} #layer { # bottom: "res3b" # top: "pool5" # name: "pool5" # type: "Pooling" # pooling_param { # kernel_size: 3 # stride: 2 # pool: MAX # } #} layer { bottom: "res3b" top: "fc1" name: "fc1" type: "InnerProduct" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 1 } inner_product_param { num_output: 512 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } }