0x0/nsfw_model/deploy.prototxt
2017-10-27 05:28:45 +02:00

3489 lines
59 KiB
Plaintext

name: "ResNet_50_1by2_nsfw"
layer {
name: "data"
type: "Input"
top: "data"
input_param { shape: { dim: 1 dim: 3 dim: 224 dim: 224 } }
}
layer {
name: "conv_1"
type: "Convolution"
bottom: "data"
top: "conv_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 3
kernel_size: 7
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_1"
type: "BatchNorm"
bottom: "conv_1"
top: "conv_1"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_1"
type: "Scale"
bottom: "conv_1"
top: "conv_1"
scale_param {
bias_term: true
}
}
layer {
name: "relu_1"
type: "ReLU"
bottom: "conv_1"
top: "conv_1"
}
layer {
name: "pool1"
type: "Pooling"
bottom: "conv_1"
top: "pool1"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "conv_stage0_block0_proj_shortcut"
type: "Convolution"
bottom: "pool1"
top: "conv_stage0_block0_proj_shortcut"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block0_proj_shortcut"
type: "BatchNorm"
bottom: "conv_stage0_block0_proj_shortcut"
top: "conv_stage0_block0_proj_shortcut"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block0_proj_shortcut"
type: "Scale"
bottom: "conv_stage0_block0_proj_shortcut"
top: "conv_stage0_block0_proj_shortcut"
scale_param {
bias_term: true
}
}
layer {
name: "conv_stage0_block0_branch2a"
type: "Convolution"
bottom: "pool1"
top: "conv_stage0_block0_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block0_branch2a"
type: "BatchNorm"
bottom: "conv_stage0_block0_branch2a"
top: "conv_stage0_block0_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block0_branch2a"
type: "Scale"
bottom: "conv_stage0_block0_branch2a"
top: "conv_stage0_block0_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage0_block0_branch2a"
type: "ReLU"
bottom: "conv_stage0_block0_branch2a"
top: "conv_stage0_block0_branch2a"
}
layer {
name: "conv_stage0_block0_branch2b"
type: "Convolution"
bottom: "conv_stage0_block0_branch2a"
top: "conv_stage0_block0_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block0_branch2b"
type: "BatchNorm"
bottom: "conv_stage0_block0_branch2b"
top: "conv_stage0_block0_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block0_branch2b"
type: "Scale"
bottom: "conv_stage0_block0_branch2b"
top: "conv_stage0_block0_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage0_block0_branch2b"
type: "ReLU"
bottom: "conv_stage0_block0_branch2b"
top: "conv_stage0_block0_branch2b"
}
layer {
name: "conv_stage0_block0_branch2c"
type: "Convolution"
bottom: "conv_stage0_block0_branch2b"
top: "conv_stage0_block0_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block0_branch2c"
type: "BatchNorm"
bottom: "conv_stage0_block0_branch2c"
top: "conv_stage0_block0_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block0_branch2c"
type: "Scale"
bottom: "conv_stage0_block0_branch2c"
top: "conv_stage0_block0_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage0_block0"
type: "Eltwise"
bottom: "conv_stage0_block0_proj_shortcut"
bottom: "conv_stage0_block0_branch2c"
top: "eltwise_stage0_block0"
}
layer {
name: "relu_stage0_block0"
type: "ReLU"
bottom: "eltwise_stage0_block0"
top: "eltwise_stage0_block0"
}
layer {
name: "conv_stage0_block1_branch2a"
type: "Convolution"
bottom: "eltwise_stage0_block0"
top: "conv_stage0_block1_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block1_branch2a"
type: "BatchNorm"
bottom: "conv_stage0_block1_branch2a"
top: "conv_stage0_block1_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block1_branch2a"
type: "Scale"
bottom: "conv_stage0_block1_branch2a"
top: "conv_stage0_block1_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage0_block1_branch2a"
type: "ReLU"
bottom: "conv_stage0_block1_branch2a"
top: "conv_stage0_block1_branch2a"
}
layer {
name: "conv_stage0_block1_branch2b"
type: "Convolution"
bottom: "conv_stage0_block1_branch2a"
top: "conv_stage0_block1_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block1_branch2b"
type: "BatchNorm"
bottom: "conv_stage0_block1_branch2b"
top: "conv_stage0_block1_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block1_branch2b"
type: "Scale"
bottom: "conv_stage0_block1_branch2b"
top: "conv_stage0_block1_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage0_block1_branch2b"
type: "ReLU"
bottom: "conv_stage0_block1_branch2b"
top: "conv_stage0_block1_branch2b"
}
layer {
name: "conv_stage0_block1_branch2c"
type: "Convolution"
bottom: "conv_stage0_block1_branch2b"
top: "conv_stage0_block1_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block1_branch2c"
type: "BatchNorm"
bottom: "conv_stage0_block1_branch2c"
top: "conv_stage0_block1_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block1_branch2c"
type: "Scale"
bottom: "conv_stage0_block1_branch2c"
top: "conv_stage0_block1_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage0_block1"
type: "Eltwise"
bottom: "eltwise_stage0_block0"
bottom: "conv_stage0_block1_branch2c"
top: "eltwise_stage0_block1"
}
layer {
name: "relu_stage0_block1"
type: "ReLU"
bottom: "eltwise_stage0_block1"
top: "eltwise_stage0_block1"
}
layer {
name: "conv_stage0_block2_branch2a"
type: "Convolution"
bottom: "eltwise_stage0_block1"
top: "conv_stage0_block2_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block2_branch2a"
type: "BatchNorm"
bottom: "conv_stage0_block2_branch2a"
top: "conv_stage0_block2_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block2_branch2a"
type: "Scale"
bottom: "conv_stage0_block2_branch2a"
top: "conv_stage0_block2_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage0_block2_branch2a"
type: "ReLU"
bottom: "conv_stage0_block2_branch2a"
top: "conv_stage0_block2_branch2a"
}
layer {
name: "conv_stage0_block2_branch2b"
type: "Convolution"
bottom: "conv_stage0_block2_branch2a"
top: "conv_stage0_block2_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block2_branch2b"
type: "BatchNorm"
bottom: "conv_stage0_block2_branch2b"
top: "conv_stage0_block2_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block2_branch2b"
type: "Scale"
bottom: "conv_stage0_block2_branch2b"
top: "conv_stage0_block2_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage0_block2_branch2b"
type: "ReLU"
bottom: "conv_stage0_block2_branch2b"
top: "conv_stage0_block2_branch2b"
}
layer {
name: "conv_stage0_block2_branch2c"
type: "Convolution"
bottom: "conv_stage0_block2_branch2b"
top: "conv_stage0_block2_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage0_block2_branch2c"
type: "BatchNorm"
bottom: "conv_stage0_block2_branch2c"
top: "conv_stage0_block2_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage0_block2_branch2c"
type: "Scale"
bottom: "conv_stage0_block2_branch2c"
top: "conv_stage0_block2_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage0_block2"
type: "Eltwise"
bottom: "eltwise_stage0_block1"
bottom: "conv_stage0_block2_branch2c"
top: "eltwise_stage0_block2"
}
layer {
name: "relu_stage0_block2"
type: "ReLU"
bottom: "eltwise_stage0_block2"
top: "eltwise_stage0_block2"
}
layer {
name: "conv_stage1_block0_proj_shortcut"
type: "Convolution"
bottom: "eltwise_stage0_block2"
top: "conv_stage1_block0_proj_shortcut"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block0_proj_shortcut"
type: "BatchNorm"
bottom: "conv_stage1_block0_proj_shortcut"
top: "conv_stage1_block0_proj_shortcut"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block0_proj_shortcut"
type: "Scale"
bottom: "conv_stage1_block0_proj_shortcut"
top: "conv_stage1_block0_proj_shortcut"
scale_param {
bias_term: true
}
}
layer {
name: "conv_stage1_block0_branch2a"
type: "Convolution"
bottom: "eltwise_stage0_block2"
top: "conv_stage1_block0_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block0_branch2a"
type: "BatchNorm"
bottom: "conv_stage1_block0_branch2a"
top: "conv_stage1_block0_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block0_branch2a"
type: "Scale"
bottom: "conv_stage1_block0_branch2a"
top: "conv_stage1_block0_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block0_branch2a"
type: "ReLU"
bottom: "conv_stage1_block0_branch2a"
top: "conv_stage1_block0_branch2a"
}
layer {
name: "conv_stage1_block0_branch2b"
type: "Convolution"
bottom: "conv_stage1_block0_branch2a"
top: "conv_stage1_block0_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block0_branch2b"
type: "BatchNorm"
bottom: "conv_stage1_block0_branch2b"
top: "conv_stage1_block0_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block0_branch2b"
type: "Scale"
bottom: "conv_stage1_block0_branch2b"
top: "conv_stage1_block0_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block0_branch2b"
type: "ReLU"
bottom: "conv_stage1_block0_branch2b"
top: "conv_stage1_block0_branch2b"
}
layer {
name: "conv_stage1_block0_branch2c"
type: "Convolution"
bottom: "conv_stage1_block0_branch2b"
top: "conv_stage1_block0_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block0_branch2c"
type: "BatchNorm"
bottom: "conv_stage1_block0_branch2c"
top: "conv_stage1_block0_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block0_branch2c"
type: "Scale"
bottom: "conv_stage1_block0_branch2c"
top: "conv_stage1_block0_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage1_block0"
type: "Eltwise"
bottom: "conv_stage1_block0_proj_shortcut"
bottom: "conv_stage1_block0_branch2c"
top: "eltwise_stage1_block0"
}
layer {
name: "relu_stage1_block0"
type: "ReLU"
bottom: "eltwise_stage1_block0"
top: "eltwise_stage1_block0"
}
layer {
name: "conv_stage1_block1_branch2a"
type: "Convolution"
bottom: "eltwise_stage1_block0"
top: "conv_stage1_block1_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block1_branch2a"
type: "BatchNorm"
bottom: "conv_stage1_block1_branch2a"
top: "conv_stage1_block1_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block1_branch2a"
type: "Scale"
bottom: "conv_stage1_block1_branch2a"
top: "conv_stage1_block1_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block1_branch2a"
type: "ReLU"
bottom: "conv_stage1_block1_branch2a"
top: "conv_stage1_block1_branch2a"
}
layer {
name: "conv_stage1_block1_branch2b"
type: "Convolution"
bottom: "conv_stage1_block1_branch2a"
top: "conv_stage1_block1_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block1_branch2b"
type: "BatchNorm"
bottom: "conv_stage1_block1_branch2b"
top: "conv_stage1_block1_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block1_branch2b"
type: "Scale"
bottom: "conv_stage1_block1_branch2b"
top: "conv_stage1_block1_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block1_branch2b"
type: "ReLU"
bottom: "conv_stage1_block1_branch2b"
top: "conv_stage1_block1_branch2b"
}
layer {
name: "conv_stage1_block1_branch2c"
type: "Convolution"
bottom: "conv_stage1_block1_branch2b"
top: "conv_stage1_block1_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block1_branch2c"
type: "BatchNorm"
bottom: "conv_stage1_block1_branch2c"
top: "conv_stage1_block1_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block1_branch2c"
type: "Scale"
bottom: "conv_stage1_block1_branch2c"
top: "conv_stage1_block1_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage1_block1"
type: "Eltwise"
bottom: "eltwise_stage1_block0"
bottom: "conv_stage1_block1_branch2c"
top: "eltwise_stage1_block1"
}
layer {
name: "relu_stage1_block1"
type: "ReLU"
bottom: "eltwise_stage1_block1"
top: "eltwise_stage1_block1"
}
layer {
name: "conv_stage1_block2_branch2a"
type: "Convolution"
bottom: "eltwise_stage1_block1"
top: "conv_stage1_block2_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block2_branch2a"
type: "BatchNorm"
bottom: "conv_stage1_block2_branch2a"
top: "conv_stage1_block2_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block2_branch2a"
type: "Scale"
bottom: "conv_stage1_block2_branch2a"
top: "conv_stage1_block2_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block2_branch2a"
type: "ReLU"
bottom: "conv_stage1_block2_branch2a"
top: "conv_stage1_block2_branch2a"
}
layer {
name: "conv_stage1_block2_branch2b"
type: "Convolution"
bottom: "conv_stage1_block2_branch2a"
top: "conv_stage1_block2_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block2_branch2b"
type: "BatchNorm"
bottom: "conv_stage1_block2_branch2b"
top: "conv_stage1_block2_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block2_branch2b"
type: "Scale"
bottom: "conv_stage1_block2_branch2b"
top: "conv_stage1_block2_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block2_branch2b"
type: "ReLU"
bottom: "conv_stage1_block2_branch2b"
top: "conv_stage1_block2_branch2b"
}
layer {
name: "conv_stage1_block2_branch2c"
type: "Convolution"
bottom: "conv_stage1_block2_branch2b"
top: "conv_stage1_block2_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block2_branch2c"
type: "BatchNorm"
bottom: "conv_stage1_block2_branch2c"
top: "conv_stage1_block2_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block2_branch2c"
type: "Scale"
bottom: "conv_stage1_block2_branch2c"
top: "conv_stage1_block2_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage1_block2"
type: "Eltwise"
bottom: "eltwise_stage1_block1"
bottom: "conv_stage1_block2_branch2c"
top: "eltwise_stage1_block2"
}
layer {
name: "relu_stage1_block2"
type: "ReLU"
bottom: "eltwise_stage1_block2"
top: "eltwise_stage1_block2"
}
layer {
name: "conv_stage1_block3_branch2a"
type: "Convolution"
bottom: "eltwise_stage1_block2"
top: "conv_stage1_block3_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block3_branch2a"
type: "BatchNorm"
bottom: "conv_stage1_block3_branch2a"
top: "conv_stage1_block3_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block3_branch2a"
type: "Scale"
bottom: "conv_stage1_block3_branch2a"
top: "conv_stage1_block3_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block3_branch2a"
type: "ReLU"
bottom: "conv_stage1_block3_branch2a"
top: "conv_stage1_block3_branch2a"
}
layer {
name: "conv_stage1_block3_branch2b"
type: "Convolution"
bottom: "conv_stage1_block3_branch2a"
top: "conv_stage1_block3_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block3_branch2b"
type: "BatchNorm"
bottom: "conv_stage1_block3_branch2b"
top: "conv_stage1_block3_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block3_branch2b"
type: "Scale"
bottom: "conv_stage1_block3_branch2b"
top: "conv_stage1_block3_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage1_block3_branch2b"
type: "ReLU"
bottom: "conv_stage1_block3_branch2b"
top: "conv_stage1_block3_branch2b"
}
layer {
name: "conv_stage1_block3_branch2c"
type: "Convolution"
bottom: "conv_stage1_block3_branch2b"
top: "conv_stage1_block3_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage1_block3_branch2c"
type: "BatchNorm"
bottom: "conv_stage1_block3_branch2c"
top: "conv_stage1_block3_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage1_block3_branch2c"
type: "Scale"
bottom: "conv_stage1_block3_branch2c"
top: "conv_stage1_block3_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage1_block3"
type: "Eltwise"
bottom: "eltwise_stage1_block2"
bottom: "conv_stage1_block3_branch2c"
top: "eltwise_stage1_block3"
}
layer {
name: "relu_stage1_block3"
type: "ReLU"
bottom: "eltwise_stage1_block3"
top: "eltwise_stage1_block3"
}
layer {
name: "conv_stage2_block0_proj_shortcut"
type: "Convolution"
bottom: "eltwise_stage1_block3"
top: "conv_stage2_block0_proj_shortcut"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block0_proj_shortcut"
type: "BatchNorm"
bottom: "conv_stage2_block0_proj_shortcut"
top: "conv_stage2_block0_proj_shortcut"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block0_proj_shortcut"
type: "Scale"
bottom: "conv_stage2_block0_proj_shortcut"
top: "conv_stage2_block0_proj_shortcut"
scale_param {
bias_term: true
}
}
layer {
name: "conv_stage2_block0_branch2a"
type: "Convolution"
bottom: "eltwise_stage1_block3"
top: "conv_stage2_block0_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block0_branch2a"
type: "BatchNorm"
bottom: "conv_stage2_block0_branch2a"
top: "conv_stage2_block0_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block0_branch2a"
type: "Scale"
bottom: "conv_stage2_block0_branch2a"
top: "conv_stage2_block0_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block0_branch2a"
type: "ReLU"
bottom: "conv_stage2_block0_branch2a"
top: "conv_stage2_block0_branch2a"
}
layer {
name: "conv_stage2_block0_branch2b"
type: "Convolution"
bottom: "conv_stage2_block0_branch2a"
top: "conv_stage2_block0_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block0_branch2b"
type: "BatchNorm"
bottom: "conv_stage2_block0_branch2b"
top: "conv_stage2_block0_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block0_branch2b"
type: "Scale"
bottom: "conv_stage2_block0_branch2b"
top: "conv_stage2_block0_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block0_branch2b"
type: "ReLU"
bottom: "conv_stage2_block0_branch2b"
top: "conv_stage2_block0_branch2b"
}
layer {
name: "conv_stage2_block0_branch2c"
type: "Convolution"
bottom: "conv_stage2_block0_branch2b"
top: "conv_stage2_block0_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block0_branch2c"
type: "BatchNorm"
bottom: "conv_stage2_block0_branch2c"
top: "conv_stage2_block0_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block0_branch2c"
type: "Scale"
bottom: "conv_stage2_block0_branch2c"
top: "conv_stage2_block0_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage2_block0"
type: "Eltwise"
bottom: "conv_stage2_block0_proj_shortcut"
bottom: "conv_stage2_block0_branch2c"
top: "eltwise_stage2_block0"
}
layer {
name: "relu_stage2_block0"
type: "ReLU"
bottom: "eltwise_stage2_block0"
top: "eltwise_stage2_block0"
}
layer {
name: "conv_stage2_block1_branch2a"
type: "Convolution"
bottom: "eltwise_stage2_block0"
top: "conv_stage2_block1_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block1_branch2a"
type: "BatchNorm"
bottom: "conv_stage2_block1_branch2a"
top: "conv_stage2_block1_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block1_branch2a"
type: "Scale"
bottom: "conv_stage2_block1_branch2a"
top: "conv_stage2_block1_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block1_branch2a"
type: "ReLU"
bottom: "conv_stage2_block1_branch2a"
top: "conv_stage2_block1_branch2a"
}
layer {
name: "conv_stage2_block1_branch2b"
type: "Convolution"
bottom: "conv_stage2_block1_branch2a"
top: "conv_stage2_block1_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block1_branch2b"
type: "BatchNorm"
bottom: "conv_stage2_block1_branch2b"
top: "conv_stage2_block1_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block1_branch2b"
type: "Scale"
bottom: "conv_stage2_block1_branch2b"
top: "conv_stage2_block1_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block1_branch2b"
type: "ReLU"
bottom: "conv_stage2_block1_branch2b"
top: "conv_stage2_block1_branch2b"
}
layer {
name: "conv_stage2_block1_branch2c"
type: "Convolution"
bottom: "conv_stage2_block1_branch2b"
top: "conv_stage2_block1_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block1_branch2c"
type: "BatchNorm"
bottom: "conv_stage2_block1_branch2c"
top: "conv_stage2_block1_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block1_branch2c"
type: "Scale"
bottom: "conv_stage2_block1_branch2c"
top: "conv_stage2_block1_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage2_block1"
type: "Eltwise"
bottom: "eltwise_stage2_block0"
bottom: "conv_stage2_block1_branch2c"
top: "eltwise_stage2_block1"
}
layer {
name: "relu_stage2_block1"
type: "ReLU"
bottom: "eltwise_stage2_block1"
top: "eltwise_stage2_block1"
}
layer {
name: "conv_stage2_block2_branch2a"
type: "Convolution"
bottom: "eltwise_stage2_block1"
top: "conv_stage2_block2_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block2_branch2a"
type: "BatchNorm"
bottom: "conv_stage2_block2_branch2a"
top: "conv_stage2_block2_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block2_branch2a"
type: "Scale"
bottom: "conv_stage2_block2_branch2a"
top: "conv_stage2_block2_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block2_branch2a"
type: "ReLU"
bottom: "conv_stage2_block2_branch2a"
top: "conv_stage2_block2_branch2a"
}
layer {
name: "conv_stage2_block2_branch2b"
type: "Convolution"
bottom: "conv_stage2_block2_branch2a"
top: "conv_stage2_block2_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block2_branch2b"
type: "BatchNorm"
bottom: "conv_stage2_block2_branch2b"
top: "conv_stage2_block2_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block2_branch2b"
type: "Scale"
bottom: "conv_stage2_block2_branch2b"
top: "conv_stage2_block2_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block2_branch2b"
type: "ReLU"
bottom: "conv_stage2_block2_branch2b"
top: "conv_stage2_block2_branch2b"
}
layer {
name: "conv_stage2_block2_branch2c"
type: "Convolution"
bottom: "conv_stage2_block2_branch2b"
top: "conv_stage2_block2_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block2_branch2c"
type: "BatchNorm"
bottom: "conv_stage2_block2_branch2c"
top: "conv_stage2_block2_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block2_branch2c"
type: "Scale"
bottom: "conv_stage2_block2_branch2c"
top: "conv_stage2_block2_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage2_block2"
type: "Eltwise"
bottom: "eltwise_stage2_block1"
bottom: "conv_stage2_block2_branch2c"
top: "eltwise_stage2_block2"
}
layer {
name: "relu_stage2_block2"
type: "ReLU"
bottom: "eltwise_stage2_block2"
top: "eltwise_stage2_block2"
}
layer {
name: "conv_stage2_block3_branch2a"
type: "Convolution"
bottom: "eltwise_stage2_block2"
top: "conv_stage2_block3_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block3_branch2a"
type: "BatchNorm"
bottom: "conv_stage2_block3_branch2a"
top: "conv_stage2_block3_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block3_branch2a"
type: "Scale"
bottom: "conv_stage2_block3_branch2a"
top: "conv_stage2_block3_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block3_branch2a"
type: "ReLU"
bottom: "conv_stage2_block3_branch2a"
top: "conv_stage2_block3_branch2a"
}
layer {
name: "conv_stage2_block3_branch2b"
type: "Convolution"
bottom: "conv_stage2_block3_branch2a"
top: "conv_stage2_block3_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block3_branch2b"
type: "BatchNorm"
bottom: "conv_stage2_block3_branch2b"
top: "conv_stage2_block3_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block3_branch2b"
type: "Scale"
bottom: "conv_stage2_block3_branch2b"
top: "conv_stage2_block3_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block3_branch2b"
type: "ReLU"
bottom: "conv_stage2_block3_branch2b"
top: "conv_stage2_block3_branch2b"
}
layer {
name: "conv_stage2_block3_branch2c"
type: "Convolution"
bottom: "conv_stage2_block3_branch2b"
top: "conv_stage2_block3_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block3_branch2c"
type: "BatchNorm"
bottom: "conv_stage2_block3_branch2c"
top: "conv_stage2_block3_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block3_branch2c"
type: "Scale"
bottom: "conv_stage2_block3_branch2c"
top: "conv_stage2_block3_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage2_block3"
type: "Eltwise"
bottom: "eltwise_stage2_block2"
bottom: "conv_stage2_block3_branch2c"
top: "eltwise_stage2_block3"
}
layer {
name: "relu_stage2_block3"
type: "ReLU"
bottom: "eltwise_stage2_block3"
top: "eltwise_stage2_block3"
}
layer {
name: "conv_stage2_block4_branch2a"
type: "Convolution"
bottom: "eltwise_stage2_block3"
top: "conv_stage2_block4_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block4_branch2a"
type: "BatchNorm"
bottom: "conv_stage2_block4_branch2a"
top: "conv_stage2_block4_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block4_branch2a"
type: "Scale"
bottom: "conv_stage2_block4_branch2a"
top: "conv_stage2_block4_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block4_branch2a"
type: "ReLU"
bottom: "conv_stage2_block4_branch2a"
top: "conv_stage2_block4_branch2a"
}
layer {
name: "conv_stage2_block4_branch2b"
type: "Convolution"
bottom: "conv_stage2_block4_branch2a"
top: "conv_stage2_block4_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block4_branch2b"
type: "BatchNorm"
bottom: "conv_stage2_block4_branch2b"
top: "conv_stage2_block4_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block4_branch2b"
type: "Scale"
bottom: "conv_stage2_block4_branch2b"
top: "conv_stage2_block4_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block4_branch2b"
type: "ReLU"
bottom: "conv_stage2_block4_branch2b"
top: "conv_stage2_block4_branch2b"
}
layer {
name: "conv_stage2_block4_branch2c"
type: "Convolution"
bottom: "conv_stage2_block4_branch2b"
top: "conv_stage2_block4_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block4_branch2c"
type: "BatchNorm"
bottom: "conv_stage2_block4_branch2c"
top: "conv_stage2_block4_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block4_branch2c"
type: "Scale"
bottom: "conv_stage2_block4_branch2c"
top: "conv_stage2_block4_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage2_block4"
type: "Eltwise"
bottom: "eltwise_stage2_block3"
bottom: "conv_stage2_block4_branch2c"
top: "eltwise_stage2_block4"
}
layer {
name: "relu_stage2_block4"
type: "ReLU"
bottom: "eltwise_stage2_block4"
top: "eltwise_stage2_block4"
}
layer {
name: "conv_stage2_block5_branch2a"
type: "Convolution"
bottom: "eltwise_stage2_block4"
top: "conv_stage2_block5_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block5_branch2a"
type: "BatchNorm"
bottom: "conv_stage2_block5_branch2a"
top: "conv_stage2_block5_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block5_branch2a"
type: "Scale"
bottom: "conv_stage2_block5_branch2a"
top: "conv_stage2_block5_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block5_branch2a"
type: "ReLU"
bottom: "conv_stage2_block5_branch2a"
top: "conv_stage2_block5_branch2a"
}
layer {
name: "conv_stage2_block5_branch2b"
type: "Convolution"
bottom: "conv_stage2_block5_branch2a"
top: "conv_stage2_block5_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block5_branch2b"
type: "BatchNorm"
bottom: "conv_stage2_block5_branch2b"
top: "conv_stage2_block5_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block5_branch2b"
type: "Scale"
bottom: "conv_stage2_block5_branch2b"
top: "conv_stage2_block5_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage2_block5_branch2b"
type: "ReLU"
bottom: "conv_stage2_block5_branch2b"
top: "conv_stage2_block5_branch2b"
}
layer {
name: "conv_stage2_block5_branch2c"
type: "Convolution"
bottom: "conv_stage2_block5_branch2b"
top: "conv_stage2_block5_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage2_block5_branch2c"
type: "BatchNorm"
bottom: "conv_stage2_block5_branch2c"
top: "conv_stage2_block5_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage2_block5_branch2c"
type: "Scale"
bottom: "conv_stage2_block5_branch2c"
top: "conv_stage2_block5_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage2_block5"
type: "Eltwise"
bottom: "eltwise_stage2_block4"
bottom: "conv_stage2_block5_branch2c"
top: "eltwise_stage2_block5"
}
layer {
name: "relu_stage2_block5"
type: "ReLU"
bottom: "eltwise_stage2_block5"
top: "eltwise_stage2_block5"
}
layer {
name: "conv_stage3_block0_proj_shortcut"
type: "Convolution"
bottom: "eltwise_stage2_block5"
top: "conv_stage3_block0_proj_shortcut"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 1024
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block0_proj_shortcut"
type: "BatchNorm"
bottom: "conv_stage3_block0_proj_shortcut"
top: "conv_stage3_block0_proj_shortcut"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block0_proj_shortcut"
type: "Scale"
bottom: "conv_stage3_block0_proj_shortcut"
top: "conv_stage3_block0_proj_shortcut"
scale_param {
bias_term: true
}
}
layer {
name: "conv_stage3_block0_branch2a"
type: "Convolution"
bottom: "eltwise_stage2_block5"
top: "conv_stage3_block0_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block0_branch2a"
type: "BatchNorm"
bottom: "conv_stage3_block0_branch2a"
top: "conv_stage3_block0_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block0_branch2a"
type: "Scale"
bottom: "conv_stage3_block0_branch2a"
top: "conv_stage3_block0_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage3_block0_branch2a"
type: "ReLU"
bottom: "conv_stage3_block0_branch2a"
top: "conv_stage3_block0_branch2a"
}
layer {
name: "conv_stage3_block0_branch2b"
type: "Convolution"
bottom: "conv_stage3_block0_branch2a"
top: "conv_stage3_block0_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block0_branch2b"
type: "BatchNorm"
bottom: "conv_stage3_block0_branch2b"
top: "conv_stage3_block0_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block0_branch2b"
type: "Scale"
bottom: "conv_stage3_block0_branch2b"
top: "conv_stage3_block0_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage3_block0_branch2b"
type: "ReLU"
bottom: "conv_stage3_block0_branch2b"
top: "conv_stage3_block0_branch2b"
}
layer {
name: "conv_stage3_block0_branch2c"
type: "Convolution"
bottom: "conv_stage3_block0_branch2b"
top: "conv_stage3_block0_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 1024
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block0_branch2c"
type: "BatchNorm"
bottom: "conv_stage3_block0_branch2c"
top: "conv_stage3_block0_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block0_branch2c"
type: "Scale"
bottom: "conv_stage3_block0_branch2c"
top: "conv_stage3_block0_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage3_block0"
type: "Eltwise"
bottom: "conv_stage3_block0_proj_shortcut"
bottom: "conv_stage3_block0_branch2c"
top: "eltwise_stage3_block0"
}
layer {
name: "relu_stage3_block0"
type: "ReLU"
bottom: "eltwise_stage3_block0"
top: "eltwise_stage3_block0"
}
layer {
name: "conv_stage3_block1_branch2a"
type: "Convolution"
bottom: "eltwise_stage3_block0"
top: "conv_stage3_block1_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block1_branch2a"
type: "BatchNorm"
bottom: "conv_stage3_block1_branch2a"
top: "conv_stage3_block1_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block1_branch2a"
type: "Scale"
bottom: "conv_stage3_block1_branch2a"
top: "conv_stage3_block1_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage3_block1_branch2a"
type: "ReLU"
bottom: "conv_stage3_block1_branch2a"
top: "conv_stage3_block1_branch2a"
}
layer {
name: "conv_stage3_block1_branch2b"
type: "Convolution"
bottom: "conv_stage3_block1_branch2a"
top: "conv_stage3_block1_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block1_branch2b"
type: "BatchNorm"
bottom: "conv_stage3_block1_branch2b"
top: "conv_stage3_block1_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block1_branch2b"
type: "Scale"
bottom: "conv_stage3_block1_branch2b"
top: "conv_stage3_block1_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage3_block1_branch2b"
type: "ReLU"
bottom: "conv_stage3_block1_branch2b"
top: "conv_stage3_block1_branch2b"
}
layer {
name: "conv_stage3_block1_branch2c"
type: "Convolution"
bottom: "conv_stage3_block1_branch2b"
top: "conv_stage3_block1_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 1024
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block1_branch2c"
type: "BatchNorm"
bottom: "conv_stage3_block1_branch2c"
top: "conv_stage3_block1_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block1_branch2c"
type: "Scale"
bottom: "conv_stage3_block1_branch2c"
top: "conv_stage3_block1_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage3_block1"
type: "Eltwise"
bottom: "eltwise_stage3_block0"
bottom: "conv_stage3_block1_branch2c"
top: "eltwise_stage3_block1"
}
layer {
name: "relu_stage3_block1"
type: "ReLU"
bottom: "eltwise_stage3_block1"
top: "eltwise_stage3_block1"
}
layer {
name: "conv_stage3_block2_branch2a"
type: "Convolution"
bottom: "eltwise_stage3_block1"
top: "conv_stage3_block2_branch2a"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block2_branch2a"
type: "BatchNorm"
bottom: "conv_stage3_block2_branch2a"
top: "conv_stage3_block2_branch2a"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block2_branch2a"
type: "Scale"
bottom: "conv_stage3_block2_branch2a"
top: "conv_stage3_block2_branch2a"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage3_block2_branch2a"
type: "ReLU"
bottom: "conv_stage3_block2_branch2a"
top: "conv_stage3_block2_branch2a"
}
layer {
name: "conv_stage3_block2_branch2b"
type: "Convolution"
bottom: "conv_stage3_block2_branch2a"
top: "conv_stage3_block2_branch2b"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block2_branch2b"
type: "BatchNorm"
bottom: "conv_stage3_block2_branch2b"
top: "conv_stage3_block2_branch2b"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block2_branch2b"
type: "Scale"
bottom: "conv_stage3_block2_branch2b"
top: "conv_stage3_block2_branch2b"
scale_param {
bias_term: true
}
}
layer {
name: "relu_stage3_block2_branch2b"
type: "ReLU"
bottom: "conv_stage3_block2_branch2b"
top: "conv_stage3_block2_branch2b"
}
layer {
name: "conv_stage3_block2_branch2c"
type: "Convolution"
bottom: "conv_stage3_block2_branch2b"
top: "conv_stage3_block2_branch2c"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 1024
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "bn_stage3_block2_branch2c"
type: "BatchNorm"
bottom: "conv_stage3_block2_branch2c"
top: "conv_stage3_block2_branch2c"
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale_stage3_block2_branch2c"
type: "Scale"
bottom: "conv_stage3_block2_branch2c"
top: "conv_stage3_block2_branch2c"
scale_param {
bias_term: true
}
}
layer {
name: "eltwise_stage3_block2"
type: "Eltwise"
bottom: "eltwise_stage3_block1"
bottom: "conv_stage3_block2_branch2c"
top: "eltwise_stage3_block2"
}
layer {
name: "relu_stage3_block2"
type: "ReLU"
bottom: "eltwise_stage3_block2"
top: "eltwise_stage3_block2"
}
layer {
name: "pool"
type: "Pooling"
bottom: "eltwise_stage3_block2"
top: "pool"
pooling_param {
pool: AVE
kernel_size: 7
stride: 1
}
}
layer {
name: "fc_nsfw"
type: "InnerProduct"
bottom: "pool"
top: "fc_nsfw"
param {
lr_mult: 5
decay_mult: 1
}
param {
lr_mult: 10
decay_mult: 0
}
inner_product_param{
num_output: 2
weight_filler {
type: "xavier"
std: 0.01
}
bias_filler {
type: "xavier"
value: 0
}
}
}
layer {
name: "prob"
type: "Softmax"
bottom: "fc_nsfw"
top: "prob"
}