Skip to content

Instantly share code, notes, and snippets.

@eric612
Last active July 10, 2018 06:21
Show Gist options
  • Save eric612/dddb26696b108da9c3b5abf7a41a3d73 to your computer and use it in GitHub Desktop.
Save eric612/dddb26696b108da9c3b5abf7a41a3d73 to your computer and use it in GitHub Desktop.
name: "pelee_YOLO_416x416_deploy"
input: "data"
input_shape {
dim: 1
dim: 3
dim: 416
dim: 416
}
layer {
name: "stem1"
type: "Convolution"
bottom: "data"
top: "stem1"
convolution_param {
num_output: 32
bias_term: true
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stem1/relu"
type: "ReLU"
bottom: "stem1"
top: "stem1"
}
layer {
name: "stem2a"
type: "Convolution"
bottom: "stem1"
top: "stem2a"
convolution_param {
num_output: 16
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stem2a/relu"
type: "ReLU"
bottom: "stem2a"
top: "stem2a"
}
layer {
name: "stem2b"
type: "Convolution"
bottom: "stem2a"
top: "stem2b"
convolution_param {
num_output: 32
bias_term: true
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stem2b/relu"
type: "ReLU"
bottom: "stem2b"
top: "stem2b"
}
layer {
name: "stem/pool"
type: "Pooling"
bottom: "stem1"
top: "stem/pool"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "stem/concat"
type: "Concat"
bottom: "stem/pool"
bottom: "stem2b"
top: "stem/concat"
concat_param {
axis: 1
}
}
layer {
name: "stem3"
type: "Convolution"
bottom: "stem/concat"
top: "stem3"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stem3/relu"
type: "ReLU"
bottom: "stem3"
top: "stem3"
}
layer {
name: "stage1_1/branch1a"
type: "Convolution"
bottom: "stem3"
top: "stage1_1/branch1a"
convolution_param {
num_output: 16
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_1/branch1a/relu"
type: "ReLU"
bottom: "stage1_1/branch1a"
top: "stage1_1/branch1a"
}
layer {
name: "stage1_1/branch1b"
type: "Convolution"
bottom: "stage1_1/branch1a"
top: "stage1_1/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_1/branch1b/relu"
type: "ReLU"
bottom: "stage1_1/branch1b"
top: "stage1_1/branch1b"
}
layer {
name: "stage1_1/branch2a"
type: "Convolution"
bottom: "stem3"
top: "stage1_1/branch2a"
convolution_param {
num_output: 16
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_1/branch2a/relu"
type: "ReLU"
bottom: "stage1_1/branch2a"
top: "stage1_1/branch2a"
}
layer {
name: "stage1_1/branch2b"
type: "Convolution"
bottom: "stage1_1/branch2a"
top: "stage1_1/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_1/branch2b/relu"
type: "ReLU"
bottom: "stage1_1/branch2b"
top: "stage1_1/branch2b"
}
layer {
name: "stage1_1/branch2c"
type: "Convolution"
bottom: "stage1_1/branch2b"
top: "stage1_1/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_1/branch2c/relu"
type: "ReLU"
bottom: "stage1_1/branch2c"
top: "stage1_1/branch2c"
}
layer {
name: "stage1_1/concat"
type: "Concat"
bottom: "stem3"
bottom: "stage1_1/branch1b"
bottom: "stage1_1/branch2c"
top: "stage1_1/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage1_2/branch1a"
type: "Convolution"
bottom: "stage1_1/concat"
top: "stage1_2/branch1a"
convolution_param {
num_output: 16
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_2/branch1a/relu"
type: "ReLU"
bottom: "stage1_2/branch1a"
top: "stage1_2/branch1a"
}
layer {
name: "stage1_2/branch1b"
type: "Convolution"
bottom: "stage1_2/branch1a"
top: "stage1_2/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_2/branch1b/relu"
type: "ReLU"
bottom: "stage1_2/branch1b"
top: "stage1_2/branch1b"
}
layer {
name: "stage1_2/branch2a"
type: "Convolution"
bottom: "stage1_1/concat"
top: "stage1_2/branch2a"
convolution_param {
num_output: 16
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_2/branch2a/relu"
type: "ReLU"
bottom: "stage1_2/branch2a"
top: "stage1_2/branch2a"
}
layer {
name: "stage1_2/branch2b"
type: "Convolution"
bottom: "stage1_2/branch2a"
top: "stage1_2/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_2/branch2b/relu"
type: "ReLU"
bottom: "stage1_2/branch2b"
top: "stage1_2/branch2b"
}
layer {
name: "stage1_2/branch2c"
type: "Convolution"
bottom: "stage1_2/branch2b"
top: "stage1_2/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_2/branch2c/relu"
type: "ReLU"
bottom: "stage1_2/branch2c"
top: "stage1_2/branch2c"
}
layer {
name: "stage1_2/concat"
type: "Concat"
bottom: "stage1_1/concat"
bottom: "stage1_2/branch1b"
bottom: "stage1_2/branch2c"
top: "stage1_2/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage1_3/branch1a"
type: "Convolution"
bottom: "stage1_2/concat"
top: "stage1_3/branch1a"
convolution_param {
num_output: 16
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_3/branch1a/relu"
type: "ReLU"
bottom: "stage1_3/branch1a"
top: "stage1_3/branch1a"
}
layer {
name: "stage1_3/branch1b"
type: "Convolution"
bottom: "stage1_3/branch1a"
top: "stage1_3/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_3/branch1b/relu"
type: "ReLU"
bottom: "stage1_3/branch1b"
top: "stage1_3/branch1b"
}
layer {
name: "stage1_3/branch2a"
type: "Convolution"
bottom: "stage1_2/concat"
top: "stage1_3/branch2a"
convolution_param {
num_output: 16
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_3/branch2a/relu"
type: "ReLU"
bottom: "stage1_3/branch2a"
top: "stage1_3/branch2a"
}
layer {
name: "stage1_3/branch2b"
type: "Convolution"
bottom: "stage1_3/branch2a"
top: "stage1_3/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_3/branch2b/relu"
type: "ReLU"
bottom: "stage1_3/branch2b"
top: "stage1_3/branch2b"
}
layer {
name: "stage1_3/branch2c"
type: "Convolution"
bottom: "stage1_3/branch2b"
top: "stage1_3/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_3/branch2c/relu"
type: "ReLU"
bottom: "stage1_3/branch2c"
top: "stage1_3/branch2c"
}
layer {
name: "stage1_3/concat"
type: "Concat"
bottom: "stage1_2/concat"
bottom: "stage1_3/branch1b"
bottom: "stage1_3/branch2c"
top: "stage1_3/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage1_tb"
type: "Convolution"
bottom: "stage1_3/concat"
top: "stage1_tb"
convolution_param {
num_output: 128
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage1_tb/relu"
type: "ReLU"
bottom: "stage1_tb"
top: "stage1_tb"
}
layer {
name: "stage1_tb/pool"
type: "Pooling"
bottom: "stage1_tb"
top: "stage1_tb/pool"
pooling_param {
pool: AVE
kernel_size: 2
stride: 2
}
}
layer {
name: "stage2_1/branch1a"
type: "Convolution"
bottom: "stage1_tb/pool"
top: "stage2_1/branch1a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_1/branch1a/relu"
type: "ReLU"
bottom: "stage2_1/branch1a"
top: "stage2_1/branch1a"
}
layer {
name: "stage2_1/branch1b"
type: "Convolution"
bottom: "stage2_1/branch1a"
top: "stage2_1/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_1/branch1b/relu"
type: "ReLU"
bottom: "stage2_1/branch1b"
top: "stage2_1/branch1b"
}
layer {
name: "stage2_1/branch2a"
type: "Convolution"
bottom: "stage1_tb/pool"
top: "stage2_1/branch2a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_1/branch2a/relu"
type: "ReLU"
bottom: "stage2_1/branch2a"
top: "stage2_1/branch2a"
}
layer {
name: "stage2_1/branch2b"
type: "Convolution"
bottom: "stage2_1/branch2a"
top: "stage2_1/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_1/branch2b/relu"
type: "ReLU"
bottom: "stage2_1/branch2b"
top: "stage2_1/branch2b"
}
layer {
name: "stage2_1/branch2c"
type: "Convolution"
bottom: "stage2_1/branch2b"
top: "stage2_1/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_1/branch2c/relu"
type: "ReLU"
bottom: "stage2_1/branch2c"
top: "stage2_1/branch2c"
}
layer {
name: "stage2_1/concat"
type: "Concat"
bottom: "stage1_tb/pool"
bottom: "stage2_1/branch1b"
bottom: "stage2_1/branch2c"
top: "stage2_1/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage2_2/branch1a"
type: "Convolution"
bottom: "stage2_1/concat"
top: "stage2_2/branch1a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_2/branch1a/relu"
type: "ReLU"
bottom: "stage2_2/branch1a"
top: "stage2_2/branch1a"
}
layer {
name: "stage2_2/branch1b"
type: "Convolution"
bottom: "stage2_2/branch1a"
top: "stage2_2/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_2/branch1b/relu"
type: "ReLU"
bottom: "stage2_2/branch1b"
top: "stage2_2/branch1b"
}
layer {
name: "stage2_2/branch2a"
type: "Convolution"
bottom: "stage2_1/concat"
top: "stage2_2/branch2a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_2/branch2a/relu"
type: "ReLU"
bottom: "stage2_2/branch2a"
top: "stage2_2/branch2a"
}
layer {
name: "stage2_2/branch2b"
type: "Convolution"
bottom: "stage2_2/branch2a"
top: "stage2_2/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_2/branch2b/relu"
type: "ReLU"
bottom: "stage2_2/branch2b"
top: "stage2_2/branch2b"
}
layer {
name: "stage2_2/branch2c"
type: "Convolution"
bottom: "stage2_2/branch2b"
top: "stage2_2/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_2/branch2c/relu"
type: "ReLU"
bottom: "stage2_2/branch2c"
top: "stage2_2/branch2c"
}
layer {
name: "stage2_2/concat"
type: "Concat"
bottom: "stage2_1/concat"
bottom: "stage2_2/branch1b"
bottom: "stage2_2/branch2c"
top: "stage2_2/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage2_3/branch1a"
type: "Convolution"
bottom: "stage2_2/concat"
top: "stage2_3/branch1a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_3/branch1a/relu"
type: "ReLU"
bottom: "stage2_3/branch1a"
top: "stage2_3/branch1a"
}
layer {
name: "stage2_3/branch1b"
type: "Convolution"
bottom: "stage2_3/branch1a"
top: "stage2_3/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_3/branch1b/relu"
type: "ReLU"
bottom: "stage2_3/branch1b"
top: "stage2_3/branch1b"
}
layer {
name: "stage2_3/branch2a"
type: "Convolution"
bottom: "stage2_2/concat"
top: "stage2_3/branch2a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_3/branch2a/relu"
type: "ReLU"
bottom: "stage2_3/branch2a"
top: "stage2_3/branch2a"
}
layer {
name: "stage2_3/branch2b"
type: "Convolution"
bottom: "stage2_3/branch2a"
top: "stage2_3/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_3/branch2b/relu"
type: "ReLU"
bottom: "stage2_3/branch2b"
top: "stage2_3/branch2b"
}
layer {
name: "stage2_3/branch2c"
type: "Convolution"
bottom: "stage2_3/branch2b"
top: "stage2_3/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_3/branch2c/relu"
type: "ReLU"
bottom: "stage2_3/branch2c"
top: "stage2_3/branch2c"
}
layer {
name: "stage2_3/concat"
type: "Concat"
bottom: "stage2_2/concat"
bottom: "stage2_3/branch1b"
bottom: "stage2_3/branch2c"
top: "stage2_3/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage2_4/branch1a"
type: "Convolution"
bottom: "stage2_3/concat"
top: "stage2_4/branch1a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_4/branch1a/relu"
type: "ReLU"
bottom: "stage2_4/branch1a"
top: "stage2_4/branch1a"
}
layer {
name: "stage2_4/branch1b"
type: "Convolution"
bottom: "stage2_4/branch1a"
top: "stage2_4/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_4/branch1b/relu"
type: "ReLU"
bottom: "stage2_4/branch1b"
top: "stage2_4/branch1b"
}
layer {
name: "stage2_4/branch2a"
type: "Convolution"
bottom: "stage2_3/concat"
top: "stage2_4/branch2a"
convolution_param {
num_output: 32
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_4/branch2a/relu"
type: "ReLU"
bottom: "stage2_4/branch2a"
top: "stage2_4/branch2a"
}
layer {
name: "stage2_4/branch2b"
type: "Convolution"
bottom: "stage2_4/branch2a"
top: "stage2_4/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_4/branch2b/relu"
type: "ReLU"
bottom: "stage2_4/branch2b"
top: "stage2_4/branch2b"
}
layer {
name: "stage2_4/branch2c"
type: "Convolution"
bottom: "stage2_4/branch2b"
top: "stage2_4/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_4/branch2c/relu"
type: "ReLU"
bottom: "stage2_4/branch2c"
top: "stage2_4/branch2c"
}
layer {
name: "stage2_4/concat"
type: "Concat"
bottom: "stage2_3/concat"
bottom: "stage2_4/branch1b"
bottom: "stage2_4/branch2c"
top: "stage2_4/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage2_tb"
type: "Convolution"
bottom: "stage2_4/concat"
top: "stage2_tb"
convolution_param {
num_output: 256
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage2_tb/relu"
type: "ReLU"
bottom: "stage2_tb"
top: "stage2_tb"
}
layer {
name: "stage2_tb/pool"
type: "Pooling"
bottom: "stage2_tb"
top: "stage2_tb/pool"
pooling_param {
pool: AVE
kernel_size: 2
stride: 2
}
}
layer {
name: "stage3_1/branch1a"
type: "Convolution"
bottom: "stage2_tb/pool"
top: "stage3_1/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_1/branch1a/relu"
type: "ReLU"
bottom: "stage3_1/branch1a"
top: "stage3_1/branch1a"
}
layer {
name: "stage3_1/branch1b"
type: "Convolution"
bottom: "stage3_1/branch1a"
top: "stage3_1/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_1/branch1b/relu"
type: "ReLU"
bottom: "stage3_1/branch1b"
top: "stage3_1/branch1b"
}
layer {
name: "stage3_1/branch2a"
type: "Convolution"
bottom: "stage2_tb/pool"
top: "stage3_1/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_1/branch2a/relu"
type: "ReLU"
bottom: "stage3_1/branch2a"
top: "stage3_1/branch2a"
}
layer {
name: "stage3_1/branch2b"
type: "Convolution"
bottom: "stage3_1/branch2a"
top: "stage3_1/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_1/branch2b/relu"
type: "ReLU"
bottom: "stage3_1/branch2b"
top: "stage3_1/branch2b"
}
layer {
name: "stage3_1/branch2c"
type: "Convolution"
bottom: "stage3_1/branch2b"
top: "stage3_1/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_1/branch2c/relu"
type: "ReLU"
bottom: "stage3_1/branch2c"
top: "stage3_1/branch2c"
}
layer {
name: "stage3_1/concat"
type: "Concat"
bottom: "stage2_tb/pool"
bottom: "stage3_1/branch1b"
bottom: "stage3_1/branch2c"
top: "stage3_1/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_2/branch1a"
type: "Convolution"
bottom: "stage3_1/concat"
top: "stage3_2/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_2/branch1a/relu"
type: "ReLU"
bottom: "stage3_2/branch1a"
top: "stage3_2/branch1a"
}
layer {
name: "stage3_2/branch1b"
type: "Convolution"
bottom: "stage3_2/branch1a"
top: "stage3_2/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_2/branch1b/relu"
type: "ReLU"
bottom: "stage3_2/branch1b"
top: "stage3_2/branch1b"
}
layer {
name: "stage3_2/branch2a"
type: "Convolution"
bottom: "stage3_1/concat"
top: "stage3_2/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_2/branch2a/relu"
type: "ReLU"
bottom: "stage3_2/branch2a"
top: "stage3_2/branch2a"
}
layer {
name: "stage3_2/branch2b"
type: "Convolution"
bottom: "stage3_2/branch2a"
top: "stage3_2/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_2/branch2b/relu"
type: "ReLU"
bottom: "stage3_2/branch2b"
top: "stage3_2/branch2b"
}
layer {
name: "stage3_2/branch2c"
type: "Convolution"
bottom: "stage3_2/branch2b"
top: "stage3_2/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_2/branch2c/relu"
type: "ReLU"
bottom: "stage3_2/branch2c"
top: "stage3_2/branch2c"
}
layer {
name: "stage3_2/concat"
type: "Concat"
bottom: "stage3_1/concat"
bottom: "stage3_2/branch1b"
bottom: "stage3_2/branch2c"
top: "stage3_2/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_3/branch1a"
type: "Convolution"
bottom: "stage3_2/concat"
top: "stage3_3/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_3/branch1a/relu"
type: "ReLU"
bottom: "stage3_3/branch1a"
top: "stage3_3/branch1a"
}
layer {
name: "stage3_3/branch1b"
type: "Convolution"
bottom: "stage3_3/branch1a"
top: "stage3_3/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_3/branch1b/relu"
type: "ReLU"
bottom: "stage3_3/branch1b"
top: "stage3_3/branch1b"
}
layer {
name: "stage3_3/branch2a"
type: "Convolution"
bottom: "stage3_2/concat"
top: "stage3_3/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_3/branch2a/relu"
type: "ReLU"
bottom: "stage3_3/branch2a"
top: "stage3_3/branch2a"
}
layer {
name: "stage3_3/branch2b"
type: "Convolution"
bottom: "stage3_3/branch2a"
top: "stage3_3/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_3/branch2b/relu"
type: "ReLU"
bottom: "stage3_3/branch2b"
top: "stage3_3/branch2b"
}
layer {
name: "stage3_3/branch2c"
type: "Convolution"
bottom: "stage3_3/branch2b"
top: "stage3_3/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_3/branch2c/relu"
type: "ReLU"
bottom: "stage3_3/branch2c"
top: "stage3_3/branch2c"
}
layer {
name: "stage3_3/concat"
type: "Concat"
bottom: "stage3_2/concat"
bottom: "stage3_3/branch1b"
bottom: "stage3_3/branch2c"
top: "stage3_3/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_4/branch1a"
type: "Convolution"
bottom: "stage3_3/concat"
top: "stage3_4/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_4/branch1a/relu"
type: "ReLU"
bottom: "stage3_4/branch1a"
top: "stage3_4/branch1a"
}
layer {
name: "stage3_4/branch1b"
type: "Convolution"
bottom: "stage3_4/branch1a"
top: "stage3_4/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_4/branch1b/relu"
type: "ReLU"
bottom: "stage3_4/branch1b"
top: "stage3_4/branch1b"
}
layer {
name: "stage3_4/branch2a"
type: "Convolution"
bottom: "stage3_3/concat"
top: "stage3_4/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_4/branch2a/relu"
type: "ReLU"
bottom: "stage3_4/branch2a"
top: "stage3_4/branch2a"
}
layer {
name: "stage3_4/branch2b"
type: "Convolution"
bottom: "stage3_4/branch2a"
top: "stage3_4/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_4/branch2b/relu"
type: "ReLU"
bottom: "stage3_4/branch2b"
top: "stage3_4/branch2b"
}
layer {
name: "stage3_4/branch2c"
type: "Convolution"
bottom: "stage3_4/branch2b"
top: "stage3_4/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_4/branch2c/relu"
type: "ReLU"
bottom: "stage3_4/branch2c"
top: "stage3_4/branch2c"
}
layer {
name: "stage3_4/concat"
type: "Concat"
bottom: "stage3_3/concat"
bottom: "stage3_4/branch1b"
bottom: "stage3_4/branch2c"
top: "stage3_4/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_5/branch1a"
type: "Convolution"
bottom: "stage3_4/concat"
top: "stage3_5/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_5/branch1a/relu"
type: "ReLU"
bottom: "stage3_5/branch1a"
top: "stage3_5/branch1a"
}
layer {
name: "stage3_5/branch1b"
type: "Convolution"
bottom: "stage3_5/branch1a"
top: "stage3_5/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_5/branch1b/relu"
type: "ReLU"
bottom: "stage3_5/branch1b"
top: "stage3_5/branch1b"
}
layer {
name: "stage3_5/branch2a"
type: "Convolution"
bottom: "stage3_4/concat"
top: "stage3_5/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_5/branch2a/relu"
type: "ReLU"
bottom: "stage3_5/branch2a"
top: "stage3_5/branch2a"
}
layer {
name: "stage3_5/branch2b"
type: "Convolution"
bottom: "stage3_5/branch2a"
top: "stage3_5/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_5/branch2b/relu"
type: "ReLU"
bottom: "stage3_5/branch2b"
top: "stage3_5/branch2b"
}
layer {
name: "stage3_5/branch2c"
type: "Convolution"
bottom: "stage3_5/branch2b"
top: "stage3_5/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_5/branch2c/relu"
type: "ReLU"
bottom: "stage3_5/branch2c"
top: "stage3_5/branch2c"
}
layer {
name: "stage3_5/concat"
type: "Concat"
bottom: "stage3_4/concat"
bottom: "stage3_5/branch1b"
bottom: "stage3_5/branch2c"
top: "stage3_5/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_6/branch1a"
type: "Convolution"
bottom: "stage3_5/concat"
top: "stage3_6/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_6/branch1a/relu"
type: "ReLU"
bottom: "stage3_6/branch1a"
top: "stage3_6/branch1a"
}
layer {
name: "stage3_6/branch1b"
type: "Convolution"
bottom: "stage3_6/branch1a"
top: "stage3_6/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_6/branch1b/relu"
type: "ReLU"
bottom: "stage3_6/branch1b"
top: "stage3_6/branch1b"
}
layer {
name: "stage3_6/branch2a"
type: "Convolution"
bottom: "stage3_5/concat"
top: "stage3_6/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_6/branch2a/relu"
type: "ReLU"
bottom: "stage3_6/branch2a"
top: "stage3_6/branch2a"
}
layer {
name: "stage3_6/branch2b"
type: "Convolution"
bottom: "stage3_6/branch2a"
top: "stage3_6/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_6/branch2b/relu"
type: "ReLU"
bottom: "stage3_6/branch2b"
top: "stage3_6/branch2b"
}
layer {
name: "stage3_6/branch2c"
type: "Convolution"
bottom: "stage3_6/branch2b"
top: "stage3_6/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_6/branch2c/relu"
type: "ReLU"
bottom: "stage3_6/branch2c"
top: "stage3_6/branch2c"
}
layer {
name: "stage3_6/concat"
type: "Concat"
bottom: "stage3_5/concat"
bottom: "stage3_6/branch1b"
bottom: "stage3_6/branch2c"
top: "stage3_6/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_7/branch1a"
type: "Convolution"
bottom: "stage3_6/concat"
top: "stage3_7/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_7/branch1a/relu"
type: "ReLU"
bottom: "stage3_7/branch1a"
top: "stage3_7/branch1a"
}
layer {
name: "stage3_7/branch1b"
type: "Convolution"
bottom: "stage3_7/branch1a"
top: "stage3_7/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_7/branch1b/relu"
type: "ReLU"
bottom: "stage3_7/branch1b"
top: "stage3_7/branch1b"
}
layer {
name: "stage3_7/branch2a"
type: "Convolution"
bottom: "stage3_6/concat"
top: "stage3_7/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_7/branch2a/relu"
type: "ReLU"
bottom: "stage3_7/branch2a"
top: "stage3_7/branch2a"
}
layer {
name: "stage3_7/branch2b"
type: "Convolution"
bottom: "stage3_7/branch2a"
top: "stage3_7/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_7/branch2b/relu"
type: "ReLU"
bottom: "stage3_7/branch2b"
top: "stage3_7/branch2b"
}
layer {
name: "stage3_7/branch2c"
type: "Convolution"
bottom: "stage3_7/branch2b"
top: "stage3_7/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_7/branch2c/relu"
type: "ReLU"
bottom: "stage3_7/branch2c"
top: "stage3_7/branch2c"
}
layer {
name: "stage3_7/concat"
type: "Concat"
bottom: "stage3_6/concat"
bottom: "stage3_7/branch1b"
bottom: "stage3_7/branch2c"
top: "stage3_7/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_8/branch1a"
type: "Convolution"
bottom: "stage3_7/concat"
top: "stage3_8/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_8/branch1a/relu"
type: "ReLU"
bottom: "stage3_8/branch1a"
top: "stage3_8/branch1a"
}
layer {
name: "stage3_8/branch1b"
type: "Convolution"
bottom: "stage3_8/branch1a"
top: "stage3_8/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_8/branch1b/relu"
type: "ReLU"
bottom: "stage3_8/branch1b"
top: "stage3_8/branch1b"
}
layer {
name: "stage3_8/branch2a"
type: "Convolution"
bottom: "stage3_7/concat"
top: "stage3_8/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_8/branch2a/relu"
type: "ReLU"
bottom: "stage3_8/branch2a"
top: "stage3_8/branch2a"
}
layer {
name: "stage3_8/branch2b"
type: "Convolution"
bottom: "stage3_8/branch2a"
top: "stage3_8/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_8/branch2b/relu"
type: "ReLU"
bottom: "stage3_8/branch2b"
top: "stage3_8/branch2b"
}
layer {
name: "stage3_8/branch2c"
type: "Convolution"
bottom: "stage3_8/branch2b"
top: "stage3_8/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_8/branch2c/relu"
type: "ReLU"
bottom: "stage3_8/branch2c"
top: "stage3_8/branch2c"
}
layer {
name: "stage3_8/concat"
type: "Concat"
bottom: "stage3_7/concat"
bottom: "stage3_8/branch1b"
bottom: "stage3_8/branch2c"
top: "stage3_8/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage3_tb"
type: "Convolution"
bottom: "stage3_8/concat"
top: "stage3_tb"
convolution_param {
num_output: 512
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage3_tb/relu"
type: "ReLU"
bottom: "stage3_tb"
top: "stage3_tb"
}
layer {
name: "stage3_tb/pool"
type: "Pooling"
bottom: "stage3_tb"
top: "stage3_tb/pool"
pooling_param {
pool: AVE
kernel_size: 2
stride: 2
}
}
layer {
name: "stage4_1/branch1a"
type: "Convolution"
bottom: "stage3_tb/pool"
top: "stage4_1/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_1/branch1a/relu"
type: "ReLU"
bottom: "stage4_1/branch1a"
top: "stage4_1/branch1a"
}
layer {
name: "stage4_1/branch1b"
type: "Convolution"
bottom: "stage4_1/branch1a"
top: "stage4_1/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_1/branch1b/relu"
type: "ReLU"
bottom: "stage4_1/branch1b"
top: "stage4_1/branch1b"
}
layer {
name: "stage4_1/branch2a"
type: "Convolution"
bottom: "stage3_tb/pool"
top: "stage4_1/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_1/branch2a/relu"
type: "ReLU"
bottom: "stage4_1/branch2a"
top: "stage4_1/branch2a"
}
layer {
name: "stage4_1/branch2b"
type: "Convolution"
bottom: "stage4_1/branch2a"
top: "stage4_1/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_1/branch2b/relu"
type: "ReLU"
bottom: "stage4_1/branch2b"
top: "stage4_1/branch2b"
}
layer {
name: "stage4_1/branch2c"
type: "Convolution"
bottom: "stage4_1/branch2b"
top: "stage4_1/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_1/branch2c/relu"
type: "ReLU"
bottom: "stage4_1/branch2c"
top: "stage4_1/branch2c"
}
layer {
name: "stage4_1/concat"
type: "Concat"
bottom: "stage3_tb/pool"
bottom: "stage4_1/branch1b"
bottom: "stage4_1/branch2c"
top: "stage4_1/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage4_2/branch1a"
type: "Convolution"
bottom: "stage4_1/concat"
top: "stage4_2/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_2/branch1a/relu"
type: "ReLU"
bottom: "stage4_2/branch1a"
top: "stage4_2/branch1a"
}
layer {
name: "stage4_2/branch1b"
type: "Convolution"
bottom: "stage4_2/branch1a"
top: "stage4_2/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_2/branch1b/relu"
type: "ReLU"
bottom: "stage4_2/branch1b"
top: "stage4_2/branch1b"
}
layer {
name: "stage4_2/branch2a"
type: "Convolution"
bottom: "stage4_1/concat"
top: "stage4_2/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_2/branch2a/relu"
type: "ReLU"
bottom: "stage4_2/branch2a"
top: "stage4_2/branch2a"
}
layer {
name: "stage4_2/branch2b"
type: "Convolution"
bottom: "stage4_2/branch2a"
top: "stage4_2/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_2/branch2b/relu"
type: "ReLU"
bottom: "stage4_2/branch2b"
top: "stage4_2/branch2b"
}
layer {
name: "stage4_2/branch2c"
type: "Convolution"
bottom: "stage4_2/branch2b"
top: "stage4_2/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_2/branch2c/relu"
type: "ReLU"
bottom: "stage4_2/branch2c"
top: "stage4_2/branch2c"
}
layer {
name: "stage4_2/concat"
type: "Concat"
bottom: "stage4_1/concat"
bottom: "stage4_2/branch1b"
bottom: "stage4_2/branch2c"
top: "stage4_2/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage4_3/branch1a"
type: "Convolution"
bottom: "stage4_2/concat"
top: "stage4_3/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_3/branch1a/relu"
type: "ReLU"
bottom: "stage4_3/branch1a"
top: "stage4_3/branch1a"
}
layer {
name: "stage4_3/branch1b"
type: "Convolution"
bottom: "stage4_3/branch1a"
top: "stage4_3/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_3/branch1b/relu"
type: "ReLU"
bottom: "stage4_3/branch1b"
top: "stage4_3/branch1b"
}
layer {
name: "stage4_3/branch2a"
type: "Convolution"
bottom: "stage4_2/concat"
top: "stage4_3/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_3/branch2a/relu"
type: "ReLU"
bottom: "stage4_3/branch2a"
top: "stage4_3/branch2a"
}
layer {
name: "stage4_3/branch2b"
type: "Convolution"
bottom: "stage4_3/branch2a"
top: "stage4_3/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_3/branch2b/relu"
type: "ReLU"
bottom: "stage4_3/branch2b"
top: "stage4_3/branch2b"
}
layer {
name: "stage4_3/branch2c"
type: "Convolution"
bottom: "stage4_3/branch2b"
top: "stage4_3/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_3/branch2c/relu"
type: "ReLU"
bottom: "stage4_3/branch2c"
top: "stage4_3/branch2c"
}
layer {
name: "stage4_3/concat"
type: "Concat"
bottom: "stage4_2/concat"
bottom: "stage4_3/branch1b"
bottom: "stage4_3/branch2c"
top: "stage4_3/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage4_4/branch1a"
type: "Convolution"
bottom: "stage4_3/concat"
top: "stage4_4/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_4/branch1a/relu"
type: "ReLU"
bottom: "stage4_4/branch1a"
top: "stage4_4/branch1a"
}
layer {
name: "stage4_4/branch1b"
type: "Convolution"
bottom: "stage4_4/branch1a"
top: "stage4_4/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_4/branch1b/relu"
type: "ReLU"
bottom: "stage4_4/branch1b"
top: "stage4_4/branch1b"
}
layer {
name: "stage4_4/branch2a"
type: "Convolution"
bottom: "stage4_3/concat"
top: "stage4_4/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_4/branch2a/relu"
type: "ReLU"
bottom: "stage4_4/branch2a"
top: "stage4_4/branch2a"
}
layer {
name: "stage4_4/branch2b"
type: "Convolution"
bottom: "stage4_4/branch2a"
top: "stage4_4/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_4/branch2b/relu"
type: "ReLU"
bottom: "stage4_4/branch2b"
top: "stage4_4/branch2b"
}
layer {
name: "stage4_4/branch2c"
type: "Convolution"
bottom: "stage4_4/branch2b"
top: "stage4_4/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_4/branch2c/relu"
type: "ReLU"
bottom: "stage4_4/branch2c"
top: "stage4_4/branch2c"
}
layer {
name: "stage4_4/concat"
type: "Concat"
bottom: "stage4_3/concat"
bottom: "stage4_4/branch1b"
bottom: "stage4_4/branch2c"
top: "stage4_4/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage4_5/branch1a"
type: "Convolution"
bottom: "stage4_4/concat"
top: "stage4_5/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_5/branch1a/relu"
type: "ReLU"
bottom: "stage4_5/branch1a"
top: "stage4_5/branch1a"
}
layer {
name: "stage4_5/branch1b"
type: "Convolution"
bottom: "stage4_5/branch1a"
top: "stage4_5/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_5/branch1b/relu"
type: "ReLU"
bottom: "stage4_5/branch1b"
top: "stage4_5/branch1b"
}
layer {
name: "stage4_5/branch2a"
type: "Convolution"
bottom: "stage4_4/concat"
top: "stage4_5/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_5/branch2a/relu"
type: "ReLU"
bottom: "stage4_5/branch2a"
top: "stage4_5/branch2a"
}
layer {
name: "stage4_5/branch2b"
type: "Convolution"
bottom: "stage4_5/branch2a"
top: "stage4_5/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_5/branch2b/relu"
type: "ReLU"
bottom: "stage4_5/branch2b"
top: "stage4_5/branch2b"
}
layer {
name: "stage4_5/branch2c"
type: "Convolution"
bottom: "stage4_5/branch2b"
top: "stage4_5/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_5/branch2c/relu"
type: "ReLU"
bottom: "stage4_5/branch2c"
top: "stage4_5/branch2c"
}
layer {
name: "stage4_5/concat"
type: "Concat"
bottom: "stage4_4/concat"
bottom: "stage4_5/branch1b"
bottom: "stage4_5/branch2c"
top: "stage4_5/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage4_6/branch1a"
type: "Convolution"
bottom: "stage4_5/concat"
top: "stage4_6/branch1a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_6/branch1a/relu"
type: "ReLU"
bottom: "stage4_6/branch1a"
top: "stage4_6/branch1a"
}
layer {
name: "stage4_6/branch1b"
type: "Convolution"
bottom: "stage4_6/branch1a"
top: "stage4_6/branch1b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_6/branch1b/relu"
type: "ReLU"
bottom: "stage4_6/branch1b"
top: "stage4_6/branch1b"
}
layer {
name: "stage4_6/branch2a"
type: "Convolution"
bottom: "stage4_5/concat"
top: "stage4_6/branch2a"
convolution_param {
num_output: 64
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_6/branch2a/relu"
type: "ReLU"
bottom: "stage4_6/branch2a"
top: "stage4_6/branch2a"
}
layer {
name: "stage4_6/branch2b"
type: "Convolution"
bottom: "stage4_6/branch2a"
top: "stage4_6/branch2b"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_6/branch2b/relu"
type: "ReLU"
bottom: "stage4_6/branch2b"
top: "stage4_6/branch2b"
}
layer {
name: "stage4_6/branch2c"
type: "Convolution"
bottom: "stage4_6/branch2b"
top: "stage4_6/branch2c"
convolution_param {
num_output: 16
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_6/branch2c/relu"
type: "ReLU"
bottom: "stage4_6/branch2c"
top: "stage4_6/branch2c"
}
layer {
name: "stage4_6/concat"
type: "Concat"
bottom: "stage4_5/concat"
bottom: "stage4_6/branch1b"
bottom: "stage4_6/branch2c"
top: "stage4_6/concat"
concat_param {
axis: 1
}
}
layer {
name: "stage4_tb"
type: "Convolution"
bottom: "stage4_6/concat"
top: "stage4_tb"
convolution_param {
num_output: 704
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_tb/relu"
type: "ReLU"
bottom: "stage4_tb"
top: "stage4_tb"
}
layer {
name: "stage4_tb/ext/pm3/b2a"
type: "Convolution"
bottom: "stage4_tb"
top: "stage4_tb/ext/pm3/b2a"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 128
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_tb/ext/pm3/b2a/relu"
type: "ReLU"
bottom: "stage4_tb/ext/pm3/b2a"
top: "stage4_tb/ext/pm3/b2a"
}
layer {
name: "stage4_tb/ext/pm3/b2b"
type: "Convolution"
bottom: "stage4_tb/ext/pm3/b2a"
top: "stage4_tb/ext/pm3/b2b"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 512
bias_term: true
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "stage4_tb/ext/pm3/b2b/relu"
type: "ReLU"
bottom: "stage4_tb/ext/pm3/b2b"
top: "stage4_tb/ext/pm3/b2b"
}
layer {
name: "stage4_tb/ext/pm3/b2c"
type: "Convolution"
bottom: "stage4_tb/ext/pm3/b2b"
top: "stage4_tb/ext/pm3/b2c"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 256
bias_term: true
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "conv_indoor"
type: "Convolution"
bottom: "stage4_tb/ext/pm3/b2c"
top: "conv_indoor"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 125
kernel_size: 1
pad: 0
stride: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.0
}
}
}
layer {
name: "detection_out"
type: "YoloDetectionOutput"
bottom: "conv_indoor"
top: "detection_out"
include {
phase: TEST
}
yolo_detection_output_param {
num_classes: 20
coords: 4
confidence_threshold: 0.20
nms_threshold: 0.45
biases: 1.08
biases: 1.19
biases: 3.42
biases: 4.41
biases: 6.63
biases: 11.38
biases: 9.42
biases: 5.11
biases: 16.62
biases: 10.52
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment