Skip to content

Instantly share code, notes, and snippets.

@andrijdavid
Created May 27, 2018 11:25
Show Gist options
  • Save andrijdavid/5544920a64436b010b760a5b688d29d4 to your computer and use it in GitHub Desktop.
Save andrijdavid/5544920a64436b010b760a5b688d29d4 to your computer and use it in GitHub Desktop.
SENet 154 caffe
name: "SENet"
# mean_value: 104, 117, 123
layer {
name: "data"
type: "Input"
top: "data"
input_param: {
shape: {
dim: 1
dim: 3
dim: 224
dim: 224
}
}
}
layer {
name: "conv1_1/3x3_s2"
type: "Convolution"
bottom: "data"
top: "conv1_1/3x3_s2"
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "conv1_1/3x3_s2/bn"
type: "BatchNorm"
bottom: "conv1_1/3x3_s2"
top: "conv1_1/3x3_s2"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv1_1/3x3_s2/bn/scale"
type: "Scale"
bottom: "conv1_1/3x3_s2"
top: "conv1_1/3x3_s2"
scale_param {
bias_term: true
}
}
layer {
name: "conv1_1/relu_3x3_s2"
type: "ReLU"
bottom: "conv1_1/3x3_s2"
top: "conv1_1/3x3_s2"
}
layer {
name: "conv1_2/3x3"
type: "Convolution"
bottom: "conv1_1/3x3_s2"
top: "conv1_2/3x3"
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
}
}
layer {
name: "conv1_2/3x3/bn"
type: "BatchNorm"
bottom: "conv1_2/3x3"
top: "conv1_2/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv1_2/3x3/bn/scale"
type: "Scale"
bottom: "conv1_2/3x3"
top: "conv1_2/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv1_2/relu_3x3"
type: "ReLU"
bottom: "conv1_2/3x3"
top: "conv1_2/3x3"
}
layer {
name: "conv1_3/3x3"
type: "Convolution"
bottom: "conv1_2/3x3"
top: "conv1_3/3x3"
convolution_param {
num_output: 128
bias_term: false
pad: 1
kernel_size: 3
stride: 1
}
}
layer {
name: "conv1_3/3x3/bn"
type: "BatchNorm"
bottom: "conv1_3/3x3"
top: "conv1_3/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv1_3/3x3/bn/scale"
type: "Scale"
bottom: "conv1_3/3x3"
top: "conv1_3/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv1_3/relu_3x3"
type: "ReLU"
bottom: "conv1_3/3x3"
top: "conv1_3/3x3"
}
layer {
name: "pool1/3x3_s2"
type: "Pooling"
bottom: "conv1_3/3x3"
top: "pool1/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "conv2_1_1x1_reduce"
type: "Convolution"
bottom: "pool1/3x3_s2"
top: "conv2_1_1x1_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_1_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv2_1_1x1_reduce"
top: "conv2_1_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_1_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv2_1_1x1_reduce"
top: "conv2_1_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_1_1x1_reduce/relu"
type: "ReLU"
bottom: "conv2_1_1x1_reduce"
top: "conv2_1_1x1_reduce"
}
layer {
name: "conv2_1_3x3"
type: "Convolution"
bottom: "conv2_1_1x1_reduce"
top: "conv2_1_3x3"
convolution_param {
num_output: 256
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv2_1_3x3/bn"
type: "BatchNorm"
bottom: "conv2_1_3x3"
top: "conv2_1_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_1_3x3/bn/scale"
type: "Scale"
bottom: "conv2_1_3x3"
top: "conv2_1_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_1_3x3/relu"
type: "ReLU"
bottom: "conv2_1_3x3"
top: "conv2_1_3x3"
}
layer {
name: "conv2_1_1x1_increase"
type: "Convolution"
bottom: "conv2_1_3x3"
top: "conv2_1_1x1_increase"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_1_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv2_1_1x1_increase"
top: "conv2_1_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_1_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv2_1_1x1_increase"
top: "conv2_1_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_1_global_pool"
type: "Pooling"
bottom: "conv2_1_1x1_increase"
top: "conv2_1_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv2_1_1x1_down"
type: "Convolution"
bottom: "conv2_1_global_pool"
top: "conv2_1_1x1_down"
convolution_param {
num_output: 16
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_1_1x1_down/relu"
type: "ReLU"
bottom: "conv2_1_1x1_down"
top: "conv2_1_1x1_down"
}
layer {
name: "conv2_1_1x1_up"
type: "Convolution"
bottom: "conv2_1_1x1_down"
top: "conv2_1_1x1_up"
convolution_param {
num_output: 256
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_1_prob"
type: "Sigmoid"
bottom: "conv2_1_1x1_up"
top: "conv2_1_1x1_up"
}
layer {
name: "conv2_1_1x1_proj"
type: "Convolution"
bottom: "pool1/3x3_s2"
top: "conv2_1_1x1_proj"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_1_1x1_proj/bn"
type: "BatchNorm"
bottom: "conv2_1_1x1_proj"
top: "conv2_1_1x1_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_1_1x1_proj/bn/scale"
type: "Scale"
bottom: "conv2_1_1x1_proj"
top: "conv2_1_1x1_proj"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_1"
type: "Axpy"
bottom: "conv2_1_1x1_up"
bottom: "conv2_1_1x1_increase"
bottom: "conv2_1_1x1_proj"
top: "conv2_1"
}
layer {
name: "conv2_1/relu"
type: "ReLU"
bottom: "conv2_1"
top: "conv2_1"
}
layer {
name: "conv2_2_1x1_reduce"
type: "Convolution"
bottom: "conv2_1"
top: "conv2_2_1x1_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_2_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv2_2_1x1_reduce"
top: "conv2_2_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_2_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv2_2_1x1_reduce"
top: "conv2_2_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_2_1x1_reduce/relu"
type: "ReLU"
bottom: "conv2_2_1x1_reduce"
top: "conv2_2_1x1_reduce"
}
layer {
name: "conv2_2_3x3"
type: "Convolution"
bottom: "conv2_2_1x1_reduce"
top: "conv2_2_3x3"
convolution_param {
num_output: 256
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv2_2_3x3/bn"
type: "BatchNorm"
bottom: "conv2_2_3x3"
top: "conv2_2_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_2_3x3/bn/scale"
type: "Scale"
bottom: "conv2_2_3x3"
top: "conv2_2_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_2_3x3/relu"
type: "ReLU"
bottom: "conv2_2_3x3"
top: "conv2_2_3x3"
}
layer {
name: "conv2_2_1x1_increase"
type: "Convolution"
bottom: "conv2_2_3x3"
top: "conv2_2_1x1_increase"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_2_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv2_2_1x1_increase"
top: "conv2_2_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_2_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv2_2_1x1_increase"
top: "conv2_2_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_2_global_pool"
type: "Pooling"
bottom: "conv2_2_1x1_increase"
top: "conv2_2_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv2_2_1x1_down"
type: "Convolution"
bottom: "conv2_2_global_pool"
top: "conv2_2_1x1_down"
convolution_param {
num_output: 16
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_2_1x1_down/relu"
type: "ReLU"
bottom: "conv2_2_1x1_down"
top: "conv2_2_1x1_down"
}
layer {
name: "conv2_2_1x1_up"
type: "Convolution"
bottom: "conv2_2_1x1_down"
top: "conv2_2_1x1_up"
convolution_param {
num_output: 256
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_2_prob"
type: "Sigmoid"
bottom: "conv2_2_1x1_up"
top: "conv2_2_1x1_up"
}
layer {
name: "conv2_2"
type: "Axpy"
bottom: "conv2_2_1x1_up"
bottom: "conv2_2_1x1_increase"
bottom: "conv2_1"
top: "conv2_2"
}
layer {
name: "conv2_2/relu"
type: "ReLU"
bottom: "conv2_2"
top: "conv2_2"
}
layer {
name: "conv2_3_1x1_reduce"
type: "Convolution"
bottom: "conv2_2"
top: "conv2_3_1x1_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_3_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv2_3_1x1_reduce"
top: "conv2_3_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_3_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv2_3_1x1_reduce"
top: "conv2_3_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_3_1x1_reduce/relu"
type: "ReLU"
bottom: "conv2_3_1x1_reduce"
top: "conv2_3_1x1_reduce"
}
layer {
name: "conv2_3_3x3"
type: "Convolution"
bottom: "conv2_3_1x1_reduce"
top: "conv2_3_3x3"
convolution_param {
num_output: 256
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv2_3_3x3/bn"
type: "BatchNorm"
bottom: "conv2_3_3x3"
top: "conv2_3_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_3_3x3/bn/scale"
type: "Scale"
bottom: "conv2_3_3x3"
top: "conv2_3_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_3_3x3/relu"
type: "ReLU"
bottom: "conv2_3_3x3"
top: "conv2_3_3x3"
}
layer {
name: "conv2_3_1x1_increase"
type: "Convolution"
bottom: "conv2_3_3x3"
top: "conv2_3_1x1_increase"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_3_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv2_3_1x1_increase"
top: "conv2_3_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2_3_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv2_3_1x1_increase"
top: "conv2_3_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv2_3_global_pool"
type: "Pooling"
bottom: "conv2_3_1x1_increase"
top: "conv2_3_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv2_3_1x1_down"
type: "Convolution"
bottom: "conv2_3_global_pool"
top: "conv2_3_1x1_down"
convolution_param {
num_output: 16
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_3_1x1_down/relu"
type: "ReLU"
bottom: "conv2_3_1x1_down"
top: "conv2_3_1x1_down"
}
layer {
name: "conv2_3_1x1_up"
type: "Convolution"
bottom: "conv2_3_1x1_down"
top: "conv2_3_1x1_up"
convolution_param {
num_output: 256
kernel_size: 1
stride: 1
}
}
layer {
name: "conv2_3_prob"
type: "Sigmoid"
bottom: "conv2_3_1x1_up"
top: "conv2_3_1x1_up"
}
layer {
name: "conv2_3"
type: "Axpy"
bottom: "conv2_3_1x1_up"
bottom: "conv2_3_1x1_increase"
bottom: "conv2_2"
top: "conv2_3"
}
layer {
name: "conv2_3/relu"
type: "ReLU"
bottom: "conv2_3"
top: "conv2_3"
}
layer {
name: "conv3_1_1x1_reduce"
type: "Convolution"
bottom: "conv2_3"
top: "conv3_1_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_1_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_1_1x1_reduce"
top: "conv3_1_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_1_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_1_1x1_reduce"
top: "conv3_1_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_1_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_1_1x1_reduce"
top: "conv3_1_1x1_reduce"
}
layer {
name: "conv3_1_3x3"
type: "Convolution"
bottom: "conv3_1_1x1_reduce"
top: "conv3_1_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 2
}
}
layer {
name: "conv3_1_3x3/bn"
type: "BatchNorm"
bottom: "conv3_1_3x3"
top: "conv3_1_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_1_3x3/bn/scale"
type: "Scale"
bottom: "conv3_1_3x3"
top: "conv3_1_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_1_3x3/relu"
type: "ReLU"
bottom: "conv3_1_3x3"
top: "conv3_1_3x3"
}
layer {
name: "conv3_1_1x1_increase"
type: "Convolution"
bottom: "conv3_1_3x3"
top: "conv3_1_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_1_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_1_1x1_increase"
top: "conv3_1_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_1_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_1_1x1_increase"
top: "conv3_1_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_1_global_pool"
type: "Pooling"
bottom: "conv3_1_1x1_increase"
top: "conv3_1_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_1_1x1_down"
type: "Convolution"
bottom: "conv3_1_global_pool"
top: "conv3_1_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_1_1x1_down/relu"
type: "ReLU"
bottom: "conv3_1_1x1_down"
top: "conv3_1_1x1_down"
}
layer {
name: "conv3_1_1x1_up"
type: "Convolution"
bottom: "conv3_1_1x1_down"
top: "conv3_1_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_1_prob"
type: "Sigmoid"
bottom: "conv3_1_1x1_up"
top: "conv3_1_1x1_up"
}
layer {
name: "conv3_1_1x1_proj"
type: "Convolution"
bottom: "conv2_3"
top: "conv3_1_1x1_proj"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "conv3_1_1x1_proj/bn"
type: "BatchNorm"
bottom: "conv3_1_1x1_proj"
top: "conv3_1_1x1_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_1_1x1_proj/bn/scale"
type: "Scale"
bottom: "conv3_1_1x1_proj"
top: "conv3_1_1x1_proj"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_1"
type: "Axpy"
bottom: "conv3_1_1x1_up"
bottom: "conv3_1_1x1_increase"
bottom: "conv3_1_1x1_proj"
top: "conv3_1"
}
layer {
name: "conv3_1/relu"
type: "ReLU"
bottom: "conv3_1"
top: "conv3_1"
}
layer {
name: "conv3_2_1x1_reduce"
type: "Convolution"
bottom: "conv3_1"
top: "conv3_2_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_2_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_2_1x1_reduce"
top: "conv3_2_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_2_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_2_1x1_reduce"
top: "conv3_2_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_2_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_2_1x1_reduce"
top: "conv3_2_1x1_reduce"
}
layer {
name: "conv3_2_3x3"
type: "Convolution"
bottom: "conv3_2_1x1_reduce"
top: "conv3_2_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv3_2_3x3/bn"
type: "BatchNorm"
bottom: "conv3_2_3x3"
top: "conv3_2_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_2_3x3/bn/scale"
type: "Scale"
bottom: "conv3_2_3x3"
top: "conv3_2_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_2_3x3/relu"
type: "ReLU"
bottom: "conv3_2_3x3"
top: "conv3_2_3x3"
}
layer {
name: "conv3_2_1x1_increase"
type: "Convolution"
bottom: "conv3_2_3x3"
top: "conv3_2_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_2_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_2_1x1_increase"
top: "conv3_2_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_2_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_2_1x1_increase"
top: "conv3_2_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_2_global_pool"
type: "Pooling"
bottom: "conv3_2_1x1_increase"
top: "conv3_2_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_2_1x1_down"
type: "Convolution"
bottom: "conv3_2_global_pool"
top: "conv3_2_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_2_1x1_down/relu"
type: "ReLU"
bottom: "conv3_2_1x1_down"
top: "conv3_2_1x1_down"
}
layer {
name: "conv3_2_1x1_up"
type: "Convolution"
bottom: "conv3_2_1x1_down"
top: "conv3_2_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_2_prob"
type: "Sigmoid"
bottom: "conv3_2_1x1_up"
top: "conv3_2_1x1_up"
}
layer {
name: "conv3_2"
type: "Axpy"
bottom: "conv3_2_1x1_up"
bottom: "conv3_2_1x1_increase"
bottom: "conv3_1"
top: "conv3_2"
}
layer {
name: "conv3_2/relu"
type: "ReLU"
bottom: "conv3_2"
top: "conv3_2"
}
layer {
name: "conv3_3_1x1_reduce"
type: "Convolution"
bottom: "conv3_2"
top: "conv3_3_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_3_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_3_1x1_reduce"
top: "conv3_3_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_3_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_3_1x1_reduce"
top: "conv3_3_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_3_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_3_1x1_reduce"
top: "conv3_3_1x1_reduce"
}
layer {
name: "conv3_3_3x3"
type: "Convolution"
bottom: "conv3_3_1x1_reduce"
top: "conv3_3_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv3_3_3x3/bn"
type: "BatchNorm"
bottom: "conv3_3_3x3"
top: "conv3_3_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_3_3x3/bn/scale"
type: "Scale"
bottom: "conv3_3_3x3"
top: "conv3_3_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_3_3x3/relu"
type: "ReLU"
bottom: "conv3_3_3x3"
top: "conv3_3_3x3"
}
layer {
name: "conv3_3_1x1_increase"
type: "Convolution"
bottom: "conv3_3_3x3"
top: "conv3_3_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_3_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_3_1x1_increase"
top: "conv3_3_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_3_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_3_1x1_increase"
top: "conv3_3_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_3_global_pool"
type: "Pooling"
bottom: "conv3_3_1x1_increase"
top: "conv3_3_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_3_1x1_down"
type: "Convolution"
bottom: "conv3_3_global_pool"
top: "conv3_3_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_3_1x1_down/relu"
type: "ReLU"
bottom: "conv3_3_1x1_down"
top: "conv3_3_1x1_down"
}
layer {
name: "conv3_3_1x1_up"
type: "Convolution"
bottom: "conv3_3_1x1_down"
top: "conv3_3_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_3_prob"
type: "Sigmoid"
bottom: "conv3_3_1x1_up"
top: "conv3_3_1x1_up"
}
layer {
name: "conv3_3"
type: "Axpy"
bottom: "conv3_3_1x1_up"
bottom: "conv3_3_1x1_increase"
bottom: "conv3_2"
top: "conv3_3"
}
layer {
name: "conv3_3/relu"
type: "ReLU"
bottom: "conv3_3"
top: "conv3_3"
}
layer {
name: "conv3_4_1x1_reduce"
type: "Convolution"
bottom: "conv3_3"
top: "conv3_4_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_4_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_4_1x1_reduce"
top: "conv3_4_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_4_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_4_1x1_reduce"
top: "conv3_4_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_4_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_4_1x1_reduce"
top: "conv3_4_1x1_reduce"
}
layer {
name: "conv3_4_3x3"
type: "Convolution"
bottom: "conv3_4_1x1_reduce"
top: "conv3_4_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv3_4_3x3/bn"
type: "BatchNorm"
bottom: "conv3_4_3x3"
top: "conv3_4_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_4_3x3/bn/scale"
type: "Scale"
bottom: "conv3_4_3x3"
top: "conv3_4_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_4_3x3/relu"
type: "ReLU"
bottom: "conv3_4_3x3"
top: "conv3_4_3x3"
}
layer {
name: "conv3_4_1x1_increase"
type: "Convolution"
bottom: "conv3_4_3x3"
top: "conv3_4_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_4_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_4_1x1_increase"
top: "conv3_4_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_4_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_4_1x1_increase"
top: "conv3_4_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_4_global_pool"
type: "Pooling"
bottom: "conv3_4_1x1_increase"
top: "conv3_4_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_4_1x1_down"
type: "Convolution"
bottom: "conv3_4_global_pool"
top: "conv3_4_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_4_1x1_down/relu"
type: "ReLU"
bottom: "conv3_4_1x1_down"
top: "conv3_4_1x1_down"
}
layer {
name: "conv3_4_1x1_up"
type: "Convolution"
bottom: "conv3_4_1x1_down"
top: "conv3_4_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_4_prob"
type: "Sigmoid"
bottom: "conv3_4_1x1_up"
top: "conv3_4_1x1_up"
}
layer {
name: "conv3_4"
type: "Axpy"
bottom: "conv3_4_1x1_up"
bottom: "conv3_4_1x1_increase"
bottom: "conv3_3"
top: "conv3_4"
}
layer {
name: "conv3_4/relu"
type: "ReLU"
bottom: "conv3_4"
top: "conv3_4"
}
layer {
name: "conv3_5_1x1_reduce"
type: "Convolution"
bottom: "conv3_4"
top: "conv3_5_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_5_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_5_1x1_reduce"
top: "conv3_5_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_5_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_5_1x1_reduce"
top: "conv3_5_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_5_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_5_1x1_reduce"
top: "conv3_5_1x1_reduce"
}
layer {
name: "conv3_5_3x3"
type: "Convolution"
bottom: "conv3_5_1x1_reduce"
top: "conv3_5_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv3_5_3x3/bn"
type: "BatchNorm"
bottom: "conv3_5_3x3"
top: "conv3_5_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_5_3x3/bn/scale"
type: "Scale"
bottom: "conv3_5_3x3"
top: "conv3_5_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_5_3x3/relu"
type: "ReLU"
bottom: "conv3_5_3x3"
top: "conv3_5_3x3"
}
layer {
name: "conv3_5_1x1_increase"
type: "Convolution"
bottom: "conv3_5_3x3"
top: "conv3_5_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_5_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_5_1x1_increase"
top: "conv3_5_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_5_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_5_1x1_increase"
top: "conv3_5_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_5_global_pool"
type: "Pooling"
bottom: "conv3_5_1x1_increase"
top: "conv3_5_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_5_1x1_down"
type: "Convolution"
bottom: "conv3_5_global_pool"
top: "conv3_5_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_5_1x1_down/relu"
type: "ReLU"
bottom: "conv3_5_1x1_down"
top: "conv3_5_1x1_down"
}
layer {
name: "conv3_5_1x1_up"
type: "Convolution"
bottom: "conv3_5_1x1_down"
top: "conv3_5_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_5_prob"
type: "Sigmoid"
bottom: "conv3_5_1x1_up"
top: "conv3_5_1x1_up"
}
layer {
name: "conv3_5"
type: "Axpy"
bottom: "conv3_5_1x1_up"
bottom: "conv3_5_1x1_increase"
bottom: "conv3_4"
top: "conv3_5"
}
layer {
name: "conv3_5/relu"
type: "ReLU"
bottom: "conv3_5"
top: "conv3_5"
}
layer {
name: "conv3_6_1x1_reduce"
type: "Convolution"
bottom: "conv3_5"
top: "conv3_6_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_6_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_6_1x1_reduce"
top: "conv3_6_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_6_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_6_1x1_reduce"
top: "conv3_6_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_6_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_6_1x1_reduce"
top: "conv3_6_1x1_reduce"
}
layer {
name: "conv3_6_3x3"
type: "Convolution"
bottom: "conv3_6_1x1_reduce"
top: "conv3_6_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv3_6_3x3/bn"
type: "BatchNorm"
bottom: "conv3_6_3x3"
top: "conv3_6_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_6_3x3/bn/scale"
type: "Scale"
bottom: "conv3_6_3x3"
top: "conv3_6_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_6_3x3/relu"
type: "ReLU"
bottom: "conv3_6_3x3"
top: "conv3_6_3x3"
}
layer {
name: "conv3_6_1x1_increase"
type: "Convolution"
bottom: "conv3_6_3x3"
top: "conv3_6_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_6_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_6_1x1_increase"
top: "conv3_6_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_6_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_6_1x1_increase"
top: "conv3_6_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_6_global_pool"
type: "Pooling"
bottom: "conv3_6_1x1_increase"
top: "conv3_6_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_6_1x1_down"
type: "Convolution"
bottom: "conv3_6_global_pool"
top: "conv3_6_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_6_1x1_down/relu"
type: "ReLU"
bottom: "conv3_6_1x1_down"
top: "conv3_6_1x1_down"
}
layer {
name: "conv3_6_1x1_up"
type: "Convolution"
bottom: "conv3_6_1x1_down"
top: "conv3_6_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_6_prob"
type: "Sigmoid"
bottom: "conv3_6_1x1_up"
top: "conv3_6_1x1_up"
}
layer {
name: "conv3_6"
type: "Axpy"
bottom: "conv3_6_1x1_up"
bottom: "conv3_6_1x1_increase"
bottom: "conv3_5"
top: "conv3_6"
}
layer {
name: "conv3_6/relu"
type: "ReLU"
bottom: "conv3_6"
top: "conv3_6"
}
layer {
name: "conv3_7_1x1_reduce"
type: "Convolution"
bottom: "conv3_6"
top: "conv3_7_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_7_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_7_1x1_reduce"
top: "conv3_7_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_7_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_7_1x1_reduce"
top: "conv3_7_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_7_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_7_1x1_reduce"
top: "conv3_7_1x1_reduce"
}
layer {
name: "conv3_7_3x3"
type: "Convolution"
bottom: "conv3_7_1x1_reduce"
top: "conv3_7_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv3_7_3x3/bn"
type: "BatchNorm"
bottom: "conv3_7_3x3"
top: "conv3_7_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_7_3x3/bn/scale"
type: "Scale"
bottom: "conv3_7_3x3"
top: "conv3_7_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_7_3x3/relu"
type: "ReLU"
bottom: "conv3_7_3x3"
top: "conv3_7_3x3"
}
layer {
name: "conv3_7_1x1_increase"
type: "Convolution"
bottom: "conv3_7_3x3"
top: "conv3_7_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_7_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_7_1x1_increase"
top: "conv3_7_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_7_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_7_1x1_increase"
top: "conv3_7_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_7_global_pool"
type: "Pooling"
bottom: "conv3_7_1x1_increase"
top: "conv3_7_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_7_1x1_down"
type: "Convolution"
bottom: "conv3_7_global_pool"
top: "conv3_7_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_7_1x1_down/relu"
type: "ReLU"
bottom: "conv3_7_1x1_down"
top: "conv3_7_1x1_down"
}
layer {
name: "conv3_7_1x1_up"
type: "Convolution"
bottom: "conv3_7_1x1_down"
top: "conv3_7_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_7_prob"
type: "Sigmoid"
bottom: "conv3_7_1x1_up"
top: "conv3_7_1x1_up"
}
layer {
name: "conv3_7"
type: "Axpy"
bottom: "conv3_7_1x1_up"
bottom: "conv3_7_1x1_increase"
bottom: "conv3_6"
top: "conv3_7"
}
layer {
name: "conv3_7/relu"
type: "ReLU"
bottom: "conv3_7"
top: "conv3_7"
}
layer {
name: "conv3_8_1x1_reduce"
type: "Convolution"
bottom: "conv3_7"
top: "conv3_8_1x1_reduce"
convolution_param {
num_output: 256
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_8_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv3_8_1x1_reduce"
top: "conv3_8_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_8_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv3_8_1x1_reduce"
top: "conv3_8_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_8_1x1_reduce/relu"
type: "ReLU"
bottom: "conv3_8_1x1_reduce"
top: "conv3_8_1x1_reduce"
}
layer {
name: "conv3_8_3x3"
type: "Convolution"
bottom: "conv3_8_1x1_reduce"
top: "conv3_8_3x3"
convolution_param {
num_output: 512
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv3_8_3x3/bn"
type: "BatchNorm"
bottom: "conv3_8_3x3"
top: "conv3_8_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_8_3x3/bn/scale"
type: "Scale"
bottom: "conv3_8_3x3"
top: "conv3_8_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_8_3x3/relu"
type: "ReLU"
bottom: "conv3_8_3x3"
top: "conv3_8_3x3"
}
layer {
name: "conv3_8_1x1_increase"
type: "Convolution"
bottom: "conv3_8_3x3"
top: "conv3_8_1x1_increase"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_8_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv3_8_1x1_increase"
top: "conv3_8_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv3_8_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv3_8_1x1_increase"
top: "conv3_8_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv3_8_global_pool"
type: "Pooling"
bottom: "conv3_8_1x1_increase"
top: "conv3_8_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv3_8_1x1_down"
type: "Convolution"
bottom: "conv3_8_global_pool"
top: "conv3_8_1x1_down"
convolution_param {
num_output: 32
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_8_1x1_down/relu"
type: "ReLU"
bottom: "conv3_8_1x1_down"
top: "conv3_8_1x1_down"
}
layer {
name: "conv3_8_1x1_up"
type: "Convolution"
bottom: "conv3_8_1x1_down"
top: "conv3_8_1x1_up"
convolution_param {
num_output: 512
kernel_size: 1
stride: 1
}
}
layer {
name: "conv3_8_prob"
type: "Sigmoid"
bottom: "conv3_8_1x1_up"
top: "conv3_8_1x1_up"
}
layer {
name: "conv3_8"
type: "Axpy"
bottom: "conv3_8_1x1_up"
bottom: "conv3_8_1x1_increase"
bottom: "conv3_7"
top: "conv3_8"
}
layer {
name: "conv3_8/relu"
type: "ReLU"
bottom: "conv3_8"
top: "conv3_8"
}
layer {
name: "conv4_1_1x1_reduce"
type: "Convolution"
bottom: "conv3_8"
top: "conv4_1_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_1_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_1_1x1_reduce"
top: "conv4_1_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_1_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_1_1x1_reduce"
top: "conv4_1_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_1_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_1_1x1_reduce"
top: "conv4_1_1x1_reduce"
}
layer {
name: "conv4_1_3x3"
type: "Convolution"
bottom: "conv4_1_1x1_reduce"
top: "conv4_1_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 2
}
}
layer {
name: "conv4_1_3x3/bn"
type: "BatchNorm"
bottom: "conv4_1_3x3"
top: "conv4_1_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_1_3x3/bn/scale"
type: "Scale"
bottom: "conv4_1_3x3"
top: "conv4_1_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_1_3x3/relu"
type: "ReLU"
bottom: "conv4_1_3x3"
top: "conv4_1_3x3"
}
layer {
name: "conv4_1_1x1_increase"
type: "Convolution"
bottom: "conv4_1_3x3"
top: "conv4_1_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_1_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_1_1x1_increase"
top: "conv4_1_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_1_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_1_1x1_increase"
top: "conv4_1_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_1_global_pool"
type: "Pooling"
bottom: "conv4_1_1x1_increase"
top: "conv4_1_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_1_1x1_down"
type: "Convolution"
bottom: "conv4_1_global_pool"
top: "conv4_1_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_1_1x1_down/relu"
type: "ReLU"
bottom: "conv4_1_1x1_down"
top: "conv4_1_1x1_down"
}
layer {
name: "conv4_1_1x1_up"
type: "Convolution"
bottom: "conv4_1_1x1_down"
top: "conv4_1_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_1_prob"
type: "Sigmoid"
bottom: "conv4_1_1x1_up"
top: "conv4_1_1x1_up"
}
layer {
name: "conv4_1_1x1_proj"
type: "Convolution"
bottom: "conv3_8"
top: "conv4_1_1x1_proj"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "conv4_1_1x1_proj/bn"
type: "BatchNorm"
bottom: "conv4_1_1x1_proj"
top: "conv4_1_1x1_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_1_1x1_proj/bn/scale"
type: "Scale"
bottom: "conv4_1_1x1_proj"
top: "conv4_1_1x1_proj"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_1"
type: "Axpy"
bottom: "conv4_1_1x1_up"
bottom: "conv4_1_1x1_increase"
bottom: "conv4_1_1x1_proj"
top: "conv4_1"
}
layer {
name: "conv4_1/relu"
type: "ReLU"
bottom: "conv4_1"
top: "conv4_1"
}
layer {
name: "conv4_2_1x1_reduce"
type: "Convolution"
bottom: "conv4_1"
top: "conv4_2_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_2_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_2_1x1_reduce"
top: "conv4_2_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_2_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_2_1x1_reduce"
top: "conv4_2_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_2_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_2_1x1_reduce"
top: "conv4_2_1x1_reduce"
}
layer {
name: "conv4_2_3x3"
type: "Convolution"
bottom: "conv4_2_1x1_reduce"
top: "conv4_2_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_2_3x3/bn"
type: "BatchNorm"
bottom: "conv4_2_3x3"
top: "conv4_2_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_2_3x3/bn/scale"
type: "Scale"
bottom: "conv4_2_3x3"
top: "conv4_2_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_2_3x3/relu"
type: "ReLU"
bottom: "conv4_2_3x3"
top: "conv4_2_3x3"
}
layer {
name: "conv4_2_1x1_increase"
type: "Convolution"
bottom: "conv4_2_3x3"
top: "conv4_2_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_2_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_2_1x1_increase"
top: "conv4_2_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_2_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_2_1x1_increase"
top: "conv4_2_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_2_global_pool"
type: "Pooling"
bottom: "conv4_2_1x1_increase"
top: "conv4_2_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_2_1x1_down"
type: "Convolution"
bottom: "conv4_2_global_pool"
top: "conv4_2_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_2_1x1_down/relu"
type: "ReLU"
bottom: "conv4_2_1x1_down"
top: "conv4_2_1x1_down"
}
layer {
name: "conv4_2_1x1_up"
type: "Convolution"
bottom: "conv4_2_1x1_down"
top: "conv4_2_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_2_prob"
type: "Sigmoid"
bottom: "conv4_2_1x1_up"
top: "conv4_2_1x1_up"
}
layer {
name: "conv4_2"
type: "Axpy"
bottom: "conv4_2_1x1_up"
bottom: "conv4_2_1x1_increase"
bottom: "conv4_1"
top: "conv4_2"
}
layer {
name: "conv4_2/relu"
type: "ReLU"
bottom: "conv4_2"
top: "conv4_2"
}
layer {
name: "conv4_3_1x1_reduce"
type: "Convolution"
bottom: "conv4_2"
top: "conv4_3_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_3_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_3_1x1_reduce"
top: "conv4_3_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_3_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_3_1x1_reduce"
top: "conv4_3_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_3_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_3_1x1_reduce"
top: "conv4_3_1x1_reduce"
}
layer {
name: "conv4_3_3x3"
type: "Convolution"
bottom: "conv4_3_1x1_reduce"
top: "conv4_3_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_3_3x3/bn"
type: "BatchNorm"
bottom: "conv4_3_3x3"
top: "conv4_3_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_3_3x3/bn/scale"
type: "Scale"
bottom: "conv4_3_3x3"
top: "conv4_3_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_3_3x3/relu"
type: "ReLU"
bottom: "conv4_3_3x3"
top: "conv4_3_3x3"
}
layer {
name: "conv4_3_1x1_increase"
type: "Convolution"
bottom: "conv4_3_3x3"
top: "conv4_3_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_3_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_3_1x1_increase"
top: "conv4_3_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_3_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_3_1x1_increase"
top: "conv4_3_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_3_global_pool"
type: "Pooling"
bottom: "conv4_3_1x1_increase"
top: "conv4_3_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_3_1x1_down"
type: "Convolution"
bottom: "conv4_3_global_pool"
top: "conv4_3_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_3_1x1_down/relu"
type: "ReLU"
bottom: "conv4_3_1x1_down"
top: "conv4_3_1x1_down"
}
layer {
name: "conv4_3_1x1_up"
type: "Convolution"
bottom: "conv4_3_1x1_down"
top: "conv4_3_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_3_prob"
type: "Sigmoid"
bottom: "conv4_3_1x1_up"
top: "conv4_3_1x1_up"
}
layer {
name: "conv4_3"
type: "Axpy"
bottom: "conv4_3_1x1_up"
bottom: "conv4_3_1x1_increase"
bottom: "conv4_2"
top: "conv4_3"
}
layer {
name: "conv4_3/relu"
type: "ReLU"
bottom: "conv4_3"
top: "conv4_3"
}
layer {
name: "conv4_4_1x1_reduce"
type: "Convolution"
bottom: "conv4_3"
top: "conv4_4_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_4_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_4_1x1_reduce"
top: "conv4_4_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_4_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_4_1x1_reduce"
top: "conv4_4_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_4_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_4_1x1_reduce"
top: "conv4_4_1x1_reduce"
}
layer {
name: "conv4_4_3x3"
type: "Convolution"
bottom: "conv4_4_1x1_reduce"
top: "conv4_4_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_4_3x3/bn"
type: "BatchNorm"
bottom: "conv4_4_3x3"
top: "conv4_4_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_4_3x3/bn/scale"
type: "Scale"
bottom: "conv4_4_3x3"
top: "conv4_4_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_4_3x3/relu"
type: "ReLU"
bottom: "conv4_4_3x3"
top: "conv4_4_3x3"
}
layer {
name: "conv4_4_1x1_increase"
type: "Convolution"
bottom: "conv4_4_3x3"
top: "conv4_4_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_4_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_4_1x1_increase"
top: "conv4_4_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_4_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_4_1x1_increase"
top: "conv4_4_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_4_global_pool"
type: "Pooling"
bottom: "conv4_4_1x1_increase"
top: "conv4_4_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_4_1x1_down"
type: "Convolution"
bottom: "conv4_4_global_pool"
top: "conv4_4_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_4_1x1_down/relu"
type: "ReLU"
bottom: "conv4_4_1x1_down"
top: "conv4_4_1x1_down"
}
layer {
name: "conv4_4_1x1_up"
type: "Convolution"
bottom: "conv4_4_1x1_down"
top: "conv4_4_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_4_prob"
type: "Sigmoid"
bottom: "conv4_4_1x1_up"
top: "conv4_4_1x1_up"
}
layer {
name: "conv4_4"
type: "Axpy"
bottom: "conv4_4_1x1_up"
bottom: "conv4_4_1x1_increase"
bottom: "conv4_3"
top: "conv4_4"
}
layer {
name: "conv4_4/relu"
type: "ReLU"
bottom: "conv4_4"
top: "conv4_4"
}
layer {
name: "conv4_5_1x1_reduce"
type: "Convolution"
bottom: "conv4_4"
top: "conv4_5_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_5_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_5_1x1_reduce"
top: "conv4_5_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_5_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_5_1x1_reduce"
top: "conv4_5_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_5_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_5_1x1_reduce"
top: "conv4_5_1x1_reduce"
}
layer {
name: "conv4_5_3x3"
type: "Convolution"
bottom: "conv4_5_1x1_reduce"
top: "conv4_5_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_5_3x3/bn"
type: "BatchNorm"
bottom: "conv4_5_3x3"
top: "conv4_5_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_5_3x3/bn/scale"
type: "Scale"
bottom: "conv4_5_3x3"
top: "conv4_5_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_5_3x3/relu"
type: "ReLU"
bottom: "conv4_5_3x3"
top: "conv4_5_3x3"
}
layer {
name: "conv4_5_1x1_increase"
type: "Convolution"
bottom: "conv4_5_3x3"
top: "conv4_5_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_5_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_5_1x1_increase"
top: "conv4_5_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_5_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_5_1x1_increase"
top: "conv4_5_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_5_global_pool"
type: "Pooling"
bottom: "conv4_5_1x1_increase"
top: "conv4_5_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_5_1x1_down"
type: "Convolution"
bottom: "conv4_5_global_pool"
top: "conv4_5_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_5_1x1_down/relu"
type: "ReLU"
bottom: "conv4_5_1x1_down"
top: "conv4_5_1x1_down"
}
layer {
name: "conv4_5_1x1_up"
type: "Convolution"
bottom: "conv4_5_1x1_down"
top: "conv4_5_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_5_prob"
type: "Sigmoid"
bottom: "conv4_5_1x1_up"
top: "conv4_5_1x1_up"
}
layer {
name: "conv4_5"
type: "Axpy"
bottom: "conv4_5_1x1_up"
bottom: "conv4_5_1x1_increase"
bottom: "conv4_4"
top: "conv4_5"
}
layer {
name: "conv4_5/relu"
type: "ReLU"
bottom: "conv4_5"
top: "conv4_5"
}
layer {
name: "conv4_6_1x1_reduce"
type: "Convolution"
bottom: "conv4_5"
top: "conv4_6_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_6_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_6_1x1_reduce"
top: "conv4_6_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_6_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_6_1x1_reduce"
top: "conv4_6_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_6_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_6_1x1_reduce"
top: "conv4_6_1x1_reduce"
}
layer {
name: "conv4_6_3x3"
type: "Convolution"
bottom: "conv4_6_1x1_reduce"
top: "conv4_6_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_6_3x3/bn"
type: "BatchNorm"
bottom: "conv4_6_3x3"
top: "conv4_6_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_6_3x3/bn/scale"
type: "Scale"
bottom: "conv4_6_3x3"
top: "conv4_6_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_6_3x3/relu"
type: "ReLU"
bottom: "conv4_6_3x3"
top: "conv4_6_3x3"
}
layer {
name: "conv4_6_1x1_increase"
type: "Convolution"
bottom: "conv4_6_3x3"
top: "conv4_6_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_6_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_6_1x1_increase"
top: "conv4_6_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_6_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_6_1x1_increase"
top: "conv4_6_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_6_global_pool"
type: "Pooling"
bottom: "conv4_6_1x1_increase"
top: "conv4_6_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_6_1x1_down"
type: "Convolution"
bottom: "conv4_6_global_pool"
top: "conv4_6_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_6_1x1_down/relu"
type: "ReLU"
bottom: "conv4_6_1x1_down"
top: "conv4_6_1x1_down"
}
layer {
name: "conv4_6_1x1_up"
type: "Convolution"
bottom: "conv4_6_1x1_down"
top: "conv4_6_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_6_prob"
type: "Sigmoid"
bottom: "conv4_6_1x1_up"
top: "conv4_6_1x1_up"
}
layer {
name: "conv4_6"
type: "Axpy"
bottom: "conv4_6_1x1_up"
bottom: "conv4_6_1x1_increase"
bottom: "conv4_5"
top: "conv4_6"
}
layer {
name: "conv4_6/relu"
type: "ReLU"
bottom: "conv4_6"
top: "conv4_6"
}
layer {
name: "conv4_7_1x1_reduce"
type: "Convolution"
bottom: "conv4_6"
top: "conv4_7_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_7_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_7_1x1_reduce"
top: "conv4_7_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_7_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_7_1x1_reduce"
top: "conv4_7_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_7_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_7_1x1_reduce"
top: "conv4_7_1x1_reduce"
}
layer {
name: "conv4_7_3x3"
type: "Convolution"
bottom: "conv4_7_1x1_reduce"
top: "conv4_7_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_7_3x3/bn"
type: "BatchNorm"
bottom: "conv4_7_3x3"
top: "conv4_7_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_7_3x3/bn/scale"
type: "Scale"
bottom: "conv4_7_3x3"
top: "conv4_7_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_7_3x3/relu"
type: "ReLU"
bottom: "conv4_7_3x3"
top: "conv4_7_3x3"
}
layer {
name: "conv4_7_1x1_increase"
type: "Convolution"
bottom: "conv4_7_3x3"
top: "conv4_7_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_7_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_7_1x1_increase"
top: "conv4_7_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_7_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_7_1x1_increase"
top: "conv4_7_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_7_global_pool"
type: "Pooling"
bottom: "conv4_7_1x1_increase"
top: "conv4_7_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_7_1x1_down"
type: "Convolution"
bottom: "conv4_7_global_pool"
top: "conv4_7_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_7_1x1_down/relu"
type: "ReLU"
bottom: "conv4_7_1x1_down"
top: "conv4_7_1x1_down"
}
layer {
name: "conv4_7_1x1_up"
type: "Convolution"
bottom: "conv4_7_1x1_down"
top: "conv4_7_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_7_prob"
type: "Sigmoid"
bottom: "conv4_7_1x1_up"
top: "conv4_7_1x1_up"
}
layer {
name: "conv4_7"
type: "Axpy"
bottom: "conv4_7_1x1_up"
bottom: "conv4_7_1x1_increase"
bottom: "conv4_6"
top: "conv4_7"
}
layer {
name: "conv4_7/relu"
type: "ReLU"
bottom: "conv4_7"
top: "conv4_7"
}
layer {
name: "conv4_8_1x1_reduce"
type: "Convolution"
bottom: "conv4_7"
top: "conv4_8_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_8_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_8_1x1_reduce"
top: "conv4_8_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_8_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_8_1x1_reduce"
top: "conv4_8_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_8_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_8_1x1_reduce"
top: "conv4_8_1x1_reduce"
}
layer {
name: "conv4_8_3x3"
type: "Convolution"
bottom: "conv4_8_1x1_reduce"
top: "conv4_8_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_8_3x3/bn"
type: "BatchNorm"
bottom: "conv4_8_3x3"
top: "conv4_8_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_8_3x3/bn/scale"
type: "Scale"
bottom: "conv4_8_3x3"
top: "conv4_8_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_8_3x3/relu"
type: "ReLU"
bottom: "conv4_8_3x3"
top: "conv4_8_3x3"
}
layer {
name: "conv4_8_1x1_increase"
type: "Convolution"
bottom: "conv4_8_3x3"
top: "conv4_8_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_8_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_8_1x1_increase"
top: "conv4_8_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_8_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_8_1x1_increase"
top: "conv4_8_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_8_global_pool"
type: "Pooling"
bottom: "conv4_8_1x1_increase"
top: "conv4_8_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_8_1x1_down"
type: "Convolution"
bottom: "conv4_8_global_pool"
top: "conv4_8_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_8_1x1_down/relu"
type: "ReLU"
bottom: "conv4_8_1x1_down"
top: "conv4_8_1x1_down"
}
layer {
name: "conv4_8_1x1_up"
type: "Convolution"
bottom: "conv4_8_1x1_down"
top: "conv4_8_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_8_prob"
type: "Sigmoid"
bottom: "conv4_8_1x1_up"
top: "conv4_8_1x1_up"
}
layer {
name: "conv4_8"
type: "Axpy"
bottom: "conv4_8_1x1_up"
bottom: "conv4_8_1x1_increase"
bottom: "conv4_7"
top: "conv4_8"
}
layer {
name: "conv4_8/relu"
type: "ReLU"
bottom: "conv4_8"
top: "conv4_8"
}
layer {
name: "conv4_9_1x1_reduce"
type: "Convolution"
bottom: "conv4_8"
top: "conv4_9_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_9_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_9_1x1_reduce"
top: "conv4_9_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_9_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_9_1x1_reduce"
top: "conv4_9_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_9_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_9_1x1_reduce"
top: "conv4_9_1x1_reduce"
}
layer {
name: "conv4_9_3x3"
type: "Convolution"
bottom: "conv4_9_1x1_reduce"
top: "conv4_9_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_9_3x3/bn"
type: "BatchNorm"
bottom: "conv4_9_3x3"
top: "conv4_9_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_9_3x3/bn/scale"
type: "Scale"
bottom: "conv4_9_3x3"
top: "conv4_9_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_9_3x3/relu"
type: "ReLU"
bottom: "conv4_9_3x3"
top: "conv4_9_3x3"
}
layer {
name: "conv4_9_1x1_increase"
type: "Convolution"
bottom: "conv4_9_3x3"
top: "conv4_9_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_9_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_9_1x1_increase"
top: "conv4_9_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_9_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_9_1x1_increase"
top: "conv4_9_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_9_global_pool"
type: "Pooling"
bottom: "conv4_9_1x1_increase"
top: "conv4_9_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_9_1x1_down"
type: "Convolution"
bottom: "conv4_9_global_pool"
top: "conv4_9_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_9_1x1_down/relu"
type: "ReLU"
bottom: "conv4_9_1x1_down"
top: "conv4_9_1x1_down"
}
layer {
name: "conv4_9_1x1_up"
type: "Convolution"
bottom: "conv4_9_1x1_down"
top: "conv4_9_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_9_prob"
type: "Sigmoid"
bottom: "conv4_9_1x1_up"
top: "conv4_9_1x1_up"
}
layer {
name: "conv4_9"
type: "Axpy"
bottom: "conv4_9_1x1_up"
bottom: "conv4_9_1x1_increase"
bottom: "conv4_8"
top: "conv4_9"
}
layer {
name: "conv4_9/relu"
type: "ReLU"
bottom: "conv4_9"
top: "conv4_9"
}
layer {
name: "conv4_10_1x1_reduce"
type: "Convolution"
bottom: "conv4_9"
top: "conv4_10_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_10_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_10_1x1_reduce"
top: "conv4_10_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_10_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_10_1x1_reduce"
top: "conv4_10_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_10_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_10_1x1_reduce"
top: "conv4_10_1x1_reduce"
}
layer {
name: "conv4_10_3x3"
type: "Convolution"
bottom: "conv4_10_1x1_reduce"
top: "conv4_10_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_10_3x3/bn"
type: "BatchNorm"
bottom: "conv4_10_3x3"
top: "conv4_10_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_10_3x3/bn/scale"
type: "Scale"
bottom: "conv4_10_3x3"
top: "conv4_10_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_10_3x3/relu"
type: "ReLU"
bottom: "conv4_10_3x3"
top: "conv4_10_3x3"
}
layer {
name: "conv4_10_1x1_increase"
type: "Convolution"
bottom: "conv4_10_3x3"
top: "conv4_10_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_10_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_10_1x1_increase"
top: "conv4_10_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_10_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_10_1x1_increase"
top: "conv4_10_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_10_global_pool"
type: "Pooling"
bottom: "conv4_10_1x1_increase"
top: "conv4_10_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_10_1x1_down"
type: "Convolution"
bottom: "conv4_10_global_pool"
top: "conv4_10_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_10_1x1_down/relu"
type: "ReLU"
bottom: "conv4_10_1x1_down"
top: "conv4_10_1x1_down"
}
layer {
name: "conv4_10_1x1_up"
type: "Convolution"
bottom: "conv4_10_1x1_down"
top: "conv4_10_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_10_prob"
type: "Sigmoid"
bottom: "conv4_10_1x1_up"
top: "conv4_10_1x1_up"
}
layer {
name: "conv4_10"
type: "Axpy"
bottom: "conv4_10_1x1_up"
bottom: "conv4_10_1x1_increase"
bottom: "conv4_9"
top: "conv4_10"
}
layer {
name: "conv4_10/relu"
type: "ReLU"
bottom: "conv4_10"
top: "conv4_10"
}
layer {
name: "conv4_11_1x1_reduce"
type: "Convolution"
bottom: "conv4_10"
top: "conv4_11_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_11_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_11_1x1_reduce"
top: "conv4_11_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_11_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_11_1x1_reduce"
top: "conv4_11_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_11_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_11_1x1_reduce"
top: "conv4_11_1x1_reduce"
}
layer {
name: "conv4_11_3x3"
type: "Convolution"
bottom: "conv4_11_1x1_reduce"
top: "conv4_11_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_11_3x3/bn"
type: "BatchNorm"
bottom: "conv4_11_3x3"
top: "conv4_11_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_11_3x3/bn/scale"
type: "Scale"
bottom: "conv4_11_3x3"
top: "conv4_11_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_11_3x3/relu"
type: "ReLU"
bottom: "conv4_11_3x3"
top: "conv4_11_3x3"
}
layer {
name: "conv4_11_1x1_increase"
type: "Convolution"
bottom: "conv4_11_3x3"
top: "conv4_11_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_11_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_11_1x1_increase"
top: "conv4_11_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_11_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_11_1x1_increase"
top: "conv4_11_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_11_global_pool"
type: "Pooling"
bottom: "conv4_11_1x1_increase"
top: "conv4_11_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_11_1x1_down"
type: "Convolution"
bottom: "conv4_11_global_pool"
top: "conv4_11_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_11_1x1_down/relu"
type: "ReLU"
bottom: "conv4_11_1x1_down"
top: "conv4_11_1x1_down"
}
layer {
name: "conv4_11_1x1_up"
type: "Convolution"
bottom: "conv4_11_1x1_down"
top: "conv4_11_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_11_prob"
type: "Sigmoid"
bottom: "conv4_11_1x1_up"
top: "conv4_11_1x1_up"
}
layer {
name: "conv4_11"
type: "Axpy"
bottom: "conv4_11_1x1_up"
bottom: "conv4_11_1x1_increase"
bottom: "conv4_10"
top: "conv4_11"
}
layer {
name: "conv4_11/relu"
type: "ReLU"
bottom: "conv4_11"
top: "conv4_11"
}
layer {
name: "conv4_12_1x1_reduce"
type: "Convolution"
bottom: "conv4_11"
top: "conv4_12_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_12_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_12_1x1_reduce"
top: "conv4_12_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_12_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_12_1x1_reduce"
top: "conv4_12_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_12_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_12_1x1_reduce"
top: "conv4_12_1x1_reduce"
}
layer {
name: "conv4_12_3x3"
type: "Convolution"
bottom: "conv4_12_1x1_reduce"
top: "conv4_12_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_12_3x3/bn"
type: "BatchNorm"
bottom: "conv4_12_3x3"
top: "conv4_12_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_12_3x3/bn/scale"
type: "Scale"
bottom: "conv4_12_3x3"
top: "conv4_12_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_12_3x3/relu"
type: "ReLU"
bottom: "conv4_12_3x3"
top: "conv4_12_3x3"
}
layer {
name: "conv4_12_1x1_increase"
type: "Convolution"
bottom: "conv4_12_3x3"
top: "conv4_12_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_12_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_12_1x1_increase"
top: "conv4_12_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_12_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_12_1x1_increase"
top: "conv4_12_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_12_global_pool"
type: "Pooling"
bottom: "conv4_12_1x1_increase"
top: "conv4_12_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_12_1x1_down"
type: "Convolution"
bottom: "conv4_12_global_pool"
top: "conv4_12_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_12_1x1_down/relu"
type: "ReLU"
bottom: "conv4_12_1x1_down"
top: "conv4_12_1x1_down"
}
layer {
name: "conv4_12_1x1_up"
type: "Convolution"
bottom: "conv4_12_1x1_down"
top: "conv4_12_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_12_prob"
type: "Sigmoid"
bottom: "conv4_12_1x1_up"
top: "conv4_12_1x1_up"
}
layer {
name: "conv4_12"
type: "Axpy"
bottom: "conv4_12_1x1_up"
bottom: "conv4_12_1x1_increase"
bottom: "conv4_11"
top: "conv4_12"
}
layer {
name: "conv4_12/relu"
type: "ReLU"
bottom: "conv4_12"
top: "conv4_12"
}
layer {
name: "conv4_13_1x1_reduce"
type: "Convolution"
bottom: "conv4_12"
top: "conv4_13_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_13_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_13_1x1_reduce"
top: "conv4_13_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_13_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_13_1x1_reduce"
top: "conv4_13_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_13_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_13_1x1_reduce"
top: "conv4_13_1x1_reduce"
}
layer {
name: "conv4_13_3x3"
type: "Convolution"
bottom: "conv4_13_1x1_reduce"
top: "conv4_13_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_13_3x3/bn"
type: "BatchNorm"
bottom: "conv4_13_3x3"
top: "conv4_13_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_13_3x3/bn/scale"
type: "Scale"
bottom: "conv4_13_3x3"
top: "conv4_13_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_13_3x3/relu"
type: "ReLU"
bottom: "conv4_13_3x3"
top: "conv4_13_3x3"
}
layer {
name: "conv4_13_1x1_increase"
type: "Convolution"
bottom: "conv4_13_3x3"
top: "conv4_13_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_13_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_13_1x1_increase"
top: "conv4_13_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_13_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_13_1x1_increase"
top: "conv4_13_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_13_global_pool"
type: "Pooling"
bottom: "conv4_13_1x1_increase"
top: "conv4_13_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_13_1x1_down"
type: "Convolution"
bottom: "conv4_13_global_pool"
top: "conv4_13_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_13_1x1_down/relu"
type: "ReLU"
bottom: "conv4_13_1x1_down"
top: "conv4_13_1x1_down"
}
layer {
name: "conv4_13_1x1_up"
type: "Convolution"
bottom: "conv4_13_1x1_down"
top: "conv4_13_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_13_prob"
type: "Sigmoid"
bottom: "conv4_13_1x1_up"
top: "conv4_13_1x1_up"
}
layer {
name: "conv4_13"
type: "Axpy"
bottom: "conv4_13_1x1_up"
bottom: "conv4_13_1x1_increase"
bottom: "conv4_12"
top: "conv4_13"
}
layer {
name: "conv4_13/relu"
type: "ReLU"
bottom: "conv4_13"
top: "conv4_13"
}
layer {
name: "conv4_14_1x1_reduce"
type: "Convolution"
bottom: "conv4_13"
top: "conv4_14_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_14_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_14_1x1_reduce"
top: "conv4_14_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_14_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_14_1x1_reduce"
top: "conv4_14_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_14_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_14_1x1_reduce"
top: "conv4_14_1x1_reduce"
}
layer {
name: "conv4_14_3x3"
type: "Convolution"
bottom: "conv4_14_1x1_reduce"
top: "conv4_14_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_14_3x3/bn"
type: "BatchNorm"
bottom: "conv4_14_3x3"
top: "conv4_14_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_14_3x3/bn/scale"
type: "Scale"
bottom: "conv4_14_3x3"
top: "conv4_14_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_14_3x3/relu"
type: "ReLU"
bottom: "conv4_14_3x3"
top: "conv4_14_3x3"
}
layer {
name: "conv4_14_1x1_increase"
type: "Convolution"
bottom: "conv4_14_3x3"
top: "conv4_14_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_14_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_14_1x1_increase"
top: "conv4_14_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_14_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_14_1x1_increase"
top: "conv4_14_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_14_global_pool"
type: "Pooling"
bottom: "conv4_14_1x1_increase"
top: "conv4_14_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_14_1x1_down"
type: "Convolution"
bottom: "conv4_14_global_pool"
top: "conv4_14_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_14_1x1_down/relu"
type: "ReLU"
bottom: "conv4_14_1x1_down"
top: "conv4_14_1x1_down"
}
layer {
name: "conv4_14_1x1_up"
type: "Convolution"
bottom: "conv4_14_1x1_down"
top: "conv4_14_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_14_prob"
type: "Sigmoid"
bottom: "conv4_14_1x1_up"
top: "conv4_14_1x1_up"
}
layer {
name: "conv4_14"
type: "Axpy"
bottom: "conv4_14_1x1_up"
bottom: "conv4_14_1x1_increase"
bottom: "conv4_13"
top: "conv4_14"
}
layer {
name: "conv4_14/relu"
type: "ReLU"
bottom: "conv4_14"
top: "conv4_14"
}
layer {
name: "conv4_15_1x1_reduce"
type: "Convolution"
bottom: "conv4_14"
top: "conv4_15_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_15_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_15_1x1_reduce"
top: "conv4_15_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_15_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_15_1x1_reduce"
top: "conv4_15_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_15_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_15_1x1_reduce"
top: "conv4_15_1x1_reduce"
}
layer {
name: "conv4_15_3x3"
type: "Convolution"
bottom: "conv4_15_1x1_reduce"
top: "conv4_15_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_15_3x3/bn"
type: "BatchNorm"
bottom: "conv4_15_3x3"
top: "conv4_15_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_15_3x3/bn/scale"
type: "Scale"
bottom: "conv4_15_3x3"
top: "conv4_15_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_15_3x3/relu"
type: "ReLU"
bottom: "conv4_15_3x3"
top: "conv4_15_3x3"
}
layer {
name: "conv4_15_1x1_increase"
type: "Convolution"
bottom: "conv4_15_3x3"
top: "conv4_15_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_15_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_15_1x1_increase"
top: "conv4_15_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_15_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_15_1x1_increase"
top: "conv4_15_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_15_global_pool"
type: "Pooling"
bottom: "conv4_15_1x1_increase"
top: "conv4_15_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_15_1x1_down"
type: "Convolution"
bottom: "conv4_15_global_pool"
top: "conv4_15_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_15_1x1_down/relu"
type: "ReLU"
bottom: "conv4_15_1x1_down"
top: "conv4_15_1x1_down"
}
layer {
name: "conv4_15_1x1_up"
type: "Convolution"
bottom: "conv4_15_1x1_down"
top: "conv4_15_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_15_prob"
type: "Sigmoid"
bottom: "conv4_15_1x1_up"
top: "conv4_15_1x1_up"
}
layer {
name: "conv4_15"
type: "Axpy"
bottom: "conv4_15_1x1_up"
bottom: "conv4_15_1x1_increase"
bottom: "conv4_14"
top: "conv4_15"
}
layer {
name: "conv4_15/relu"
type: "ReLU"
bottom: "conv4_15"
top: "conv4_15"
}
layer {
name: "conv4_16_1x1_reduce"
type: "Convolution"
bottom: "conv4_15"
top: "conv4_16_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_16_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_16_1x1_reduce"
top: "conv4_16_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_16_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_16_1x1_reduce"
top: "conv4_16_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_16_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_16_1x1_reduce"
top: "conv4_16_1x1_reduce"
}
layer {
name: "conv4_16_3x3"
type: "Convolution"
bottom: "conv4_16_1x1_reduce"
top: "conv4_16_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_16_3x3/bn"
type: "BatchNorm"
bottom: "conv4_16_3x3"
top: "conv4_16_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_16_3x3/bn/scale"
type: "Scale"
bottom: "conv4_16_3x3"
top: "conv4_16_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_16_3x3/relu"
type: "ReLU"
bottom: "conv4_16_3x3"
top: "conv4_16_3x3"
}
layer {
name: "conv4_16_1x1_increase"
type: "Convolution"
bottom: "conv4_16_3x3"
top: "conv4_16_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_16_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_16_1x1_increase"
top: "conv4_16_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_16_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_16_1x1_increase"
top: "conv4_16_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_16_global_pool"
type: "Pooling"
bottom: "conv4_16_1x1_increase"
top: "conv4_16_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_16_1x1_down"
type: "Convolution"
bottom: "conv4_16_global_pool"
top: "conv4_16_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_16_1x1_down/relu"
type: "ReLU"
bottom: "conv4_16_1x1_down"
top: "conv4_16_1x1_down"
}
layer {
name: "conv4_16_1x1_up"
type: "Convolution"
bottom: "conv4_16_1x1_down"
top: "conv4_16_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_16_prob"
type: "Sigmoid"
bottom: "conv4_16_1x1_up"
top: "conv4_16_1x1_up"
}
layer {
name: "conv4_16"
type: "Axpy"
bottom: "conv4_16_1x1_up"
bottom: "conv4_16_1x1_increase"
bottom: "conv4_15"
top: "conv4_16"
}
layer {
name: "conv4_16/relu"
type: "ReLU"
bottom: "conv4_16"
top: "conv4_16"
}
layer {
name: "conv4_17_1x1_reduce"
type: "Convolution"
bottom: "conv4_16"
top: "conv4_17_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_17_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_17_1x1_reduce"
top: "conv4_17_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_17_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_17_1x1_reduce"
top: "conv4_17_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_17_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_17_1x1_reduce"
top: "conv4_17_1x1_reduce"
}
layer {
name: "conv4_17_3x3"
type: "Convolution"
bottom: "conv4_17_1x1_reduce"
top: "conv4_17_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_17_3x3/bn"
type: "BatchNorm"
bottom: "conv4_17_3x3"
top: "conv4_17_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_17_3x3/bn/scale"
type: "Scale"
bottom: "conv4_17_3x3"
top: "conv4_17_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_17_3x3/relu"
type: "ReLU"
bottom: "conv4_17_3x3"
top: "conv4_17_3x3"
}
layer {
name: "conv4_17_1x1_increase"
type: "Convolution"
bottom: "conv4_17_3x3"
top: "conv4_17_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_17_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_17_1x1_increase"
top: "conv4_17_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_17_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_17_1x1_increase"
top: "conv4_17_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_17_global_pool"
type: "Pooling"
bottom: "conv4_17_1x1_increase"
top: "conv4_17_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_17_1x1_down"
type: "Convolution"
bottom: "conv4_17_global_pool"
top: "conv4_17_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_17_1x1_down/relu"
type: "ReLU"
bottom: "conv4_17_1x1_down"
top: "conv4_17_1x1_down"
}
layer {
name: "conv4_17_1x1_up"
type: "Convolution"
bottom: "conv4_17_1x1_down"
top: "conv4_17_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_17_prob"
type: "Sigmoid"
bottom: "conv4_17_1x1_up"
top: "conv4_17_1x1_up"
}
layer {
name: "conv4_17"
type: "Axpy"
bottom: "conv4_17_1x1_up"
bottom: "conv4_17_1x1_increase"
bottom: "conv4_16"
top: "conv4_17"
}
layer {
name: "conv4_17/relu"
type: "ReLU"
bottom: "conv4_17"
top: "conv4_17"
}
layer {
name: "conv4_18_1x1_reduce"
type: "Convolution"
bottom: "conv4_17"
top: "conv4_18_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_18_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_18_1x1_reduce"
top: "conv4_18_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_18_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_18_1x1_reduce"
top: "conv4_18_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_18_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_18_1x1_reduce"
top: "conv4_18_1x1_reduce"
}
layer {
name: "conv4_18_3x3"
type: "Convolution"
bottom: "conv4_18_1x1_reduce"
top: "conv4_18_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_18_3x3/bn"
type: "BatchNorm"
bottom: "conv4_18_3x3"
top: "conv4_18_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_18_3x3/bn/scale"
type: "Scale"
bottom: "conv4_18_3x3"
top: "conv4_18_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_18_3x3/relu"
type: "ReLU"
bottom: "conv4_18_3x3"
top: "conv4_18_3x3"
}
layer {
name: "conv4_18_1x1_increase"
type: "Convolution"
bottom: "conv4_18_3x3"
top: "conv4_18_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_18_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_18_1x1_increase"
top: "conv4_18_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_18_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_18_1x1_increase"
top: "conv4_18_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_18_global_pool"
type: "Pooling"
bottom: "conv4_18_1x1_increase"
top: "conv4_18_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_18_1x1_down"
type: "Convolution"
bottom: "conv4_18_global_pool"
top: "conv4_18_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_18_1x1_down/relu"
type: "ReLU"
bottom: "conv4_18_1x1_down"
top: "conv4_18_1x1_down"
}
layer {
name: "conv4_18_1x1_up"
type: "Convolution"
bottom: "conv4_18_1x1_down"
top: "conv4_18_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_18_prob"
type: "Sigmoid"
bottom: "conv4_18_1x1_up"
top: "conv4_18_1x1_up"
}
layer {
name: "conv4_18"
type: "Axpy"
bottom: "conv4_18_1x1_up"
bottom: "conv4_18_1x1_increase"
bottom: "conv4_17"
top: "conv4_18"
}
layer {
name: "conv4_18/relu"
type: "ReLU"
bottom: "conv4_18"
top: "conv4_18"
}
layer {
name: "conv4_19_1x1_reduce"
type: "Convolution"
bottom: "conv4_18"
top: "conv4_19_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_19_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_19_1x1_reduce"
top: "conv4_19_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_19_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_19_1x1_reduce"
top: "conv4_19_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_19_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_19_1x1_reduce"
top: "conv4_19_1x1_reduce"
}
layer {
name: "conv4_19_3x3"
type: "Convolution"
bottom: "conv4_19_1x1_reduce"
top: "conv4_19_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_19_3x3/bn"
type: "BatchNorm"
bottom: "conv4_19_3x3"
top: "conv4_19_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_19_3x3/bn/scale"
type: "Scale"
bottom: "conv4_19_3x3"
top: "conv4_19_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_19_3x3/relu"
type: "ReLU"
bottom: "conv4_19_3x3"
top: "conv4_19_3x3"
}
layer {
name: "conv4_19_1x1_increase"
type: "Convolution"
bottom: "conv4_19_3x3"
top: "conv4_19_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_19_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_19_1x1_increase"
top: "conv4_19_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_19_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_19_1x1_increase"
top: "conv4_19_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_19_global_pool"
type: "Pooling"
bottom: "conv4_19_1x1_increase"
top: "conv4_19_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_19_1x1_down"
type: "Convolution"
bottom: "conv4_19_global_pool"
top: "conv4_19_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_19_1x1_down/relu"
type: "ReLU"
bottom: "conv4_19_1x1_down"
top: "conv4_19_1x1_down"
}
layer {
name: "conv4_19_1x1_up"
type: "Convolution"
bottom: "conv4_19_1x1_down"
top: "conv4_19_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_19_prob"
type: "Sigmoid"
bottom: "conv4_19_1x1_up"
top: "conv4_19_1x1_up"
}
layer {
name: "conv4_19"
type: "Axpy"
bottom: "conv4_19_1x1_up"
bottom: "conv4_19_1x1_increase"
bottom: "conv4_18"
top: "conv4_19"
}
layer {
name: "conv4_19/relu"
type: "ReLU"
bottom: "conv4_19"
top: "conv4_19"
}
layer {
name: "conv4_20_1x1_reduce"
type: "Convolution"
bottom: "conv4_19"
top: "conv4_20_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_20_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_20_1x1_reduce"
top: "conv4_20_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_20_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_20_1x1_reduce"
top: "conv4_20_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_20_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_20_1x1_reduce"
top: "conv4_20_1x1_reduce"
}
layer {
name: "conv4_20_3x3"
type: "Convolution"
bottom: "conv4_20_1x1_reduce"
top: "conv4_20_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_20_3x3/bn"
type: "BatchNorm"
bottom: "conv4_20_3x3"
top: "conv4_20_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_20_3x3/bn/scale"
type: "Scale"
bottom: "conv4_20_3x3"
top: "conv4_20_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_20_3x3/relu"
type: "ReLU"
bottom: "conv4_20_3x3"
top: "conv4_20_3x3"
}
layer {
name: "conv4_20_1x1_increase"
type: "Convolution"
bottom: "conv4_20_3x3"
top: "conv4_20_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_20_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_20_1x1_increase"
top: "conv4_20_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_20_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_20_1x1_increase"
top: "conv4_20_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_20_global_pool"
type: "Pooling"
bottom: "conv4_20_1x1_increase"
top: "conv4_20_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_20_1x1_down"
type: "Convolution"
bottom: "conv4_20_global_pool"
top: "conv4_20_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_20_1x1_down/relu"
type: "ReLU"
bottom: "conv4_20_1x1_down"
top: "conv4_20_1x1_down"
}
layer {
name: "conv4_20_1x1_up"
type: "Convolution"
bottom: "conv4_20_1x1_down"
top: "conv4_20_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_20_prob"
type: "Sigmoid"
bottom: "conv4_20_1x1_up"
top: "conv4_20_1x1_up"
}
layer {
name: "conv4_20"
type: "Axpy"
bottom: "conv4_20_1x1_up"
bottom: "conv4_20_1x1_increase"
bottom: "conv4_19"
top: "conv4_20"
}
layer {
name: "conv4_20/relu"
type: "ReLU"
bottom: "conv4_20"
top: "conv4_20"
}
layer {
name: "conv4_21_1x1_reduce"
type: "Convolution"
bottom: "conv4_20"
top: "conv4_21_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_21_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_21_1x1_reduce"
top: "conv4_21_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_21_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_21_1x1_reduce"
top: "conv4_21_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_21_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_21_1x1_reduce"
top: "conv4_21_1x1_reduce"
}
layer {
name: "conv4_21_3x3"
type: "Convolution"
bottom: "conv4_21_1x1_reduce"
top: "conv4_21_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_21_3x3/bn"
type: "BatchNorm"
bottom: "conv4_21_3x3"
top: "conv4_21_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_21_3x3/bn/scale"
type: "Scale"
bottom: "conv4_21_3x3"
top: "conv4_21_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_21_3x3/relu"
type: "ReLU"
bottom: "conv4_21_3x3"
top: "conv4_21_3x3"
}
layer {
name: "conv4_21_1x1_increase"
type: "Convolution"
bottom: "conv4_21_3x3"
top: "conv4_21_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_21_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_21_1x1_increase"
top: "conv4_21_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_21_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_21_1x1_increase"
top: "conv4_21_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_21_global_pool"
type: "Pooling"
bottom: "conv4_21_1x1_increase"
top: "conv4_21_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_21_1x1_down"
type: "Convolution"
bottom: "conv4_21_global_pool"
top: "conv4_21_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_21_1x1_down/relu"
type: "ReLU"
bottom: "conv4_21_1x1_down"
top: "conv4_21_1x1_down"
}
layer {
name: "conv4_21_1x1_up"
type: "Convolution"
bottom: "conv4_21_1x1_down"
top: "conv4_21_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_21_prob"
type: "Sigmoid"
bottom: "conv4_21_1x1_up"
top: "conv4_21_1x1_up"
}
layer {
name: "conv4_21"
type: "Axpy"
bottom: "conv4_21_1x1_up"
bottom: "conv4_21_1x1_increase"
bottom: "conv4_20"
top: "conv4_21"
}
layer {
name: "conv4_21/relu"
type: "ReLU"
bottom: "conv4_21"
top: "conv4_21"
}
layer {
name: "conv4_22_1x1_reduce"
type: "Convolution"
bottom: "conv4_21"
top: "conv4_22_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_22_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_22_1x1_reduce"
top: "conv4_22_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_22_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_22_1x1_reduce"
top: "conv4_22_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_22_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_22_1x1_reduce"
top: "conv4_22_1x1_reduce"
}
layer {
name: "conv4_22_3x3"
type: "Convolution"
bottom: "conv4_22_1x1_reduce"
top: "conv4_22_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_22_3x3/bn"
type: "BatchNorm"
bottom: "conv4_22_3x3"
top: "conv4_22_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_22_3x3/bn/scale"
type: "Scale"
bottom: "conv4_22_3x3"
top: "conv4_22_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_22_3x3/relu"
type: "ReLU"
bottom: "conv4_22_3x3"
top: "conv4_22_3x3"
}
layer {
name: "conv4_22_1x1_increase"
type: "Convolution"
bottom: "conv4_22_3x3"
top: "conv4_22_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_22_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_22_1x1_increase"
top: "conv4_22_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_22_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_22_1x1_increase"
top: "conv4_22_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_22_global_pool"
type: "Pooling"
bottom: "conv4_22_1x1_increase"
top: "conv4_22_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_22_1x1_down"
type: "Convolution"
bottom: "conv4_22_global_pool"
top: "conv4_22_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_22_1x1_down/relu"
type: "ReLU"
bottom: "conv4_22_1x1_down"
top: "conv4_22_1x1_down"
}
layer {
name: "conv4_22_1x1_up"
type: "Convolution"
bottom: "conv4_22_1x1_down"
top: "conv4_22_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_22_prob"
type: "Sigmoid"
bottom: "conv4_22_1x1_up"
top: "conv4_22_1x1_up"
}
layer {
name: "conv4_22"
type: "Axpy"
bottom: "conv4_22_1x1_up"
bottom: "conv4_22_1x1_increase"
bottom: "conv4_21"
top: "conv4_22"
}
layer {
name: "conv4_22/relu"
type: "ReLU"
bottom: "conv4_22"
top: "conv4_22"
}
layer {
name: "conv4_23_1x1_reduce"
type: "Convolution"
bottom: "conv4_22"
top: "conv4_23_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_23_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_23_1x1_reduce"
top: "conv4_23_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_23_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_23_1x1_reduce"
top: "conv4_23_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_23_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_23_1x1_reduce"
top: "conv4_23_1x1_reduce"
}
layer {
name: "conv4_23_3x3"
type: "Convolution"
bottom: "conv4_23_1x1_reduce"
top: "conv4_23_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_23_3x3/bn"
type: "BatchNorm"
bottom: "conv4_23_3x3"
top: "conv4_23_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_23_3x3/bn/scale"
type: "Scale"
bottom: "conv4_23_3x3"
top: "conv4_23_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_23_3x3/relu"
type: "ReLU"
bottom: "conv4_23_3x3"
top: "conv4_23_3x3"
}
layer {
name: "conv4_23_1x1_increase"
type: "Convolution"
bottom: "conv4_23_3x3"
top: "conv4_23_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_23_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_23_1x1_increase"
top: "conv4_23_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_23_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_23_1x1_increase"
top: "conv4_23_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_23_global_pool"
type: "Pooling"
bottom: "conv4_23_1x1_increase"
top: "conv4_23_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_23_1x1_down"
type: "Convolution"
bottom: "conv4_23_global_pool"
top: "conv4_23_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_23_1x1_down/relu"
type: "ReLU"
bottom: "conv4_23_1x1_down"
top: "conv4_23_1x1_down"
}
layer {
name: "conv4_23_1x1_up"
type: "Convolution"
bottom: "conv4_23_1x1_down"
top: "conv4_23_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_23_prob"
type: "Sigmoid"
bottom: "conv4_23_1x1_up"
top: "conv4_23_1x1_up"
}
layer {
name: "conv4_23"
type: "Axpy"
bottom: "conv4_23_1x1_up"
bottom: "conv4_23_1x1_increase"
bottom: "conv4_22"
top: "conv4_23"
}
layer {
name: "conv4_23/relu"
type: "ReLU"
bottom: "conv4_23"
top: "conv4_23"
}
layer {
name: "conv4_24_1x1_reduce"
type: "Convolution"
bottom: "conv4_23"
top: "conv4_24_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_24_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_24_1x1_reduce"
top: "conv4_24_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_24_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_24_1x1_reduce"
top: "conv4_24_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_24_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_24_1x1_reduce"
top: "conv4_24_1x1_reduce"
}
layer {
name: "conv4_24_3x3"
type: "Convolution"
bottom: "conv4_24_1x1_reduce"
top: "conv4_24_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_24_3x3/bn"
type: "BatchNorm"
bottom: "conv4_24_3x3"
top: "conv4_24_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_24_3x3/bn/scale"
type: "Scale"
bottom: "conv4_24_3x3"
top: "conv4_24_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_24_3x3/relu"
type: "ReLU"
bottom: "conv4_24_3x3"
top: "conv4_24_3x3"
}
layer {
name: "conv4_24_1x1_increase"
type: "Convolution"
bottom: "conv4_24_3x3"
top: "conv4_24_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_24_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_24_1x1_increase"
top: "conv4_24_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_24_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_24_1x1_increase"
top: "conv4_24_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_24_global_pool"
type: "Pooling"
bottom: "conv4_24_1x1_increase"
top: "conv4_24_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_24_1x1_down"
type: "Convolution"
bottom: "conv4_24_global_pool"
top: "conv4_24_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_24_1x1_down/relu"
type: "ReLU"
bottom: "conv4_24_1x1_down"
top: "conv4_24_1x1_down"
}
layer {
name: "conv4_24_1x1_up"
type: "Convolution"
bottom: "conv4_24_1x1_down"
top: "conv4_24_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_24_prob"
type: "Sigmoid"
bottom: "conv4_24_1x1_up"
top: "conv4_24_1x1_up"
}
layer {
name: "conv4_24"
type: "Axpy"
bottom: "conv4_24_1x1_up"
bottom: "conv4_24_1x1_increase"
bottom: "conv4_23"
top: "conv4_24"
}
layer {
name: "conv4_24/relu"
type: "ReLU"
bottom: "conv4_24"
top: "conv4_24"
}
layer {
name: "conv4_25_1x1_reduce"
type: "Convolution"
bottom: "conv4_24"
top: "conv4_25_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_25_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_25_1x1_reduce"
top: "conv4_25_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_25_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_25_1x1_reduce"
top: "conv4_25_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_25_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_25_1x1_reduce"
top: "conv4_25_1x1_reduce"
}
layer {
name: "conv4_25_3x3"
type: "Convolution"
bottom: "conv4_25_1x1_reduce"
top: "conv4_25_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_25_3x3/bn"
type: "BatchNorm"
bottom: "conv4_25_3x3"
top: "conv4_25_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_25_3x3/bn/scale"
type: "Scale"
bottom: "conv4_25_3x3"
top: "conv4_25_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_25_3x3/relu"
type: "ReLU"
bottom: "conv4_25_3x3"
top: "conv4_25_3x3"
}
layer {
name: "conv4_25_1x1_increase"
type: "Convolution"
bottom: "conv4_25_3x3"
top: "conv4_25_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_25_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_25_1x1_increase"
top: "conv4_25_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_25_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_25_1x1_increase"
top: "conv4_25_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_25_global_pool"
type: "Pooling"
bottom: "conv4_25_1x1_increase"
top: "conv4_25_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_25_1x1_down"
type: "Convolution"
bottom: "conv4_25_global_pool"
top: "conv4_25_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_25_1x1_down/relu"
type: "ReLU"
bottom: "conv4_25_1x1_down"
top: "conv4_25_1x1_down"
}
layer {
name: "conv4_25_1x1_up"
type: "Convolution"
bottom: "conv4_25_1x1_down"
top: "conv4_25_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_25_prob"
type: "Sigmoid"
bottom: "conv4_25_1x1_up"
top: "conv4_25_1x1_up"
}
layer {
name: "conv4_25"
type: "Axpy"
bottom: "conv4_25_1x1_up"
bottom: "conv4_25_1x1_increase"
bottom: "conv4_24"
top: "conv4_25"
}
layer {
name: "conv4_25/relu"
type: "ReLU"
bottom: "conv4_25"
top: "conv4_25"
}
layer {
name: "conv4_26_1x1_reduce"
type: "Convolution"
bottom: "conv4_25"
top: "conv4_26_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_26_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_26_1x1_reduce"
top: "conv4_26_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_26_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_26_1x1_reduce"
top: "conv4_26_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_26_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_26_1x1_reduce"
top: "conv4_26_1x1_reduce"
}
layer {
name: "conv4_26_3x3"
type: "Convolution"
bottom: "conv4_26_1x1_reduce"
top: "conv4_26_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_26_3x3/bn"
type: "BatchNorm"
bottom: "conv4_26_3x3"
top: "conv4_26_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_26_3x3/bn/scale"
type: "Scale"
bottom: "conv4_26_3x3"
top: "conv4_26_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_26_3x3/relu"
type: "ReLU"
bottom: "conv4_26_3x3"
top: "conv4_26_3x3"
}
layer {
name: "conv4_26_1x1_increase"
type: "Convolution"
bottom: "conv4_26_3x3"
top: "conv4_26_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_26_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_26_1x1_increase"
top: "conv4_26_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_26_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_26_1x1_increase"
top: "conv4_26_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_26_global_pool"
type: "Pooling"
bottom: "conv4_26_1x1_increase"
top: "conv4_26_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_26_1x1_down"
type: "Convolution"
bottom: "conv4_26_global_pool"
top: "conv4_26_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_26_1x1_down/relu"
type: "ReLU"
bottom: "conv4_26_1x1_down"
top: "conv4_26_1x1_down"
}
layer {
name: "conv4_26_1x1_up"
type: "Convolution"
bottom: "conv4_26_1x1_down"
top: "conv4_26_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_26_prob"
type: "Sigmoid"
bottom: "conv4_26_1x1_up"
top: "conv4_26_1x1_up"
}
layer {
name: "conv4_26"
type: "Axpy"
bottom: "conv4_26_1x1_up"
bottom: "conv4_26_1x1_increase"
bottom: "conv4_25"
top: "conv4_26"
}
layer {
name: "conv4_26/relu"
type: "ReLU"
bottom: "conv4_26"
top: "conv4_26"
}
layer {
name: "conv4_27_1x1_reduce"
type: "Convolution"
bottom: "conv4_26"
top: "conv4_27_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_27_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_27_1x1_reduce"
top: "conv4_27_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_27_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_27_1x1_reduce"
top: "conv4_27_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_27_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_27_1x1_reduce"
top: "conv4_27_1x1_reduce"
}
layer {
name: "conv4_27_3x3"
type: "Convolution"
bottom: "conv4_27_1x1_reduce"
top: "conv4_27_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_27_3x3/bn"
type: "BatchNorm"
bottom: "conv4_27_3x3"
top: "conv4_27_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_27_3x3/bn/scale"
type: "Scale"
bottom: "conv4_27_3x3"
top: "conv4_27_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_27_3x3/relu"
type: "ReLU"
bottom: "conv4_27_3x3"
top: "conv4_27_3x3"
}
layer {
name: "conv4_27_1x1_increase"
type: "Convolution"
bottom: "conv4_27_3x3"
top: "conv4_27_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_27_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_27_1x1_increase"
top: "conv4_27_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_27_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_27_1x1_increase"
top: "conv4_27_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_27_global_pool"
type: "Pooling"
bottom: "conv4_27_1x1_increase"
top: "conv4_27_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_27_1x1_down"
type: "Convolution"
bottom: "conv4_27_global_pool"
top: "conv4_27_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_27_1x1_down/relu"
type: "ReLU"
bottom: "conv4_27_1x1_down"
top: "conv4_27_1x1_down"
}
layer {
name: "conv4_27_1x1_up"
type: "Convolution"
bottom: "conv4_27_1x1_down"
top: "conv4_27_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_27_prob"
type: "Sigmoid"
bottom: "conv4_27_1x1_up"
top: "conv4_27_1x1_up"
}
layer {
name: "conv4_27"
type: "Axpy"
bottom: "conv4_27_1x1_up"
bottom: "conv4_27_1x1_increase"
bottom: "conv4_26"
top: "conv4_27"
}
layer {
name: "conv4_27/relu"
type: "ReLU"
bottom: "conv4_27"
top: "conv4_27"
}
layer {
name: "conv4_28_1x1_reduce"
type: "Convolution"
bottom: "conv4_27"
top: "conv4_28_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_28_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_28_1x1_reduce"
top: "conv4_28_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_28_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_28_1x1_reduce"
top: "conv4_28_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_28_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_28_1x1_reduce"
top: "conv4_28_1x1_reduce"
}
layer {
name: "conv4_28_3x3"
type: "Convolution"
bottom: "conv4_28_1x1_reduce"
top: "conv4_28_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_28_3x3/bn"
type: "BatchNorm"
bottom: "conv4_28_3x3"
top: "conv4_28_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_28_3x3/bn/scale"
type: "Scale"
bottom: "conv4_28_3x3"
top: "conv4_28_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_28_3x3/relu"
type: "ReLU"
bottom: "conv4_28_3x3"
top: "conv4_28_3x3"
}
layer {
name: "conv4_28_1x1_increase"
type: "Convolution"
bottom: "conv4_28_3x3"
top: "conv4_28_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_28_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_28_1x1_increase"
top: "conv4_28_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_28_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_28_1x1_increase"
top: "conv4_28_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_28_global_pool"
type: "Pooling"
bottom: "conv4_28_1x1_increase"
top: "conv4_28_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_28_1x1_down"
type: "Convolution"
bottom: "conv4_28_global_pool"
top: "conv4_28_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_28_1x1_down/relu"
type: "ReLU"
bottom: "conv4_28_1x1_down"
top: "conv4_28_1x1_down"
}
layer {
name: "conv4_28_1x1_up"
type: "Convolution"
bottom: "conv4_28_1x1_down"
top: "conv4_28_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_28_prob"
type: "Sigmoid"
bottom: "conv4_28_1x1_up"
top: "conv4_28_1x1_up"
}
layer {
name: "conv4_28"
type: "Axpy"
bottom: "conv4_28_1x1_up"
bottom: "conv4_28_1x1_increase"
bottom: "conv4_27"
top: "conv4_28"
}
layer {
name: "conv4_28/relu"
type: "ReLU"
bottom: "conv4_28"
top: "conv4_28"
}
layer {
name: "conv4_29_1x1_reduce"
type: "Convolution"
bottom: "conv4_28"
top: "conv4_29_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_29_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_29_1x1_reduce"
top: "conv4_29_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_29_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_29_1x1_reduce"
top: "conv4_29_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_29_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_29_1x1_reduce"
top: "conv4_29_1x1_reduce"
}
layer {
name: "conv4_29_3x3"
type: "Convolution"
bottom: "conv4_29_1x1_reduce"
top: "conv4_29_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_29_3x3/bn"
type: "BatchNorm"
bottom: "conv4_29_3x3"
top: "conv4_29_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_29_3x3/bn/scale"
type: "Scale"
bottom: "conv4_29_3x3"
top: "conv4_29_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_29_3x3/relu"
type: "ReLU"
bottom: "conv4_29_3x3"
top: "conv4_29_3x3"
}
layer {
name: "conv4_29_1x1_increase"
type: "Convolution"
bottom: "conv4_29_3x3"
top: "conv4_29_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_29_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_29_1x1_increase"
top: "conv4_29_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_29_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_29_1x1_increase"
top: "conv4_29_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_29_global_pool"
type: "Pooling"
bottom: "conv4_29_1x1_increase"
top: "conv4_29_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_29_1x1_down"
type: "Convolution"
bottom: "conv4_29_global_pool"
top: "conv4_29_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_29_1x1_down/relu"
type: "ReLU"
bottom: "conv4_29_1x1_down"
top: "conv4_29_1x1_down"
}
layer {
name: "conv4_29_1x1_up"
type: "Convolution"
bottom: "conv4_29_1x1_down"
top: "conv4_29_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_29_prob"
type: "Sigmoid"
bottom: "conv4_29_1x1_up"
top: "conv4_29_1x1_up"
}
layer {
name: "conv4_29"
type: "Axpy"
bottom: "conv4_29_1x1_up"
bottom: "conv4_29_1x1_increase"
bottom: "conv4_28"
top: "conv4_29"
}
layer {
name: "conv4_29/relu"
type: "ReLU"
bottom: "conv4_29"
top: "conv4_29"
}
layer {
name: "conv4_30_1x1_reduce"
type: "Convolution"
bottom: "conv4_29"
top: "conv4_30_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_30_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_30_1x1_reduce"
top: "conv4_30_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_30_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_30_1x1_reduce"
top: "conv4_30_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_30_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_30_1x1_reduce"
top: "conv4_30_1x1_reduce"
}
layer {
name: "conv4_30_3x3"
type: "Convolution"
bottom: "conv4_30_1x1_reduce"
top: "conv4_30_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_30_3x3/bn"
type: "BatchNorm"
bottom: "conv4_30_3x3"
top: "conv4_30_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_30_3x3/bn/scale"
type: "Scale"
bottom: "conv4_30_3x3"
top: "conv4_30_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_30_3x3/relu"
type: "ReLU"
bottom: "conv4_30_3x3"
top: "conv4_30_3x3"
}
layer {
name: "conv4_30_1x1_increase"
type: "Convolution"
bottom: "conv4_30_3x3"
top: "conv4_30_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_30_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_30_1x1_increase"
top: "conv4_30_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_30_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_30_1x1_increase"
top: "conv4_30_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_30_global_pool"
type: "Pooling"
bottom: "conv4_30_1x1_increase"
top: "conv4_30_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_30_1x1_down"
type: "Convolution"
bottom: "conv4_30_global_pool"
top: "conv4_30_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_30_1x1_down/relu"
type: "ReLU"
bottom: "conv4_30_1x1_down"
top: "conv4_30_1x1_down"
}
layer {
name: "conv4_30_1x1_up"
type: "Convolution"
bottom: "conv4_30_1x1_down"
top: "conv4_30_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_30_prob"
type: "Sigmoid"
bottom: "conv4_30_1x1_up"
top: "conv4_30_1x1_up"
}
layer {
name: "conv4_30"
type: "Axpy"
bottom: "conv4_30_1x1_up"
bottom: "conv4_30_1x1_increase"
bottom: "conv4_29"
top: "conv4_30"
}
layer {
name: "conv4_30/relu"
type: "ReLU"
bottom: "conv4_30"
top: "conv4_30"
}
layer {
name: "conv4_31_1x1_reduce"
type: "Convolution"
bottom: "conv4_30"
top: "conv4_31_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_31_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_31_1x1_reduce"
top: "conv4_31_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_31_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_31_1x1_reduce"
top: "conv4_31_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_31_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_31_1x1_reduce"
top: "conv4_31_1x1_reduce"
}
layer {
name: "conv4_31_3x3"
type: "Convolution"
bottom: "conv4_31_1x1_reduce"
top: "conv4_31_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_31_3x3/bn"
type: "BatchNorm"
bottom: "conv4_31_3x3"
top: "conv4_31_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_31_3x3/bn/scale"
type: "Scale"
bottom: "conv4_31_3x3"
top: "conv4_31_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_31_3x3/relu"
type: "ReLU"
bottom: "conv4_31_3x3"
top: "conv4_31_3x3"
}
layer {
name: "conv4_31_1x1_increase"
type: "Convolution"
bottom: "conv4_31_3x3"
top: "conv4_31_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_31_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_31_1x1_increase"
top: "conv4_31_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_31_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_31_1x1_increase"
top: "conv4_31_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_31_global_pool"
type: "Pooling"
bottom: "conv4_31_1x1_increase"
top: "conv4_31_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_31_1x1_down"
type: "Convolution"
bottom: "conv4_31_global_pool"
top: "conv4_31_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_31_1x1_down/relu"
type: "ReLU"
bottom: "conv4_31_1x1_down"
top: "conv4_31_1x1_down"
}
layer {
name: "conv4_31_1x1_up"
type: "Convolution"
bottom: "conv4_31_1x1_down"
top: "conv4_31_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_31_prob"
type: "Sigmoid"
bottom: "conv4_31_1x1_up"
top: "conv4_31_1x1_up"
}
layer {
name: "conv4_31"
type: "Axpy"
bottom: "conv4_31_1x1_up"
bottom: "conv4_31_1x1_increase"
bottom: "conv4_30"
top: "conv4_31"
}
layer {
name: "conv4_31/relu"
type: "ReLU"
bottom: "conv4_31"
top: "conv4_31"
}
layer {
name: "conv4_32_1x1_reduce"
type: "Convolution"
bottom: "conv4_31"
top: "conv4_32_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_32_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_32_1x1_reduce"
top: "conv4_32_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_32_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_32_1x1_reduce"
top: "conv4_32_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_32_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_32_1x1_reduce"
top: "conv4_32_1x1_reduce"
}
layer {
name: "conv4_32_3x3"
type: "Convolution"
bottom: "conv4_32_1x1_reduce"
top: "conv4_32_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_32_3x3/bn"
type: "BatchNorm"
bottom: "conv4_32_3x3"
top: "conv4_32_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_32_3x3/bn/scale"
type: "Scale"
bottom: "conv4_32_3x3"
top: "conv4_32_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_32_3x3/relu"
type: "ReLU"
bottom: "conv4_32_3x3"
top: "conv4_32_3x3"
}
layer {
name: "conv4_32_1x1_increase"
type: "Convolution"
bottom: "conv4_32_3x3"
top: "conv4_32_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_32_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_32_1x1_increase"
top: "conv4_32_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_32_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_32_1x1_increase"
top: "conv4_32_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_32_global_pool"
type: "Pooling"
bottom: "conv4_32_1x1_increase"
top: "conv4_32_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_32_1x1_down"
type: "Convolution"
bottom: "conv4_32_global_pool"
top: "conv4_32_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_32_1x1_down/relu"
type: "ReLU"
bottom: "conv4_32_1x1_down"
top: "conv4_32_1x1_down"
}
layer {
name: "conv4_32_1x1_up"
type: "Convolution"
bottom: "conv4_32_1x1_down"
top: "conv4_32_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_32_prob"
type: "Sigmoid"
bottom: "conv4_32_1x1_up"
top: "conv4_32_1x1_up"
}
layer {
name: "conv4_32"
type: "Axpy"
bottom: "conv4_32_1x1_up"
bottom: "conv4_32_1x1_increase"
bottom: "conv4_31"
top: "conv4_32"
}
layer {
name: "conv4_32/relu"
type: "ReLU"
bottom: "conv4_32"
top: "conv4_32"
}
layer {
name: "conv4_33_1x1_reduce"
type: "Convolution"
bottom: "conv4_32"
top: "conv4_33_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_33_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_33_1x1_reduce"
top: "conv4_33_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_33_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_33_1x1_reduce"
top: "conv4_33_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_33_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_33_1x1_reduce"
top: "conv4_33_1x1_reduce"
}
layer {
name: "conv4_33_3x3"
type: "Convolution"
bottom: "conv4_33_1x1_reduce"
top: "conv4_33_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_33_3x3/bn"
type: "BatchNorm"
bottom: "conv4_33_3x3"
top: "conv4_33_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_33_3x3/bn/scale"
type: "Scale"
bottom: "conv4_33_3x3"
top: "conv4_33_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_33_3x3/relu"
type: "ReLU"
bottom: "conv4_33_3x3"
top: "conv4_33_3x3"
}
layer {
name: "conv4_33_1x1_increase"
type: "Convolution"
bottom: "conv4_33_3x3"
top: "conv4_33_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_33_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_33_1x1_increase"
top: "conv4_33_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_33_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_33_1x1_increase"
top: "conv4_33_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_33_global_pool"
type: "Pooling"
bottom: "conv4_33_1x1_increase"
top: "conv4_33_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_33_1x1_down"
type: "Convolution"
bottom: "conv4_33_global_pool"
top: "conv4_33_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_33_1x1_down/relu"
type: "ReLU"
bottom: "conv4_33_1x1_down"
top: "conv4_33_1x1_down"
}
layer {
name: "conv4_33_1x1_up"
type: "Convolution"
bottom: "conv4_33_1x1_down"
top: "conv4_33_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_33_prob"
type: "Sigmoid"
bottom: "conv4_33_1x1_up"
top: "conv4_33_1x1_up"
}
layer {
name: "conv4_33"
type: "Axpy"
bottom: "conv4_33_1x1_up"
bottom: "conv4_33_1x1_increase"
bottom: "conv4_32"
top: "conv4_33"
}
layer {
name: "conv4_33/relu"
type: "ReLU"
bottom: "conv4_33"
top: "conv4_33"
}
layer {
name: "conv4_34_1x1_reduce"
type: "Convolution"
bottom: "conv4_33"
top: "conv4_34_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_34_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_34_1x1_reduce"
top: "conv4_34_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_34_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_34_1x1_reduce"
top: "conv4_34_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_34_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_34_1x1_reduce"
top: "conv4_34_1x1_reduce"
}
layer {
name: "conv4_34_3x3"
type: "Convolution"
bottom: "conv4_34_1x1_reduce"
top: "conv4_34_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_34_3x3/bn"
type: "BatchNorm"
bottom: "conv4_34_3x3"
top: "conv4_34_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_34_3x3/bn/scale"
type: "Scale"
bottom: "conv4_34_3x3"
top: "conv4_34_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_34_3x3/relu"
type: "ReLU"
bottom: "conv4_34_3x3"
top: "conv4_34_3x3"
}
layer {
name: "conv4_34_1x1_increase"
type: "Convolution"
bottom: "conv4_34_3x3"
top: "conv4_34_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_34_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_34_1x1_increase"
top: "conv4_34_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_34_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_34_1x1_increase"
top: "conv4_34_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_34_global_pool"
type: "Pooling"
bottom: "conv4_34_1x1_increase"
top: "conv4_34_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_34_1x1_down"
type: "Convolution"
bottom: "conv4_34_global_pool"
top: "conv4_34_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_34_1x1_down/relu"
type: "ReLU"
bottom: "conv4_34_1x1_down"
top: "conv4_34_1x1_down"
}
layer {
name: "conv4_34_1x1_up"
type: "Convolution"
bottom: "conv4_34_1x1_down"
top: "conv4_34_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_34_prob"
type: "Sigmoid"
bottom: "conv4_34_1x1_up"
top: "conv4_34_1x1_up"
}
layer {
name: "conv4_34"
type: "Axpy"
bottom: "conv4_34_1x1_up"
bottom: "conv4_34_1x1_increase"
bottom: "conv4_33"
top: "conv4_34"
}
layer {
name: "conv4_34/relu"
type: "ReLU"
bottom: "conv4_34"
top: "conv4_34"
}
layer {
name: "conv4_35_1x1_reduce"
type: "Convolution"
bottom: "conv4_34"
top: "conv4_35_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_35_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_35_1x1_reduce"
top: "conv4_35_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_35_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_35_1x1_reduce"
top: "conv4_35_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_35_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_35_1x1_reduce"
top: "conv4_35_1x1_reduce"
}
layer {
name: "conv4_35_3x3"
type: "Convolution"
bottom: "conv4_35_1x1_reduce"
top: "conv4_35_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_35_3x3/bn"
type: "BatchNorm"
bottom: "conv4_35_3x3"
top: "conv4_35_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_35_3x3/bn/scale"
type: "Scale"
bottom: "conv4_35_3x3"
top: "conv4_35_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_35_3x3/relu"
type: "ReLU"
bottom: "conv4_35_3x3"
top: "conv4_35_3x3"
}
layer {
name: "conv4_35_1x1_increase"
type: "Convolution"
bottom: "conv4_35_3x3"
top: "conv4_35_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_35_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_35_1x1_increase"
top: "conv4_35_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_35_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_35_1x1_increase"
top: "conv4_35_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_35_global_pool"
type: "Pooling"
bottom: "conv4_35_1x1_increase"
top: "conv4_35_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_35_1x1_down"
type: "Convolution"
bottom: "conv4_35_global_pool"
top: "conv4_35_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_35_1x1_down/relu"
type: "ReLU"
bottom: "conv4_35_1x1_down"
top: "conv4_35_1x1_down"
}
layer {
name: "conv4_35_1x1_up"
type: "Convolution"
bottom: "conv4_35_1x1_down"
top: "conv4_35_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_35_prob"
type: "Sigmoid"
bottom: "conv4_35_1x1_up"
top: "conv4_35_1x1_up"
}
layer {
name: "conv4_35"
type: "Axpy"
bottom: "conv4_35_1x1_up"
bottom: "conv4_35_1x1_increase"
bottom: "conv4_34"
top: "conv4_35"
}
layer {
name: "conv4_35/relu"
type: "ReLU"
bottom: "conv4_35"
top: "conv4_35"
}
layer {
name: "conv4_36_1x1_reduce"
type: "Convolution"
bottom: "conv4_35"
top: "conv4_36_1x1_reduce"
convolution_param {
num_output: 512
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_36_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv4_36_1x1_reduce"
top: "conv4_36_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_36_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv4_36_1x1_reduce"
top: "conv4_36_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_36_1x1_reduce/relu"
type: "ReLU"
bottom: "conv4_36_1x1_reduce"
top: "conv4_36_1x1_reduce"
}
layer {
name: "conv4_36_3x3"
type: "Convolution"
bottom: "conv4_36_1x1_reduce"
top: "conv4_36_3x3"
convolution_param {
num_output: 1024
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv4_36_3x3/bn"
type: "BatchNorm"
bottom: "conv4_36_3x3"
top: "conv4_36_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_36_3x3/bn/scale"
type: "Scale"
bottom: "conv4_36_3x3"
top: "conv4_36_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_36_3x3/relu"
type: "ReLU"
bottom: "conv4_36_3x3"
top: "conv4_36_3x3"
}
layer {
name: "conv4_36_1x1_increase"
type: "Convolution"
bottom: "conv4_36_3x3"
top: "conv4_36_1x1_increase"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_36_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv4_36_1x1_increase"
top: "conv4_36_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv4_36_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv4_36_1x1_increase"
top: "conv4_36_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv4_36_global_pool"
type: "Pooling"
bottom: "conv4_36_1x1_increase"
top: "conv4_36_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv4_36_1x1_down"
type: "Convolution"
bottom: "conv4_36_global_pool"
top: "conv4_36_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_36_1x1_down/relu"
type: "ReLU"
bottom: "conv4_36_1x1_down"
top: "conv4_36_1x1_down"
}
layer {
name: "conv4_36_1x1_up"
type: "Convolution"
bottom: "conv4_36_1x1_down"
top: "conv4_36_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "conv4_36_prob"
type: "Sigmoid"
bottom: "conv4_36_1x1_up"
top: "conv4_36_1x1_up"
}
layer {
name: "conv4_36"
type: "Axpy"
bottom: "conv4_36_1x1_up"
bottom: "conv4_36_1x1_increase"
bottom: "conv4_35"
top: "conv4_36"
}
layer {
name: "conv4_36/relu"
type: "ReLU"
bottom: "conv4_36"
top: "conv4_36"
}
layer {
name: "conv5_1_1x1_reduce"
type: "Convolution"
bottom: "conv4_36"
top: "conv5_1_1x1_reduce"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_1_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv5_1_1x1_reduce"
top: "conv5_1_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_1_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv5_1_1x1_reduce"
top: "conv5_1_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_1_1x1_reduce/relu"
type: "ReLU"
bottom: "conv5_1_1x1_reduce"
top: "conv5_1_1x1_reduce"
}
layer {
name: "conv5_1_3x3"
type: "Convolution"
bottom: "conv5_1_1x1_reduce"
top: "conv5_1_3x3"
convolution_param {
num_output: 2048
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 2
}
}
layer {
name: "conv5_1_3x3/bn"
type: "BatchNorm"
bottom: "conv5_1_3x3"
top: "conv5_1_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_1_3x3/bn/scale"
type: "Scale"
bottom: "conv5_1_3x3"
top: "conv5_1_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_1_3x3/relu"
type: "ReLU"
bottom: "conv5_1_3x3"
top: "conv5_1_3x3"
}
layer {
name: "conv5_1_1x1_increase"
type: "Convolution"
bottom: "conv5_1_3x3"
top: "conv5_1_1x1_increase"
convolution_param {
num_output: 2048
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_1_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv5_1_1x1_increase"
top: "conv5_1_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_1_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv5_1_1x1_increase"
top: "conv5_1_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_1_global_pool"
type: "Pooling"
bottom: "conv5_1_1x1_increase"
top: "conv5_1_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv5_1_1x1_down"
type: "Convolution"
bottom: "conv5_1_global_pool"
top: "conv5_1_1x1_down"
convolution_param {
num_output: 128
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_1_1x1_down/relu"
type: "ReLU"
bottom: "conv5_1_1x1_down"
top: "conv5_1_1x1_down"
}
layer {
name: "conv5_1_1x1_up"
type: "Convolution"
bottom: "conv5_1_1x1_down"
top: "conv5_1_1x1_up"
convolution_param {
num_output: 2048
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_1_prob"
type: "Sigmoid"
bottom: "conv5_1_1x1_up"
top: "conv5_1_1x1_up"
}
layer {
name: "conv5_1_1x1_proj"
type: "Convolution"
bottom: "conv4_36"
top: "conv5_1_1x1_proj"
convolution_param {
num_output: 2048
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "conv5_1_1x1_proj/bn"
type: "BatchNorm"
bottom: "conv5_1_1x1_proj"
top: "conv5_1_1x1_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_1_1x1_proj/bn/scale"
type: "Scale"
bottom: "conv5_1_1x1_proj"
top: "conv5_1_1x1_proj"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_1"
type: "Axpy"
bottom: "conv5_1_1x1_up"
bottom: "conv5_1_1x1_increase"
bottom: "conv5_1_1x1_proj"
top: "conv5_1"
}
layer {
name: "conv5_1/relu"
type: "ReLU"
bottom: "conv5_1"
top: "conv5_1"
}
layer {
name: "conv5_2_1x1_reduce"
type: "Convolution"
bottom: "conv5_1"
top: "conv5_2_1x1_reduce"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_2_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv5_2_1x1_reduce"
top: "conv5_2_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_2_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv5_2_1x1_reduce"
top: "conv5_2_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_2_1x1_reduce/relu"
type: "ReLU"
bottom: "conv5_2_1x1_reduce"
top: "conv5_2_1x1_reduce"
}
layer {
name: "conv5_2_3x3"
type: "Convolution"
bottom: "conv5_2_1x1_reduce"
top: "conv5_2_3x3"
convolution_param {
num_output: 2048
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv5_2_3x3/bn"
type: "BatchNorm"
bottom: "conv5_2_3x3"
top: "conv5_2_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_2_3x3/bn/scale"
type: "Scale"
bottom: "conv5_2_3x3"
top: "conv5_2_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_2_3x3/relu"
type: "ReLU"
bottom: "conv5_2_3x3"
top: "conv5_2_3x3"
}
layer {
name: "conv5_2_1x1_increase"
type: "Convolution"
bottom: "conv5_2_3x3"
top: "conv5_2_1x1_increase"
convolution_param {
num_output: 2048
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_2_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv5_2_1x1_increase"
top: "conv5_2_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_2_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv5_2_1x1_increase"
top: "conv5_2_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_2_global_pool"
type: "Pooling"
bottom: "conv5_2_1x1_increase"
top: "conv5_2_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv5_2_1x1_down"
type: "Convolution"
bottom: "conv5_2_global_pool"
top: "conv5_2_1x1_down"
convolution_param {
num_output: 128
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_2_1x1_down/relu"
type: "ReLU"
bottom: "conv5_2_1x1_down"
top: "conv5_2_1x1_down"
}
layer {
name: "conv5_2_1x1_up"
type: "Convolution"
bottom: "conv5_2_1x1_down"
top: "conv5_2_1x1_up"
convolution_param {
num_output: 2048
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_2_prob"
type: "Sigmoid"
bottom: "conv5_2_1x1_up"
top: "conv5_2_1x1_up"
}
layer {
name: "conv5_2"
type: "Axpy"
bottom: "conv5_2_1x1_up"
bottom: "conv5_2_1x1_increase"
bottom: "conv5_1"
top: "conv5_2"
}
layer {
name: "conv5_2/relu"
type: "ReLU"
bottom: "conv5_2"
top: "conv5_2"
}
layer {
name: "conv5_3_1x1_reduce"
type: "Convolution"
bottom: "conv5_2"
top: "conv5_3_1x1_reduce"
convolution_param {
num_output: 1024
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_3_1x1_reduce/bn"
type: "BatchNorm"
bottom: "conv5_3_1x1_reduce"
top: "conv5_3_1x1_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_3_1x1_reduce/bn/scale"
type: "Scale"
bottom: "conv5_3_1x1_reduce"
top: "conv5_3_1x1_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_3_1x1_reduce/relu"
type: "ReLU"
bottom: "conv5_3_1x1_reduce"
top: "conv5_3_1x1_reduce"
}
layer {
name: "conv5_3_3x3"
type: "Convolution"
bottom: "conv5_3_1x1_reduce"
top: "conv5_3_3x3"
convolution_param {
num_output: 2048
bias_term: false
pad: 1
kernel_size: 3
group: 64
stride: 1
}
}
layer {
name: "conv5_3_3x3/bn"
type: "BatchNorm"
bottom: "conv5_3_3x3"
top: "conv5_3_3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_3_3x3/bn/scale"
type: "Scale"
bottom: "conv5_3_3x3"
top: "conv5_3_3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_3_3x3/relu"
type: "ReLU"
bottom: "conv5_3_3x3"
top: "conv5_3_3x3"
}
layer {
name: "conv5_3_1x1_increase"
type: "Convolution"
bottom: "conv5_3_3x3"
top: "conv5_3_1x1_increase"
convolution_param {
num_output: 2048
bias_term: false
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_3_1x1_increase/bn"
type: "BatchNorm"
bottom: "conv5_3_1x1_increase"
top: "conv5_3_1x1_increase"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv5_3_1x1_increase/bn/scale"
type: "Scale"
bottom: "conv5_3_1x1_increase"
top: "conv5_3_1x1_increase"
scale_param {
bias_term: true
}
}
layer {
name: "conv5_3_global_pool"
type: "Pooling"
bottom: "conv5_3_1x1_increase"
top: "conv5_3_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "conv5_3_1x1_down"
type: "Convolution"
bottom: "conv5_3_global_pool"
top: "conv5_3_1x1_down"
convolution_param {
num_output: 128
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_3_1x1_down/relu"
type: "ReLU"
bottom: "conv5_3_1x1_down"
top: "conv5_3_1x1_down"
}
layer {
name: "conv5_3_1x1_up"
type: "Convolution"
bottom: "conv5_3_1x1_down"
top: "conv5_3_1x1_up"
convolution_param {
num_output: 2048
kernel_size: 1
stride: 1
}
}
layer {
name: "conv5_3_prob"
type: "Sigmoid"
bottom: "conv5_3_1x1_up"
top: "conv5_3_1x1_up"
}
layer {
name: "conv5_3"
type: "Axpy"
bottom: "conv5_3_1x1_up"
bottom: "conv5_3_1x1_increase"
bottom: "conv5_2"
top: "conv5_3"
}
layer {
name: "conv5_3/relu"
type: "ReLU"
bottom: "conv5_3"
top: "conv5_3"
}
layer {
name: "pool5/7x7_s1"
type: "Pooling"
bottom: "conv5_3"
top: "pool5/7x7_s1"
pooling_param {
pool: AVE
kernel_size: 7
stride: 1
}
}
layer {
name: "pool5/dropout_7x7_s1"
type: "Dropout"
bottom: "pool5/7x7_s1"
top: "pool5/7x7_s1"
dropout_param {
dropout_ratio: 0.2
}
}
layer {
name: "classifier"
type: "InnerProduct"
bottom: "pool5/7x7_s1"
top: "classifier"
inner_product_param {
num_output: 1000
}
}
layer {
name: "prob"
type: "Softmax"
bottom: "classifier"
top: "prob"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment