hujie-frank/SENet

train loss not decay

guoqiang01486 opened this issue · 2 comments

thank you for you sharing code
Can i use your SE-BN-Inception.prototxt file for training on my own 5 class dataset? not add your axpy_layer.cpp in my nvidia caffe.
the question is train loss not decay, here is train loss log:

Iteration 1 (0.191967 s), loss = 1.60935
I0819 12:00:14.408243 16082 solver.cpp:374] Train net output #0: loss3/loss3 = 1.60926 (* 1 = 1.60926 loss)
...
Iteration 39920, lr = 0.01, m = 0.9, wd = 0.0002, gs = 1
I0819 14:01:55.992344 16082 solver.cpp:350] Iteration 39960 (6.0879 iter/s, 6.57041s/40 iter), 64.6/16170.6ep, loss = 1.60997

Here is my solver.prototxt and train.prototxt
solver pt:

net: "models/bvlc_googlenet/SE_train.prototxt"
test_iter: 1000
test_interval: 4000
test_initialization: false
display: 40
average_loss: 40
base_lr: 0.01
lr_policy: "step"
stepsize: 320000
gamma: 0.96
max_iter: 10000000
momentum: 0.9
weight_decay: 0.0002
snapshot: 40000
snapshot_prefix: "models/bvlc_googlenet/SE"
solver_mode: GPU

train pt:

name: "SE-BN-Inception"
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
mirror: true
crop_size: 224
mean_file: "/media/guo/Storage/voc-5-class/voc_person_mean.binaryproto"
#mean_value: 104
#mean_value: 117
#mean_value: 123
}
data_param {
source: "/media/guo/Storage/voc-5-class/voc_person_train_lmdb/"
batch_size: 32
backend: LMDB
}
}
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
mirror: false
crop_size: 224
mean_file: "/media/guo/Storage/voc-5-class/voc_person_mean.binaryproto"
#mean_value: 104
#mean_value: 117
#mean_value: 123
}
data_param {
source: "/media/guo/Storage/voc-5-class/voc_person_val_lmdb/"
batch_size: 50
backend: LMDB
}
}
layer {
name: "conv1/7x7_s2"
type: "Convolution"
bottom: "data"
top: "conv1/7x7_s2"
convolution_param {
num_output: 64
bias_term: false
pad: 3
kernel_size: 7
stride: 2
}
}
layer {
name: "conv1/7x7_s2/bn"
type: "BatchNorm"
bottom: "conv1/7x7_s2"
top: "conv1/7x7_s2"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv1/7x7_s2/bn/scale"
type: "Scale"
bottom: "conv1/7x7_s2"
top: "conv1/7x7_s2"
scale_param {
bias_term: true
}
}
layer {
name: "conv1/relu_7x7"
type: "ReLU"
bottom: "conv1/7x7_s2"
top: "conv1/7x7_s2"
}
layer {
name: "pool1/3x3_s2"
type: "Pooling"
bottom: "conv1/7x7_s2"
top: "pool1/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "conv2/3x3_reduce"
type: "Convolution"
bottom: "pool1/3x3_s2"
top: "conv2/3x3_reduce"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "conv2/3x3_reduce/bn"
type: "BatchNorm"
bottom: "conv2/3x3_reduce"
top: "conv2/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2/3x3_reduce/bn/scale"
type: "Scale"
bottom: "conv2/3x3_reduce"
top: "conv2/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "conv2/relu_3x3_reduce"
type: "ReLU"
bottom: "conv2/3x3_reduce"
top: "conv2/3x3_reduce"
}
layer {
name: "conv2/3x3"
type: "Convolution"
bottom: "conv2/3x3_reduce"
top: "conv2/3x3"
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "conv2/3x3/bn"
type: "BatchNorm"
bottom: "conv2/3x3"
top: "conv2/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "conv2/3x3/bn/scale"
type: "Scale"
bottom: "conv2/3x3"
top: "conv2/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "conv2/relu_3x3"
type: "ReLU"
bottom: "conv2/3x3"
top: "conv2/3x3"
}
layer {
name: "pool2/3x3_s2"
type: "Pooling"
bottom: "conv2/3x3"
top: "pool2/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "inception_3a/1x1"
type: "Convolution"
bottom: "pool2/3x3_s2"
top: "inception_3a/1x1"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3a/1x1/bn"
type: "BatchNorm"
bottom: "inception_3a/1x1"
top: "inception_3a/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3a/1x1/bn/scale"
type: "Scale"
bottom: "inception_3a/1x1"
top: "inception_3a/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3a/relu_1x1"
type: "ReLU"
bottom: "inception_3a/1x1"
top: "inception_3a/1x1"
}
layer {
name: "inception_3a/3x3_reduce"
type: "Convolution"
bottom: "pool2/3x3_s2"
top: "inception_3a/3x3_reduce"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3a/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_3a/3x3_reduce"
top: "inception_3a/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3a/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_3a/3x3_reduce"
top: "inception_3a/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3a/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_3a/3x3_reduce"
top: "inception_3a/3x3_reduce"
}
layer {
name: "inception_3a/3x3"
type: "Convolution"
bottom: "inception_3a/3x3_reduce"
top: "inception_3a/3x3"
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3a/3x3/bn"
type: "BatchNorm"
bottom: "inception_3a/3x3"
top: "inception_3a/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3a/3x3/bn/scale"
type: "Scale"
bottom: "inception_3a/3x3"
top: "inception_3a/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3a/relu_3x3"
type: "ReLU"
bottom: "inception_3a/3x3"
top: "inception_3a/3x3"
}
layer {
name: "inception_3a/double3x3_reduce"
type: "Convolution"
bottom: "pool2/3x3_s2"
top: "inception_3a/double3x3_reduce"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3a/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_3a/double3x3_reduce"
top: "inception_3a/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3a/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_3a/double3x3_reduce"
top: "inception_3a/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3a/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_3a/double3x3_reduce"
top: "inception_3a/double3x3_reduce"
}
layer {
name: "inception_3a/double3x3a"
type: "Convolution"
bottom: "inception_3a/double3x3_reduce"
top: "inception_3a/double3x3a"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3a/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_3a/double3x3a"
top: "inception_3a/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3a/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_3a/double3x3a"
top: "inception_3a/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3a/relu_double3x3a"
type: "ReLU"
bottom: "inception_3a/double3x3a"
top: "inception_3a/double3x3a"
}
layer {
name: "inception_3a/double3x3b"
type: "Convolution"
bottom: "inception_3a/double3x3a"
top: "inception_3a/double3x3b"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3a/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_3a/double3x3b"
top: "inception_3a/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3a/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_3a/double3x3b"
top: "inception_3a/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3a/relu_double3x3b"
type: "ReLU"
bottom: "inception_3a/double3x3b"
top: "inception_3a/double3x3b"
}
layer {
name: "inception_3a/pool"
type: "Pooling"
bottom: "pool2/3x3_s2"
top: "inception_3a/pool"
pooling_param {
pool: AVE
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_3a/pool_proj"
type: "Convolution"
bottom: "inception_3a/pool"
top: "inception_3a/pool_proj"
convolution_param {
num_output: 32
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3a/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_3a/pool_proj"
top: "inception_3a/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3a/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_3a/pool_proj"
top: "inception_3a/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3a/relu_pool_proj"
type: "ReLU"
bottom: "inception_3a/pool_proj"
top: "inception_3a/pool_proj"
}
layer {
name: "inception_3a/concat"
type: "Concat"
bottom: "inception_3a/1x1"
bottom: "inception_3a/3x3"
bottom: "inception_3a/double3x3b"
bottom: "inception_3a/pool_proj"
top: "inception_3a/concat"
}
layer {
name: "inception_3a_global_pool"
type: "Pooling"
bottom: "inception_3a/concat"
top: "inception_3a_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_3a_1x1_down"
type: "Convolution"
bottom: "inception_3a_global_pool"
top: "inception_3a_1x1_down"
convolution_param {
num_output: 16
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_3a_1x1_down/relu"
type: "ReLU"
bottom: "inception_3a_1x1_down"
top: "inception_3a_1x1_down"
}
layer {
name: "inception_3a_1x1_up"
type: "Convolution"
bottom: "inception_3a_1x1_down"
top: "inception_3a_1x1_up"
convolution_param {
num_output: 256
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_3a_prob"
type: "Sigmoid"
bottom: "inception_3a_1x1_up"
top: "inception_3a_1x1_up"
}
layer {
name: "inception_3a_prob_reshape"
type: "Reshape"
bottom: "inception_3a_1x1_up"
top: "inception_3a_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_3a_scale"
type: "Scale"
bottom: "inception_3a/concat"
bottom: "inception_3a_prob_reshape"
top: "inception_3a/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_3b/1x1"
type: "Convolution"
bottom: "inception_3a/output"
top: "inception_3b/1x1"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3b/1x1/bn"
type: "BatchNorm"
bottom: "inception_3b/1x1"
top: "inception_3b/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3b/1x1/bn/scale"
type: "Scale"
bottom: "inception_3b/1x1"
top: "inception_3b/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3b/relu_1x1"
type: "ReLU"
bottom: "inception_3b/1x1"
top: "inception_3b/1x1"
}
layer {
name: "inception_3b/3x3_reduce"
type: "Convolution"
bottom: "inception_3a/output"
top: "inception_3b/3x3_reduce"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3b/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_3b/3x3_reduce"
top: "inception_3b/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3b/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_3b/3x3_reduce"
top: "inception_3b/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3b/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_3b/3x3_reduce"
top: "inception_3b/3x3_reduce"
}
layer {
name: "inception_3b/3x3"
type: "Convolution"
bottom: "inception_3b/3x3_reduce"
top: "inception_3b/3x3"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3b/3x3/bn"
type: "BatchNorm"
bottom: "inception_3b/3x3"
top: "inception_3b/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3b/3x3/bn/scale"
type: "Scale"
bottom: "inception_3b/3x3"
top: "inception_3b/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3b/relu_3x3"
type: "ReLU"
bottom: "inception_3b/3x3"
top: "inception_3b/3x3"
}
layer {
name: "inception_3b/double3x3_reduce"
type: "Convolution"
bottom: "inception_3a/output"
top: "inception_3b/double3x3_reduce"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3b/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_3b/double3x3_reduce"
top: "inception_3b/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3b/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_3b/double3x3_reduce"
top: "inception_3b/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3b/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_3b/double3x3_reduce"
top: "inception_3b/double3x3_reduce"
}
layer {
name: "inception_3b/double3x3a"
type: "Convolution"
bottom: "inception_3b/double3x3_reduce"
top: "inception_3b/double3x3a"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3b/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_3b/double3x3a"
top: "inception_3b/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3b/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_3b/double3x3a"
top: "inception_3b/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3b/relu_double3x3a"
type: "ReLU"
bottom: "inception_3b/double3x3a"
top: "inception_3b/double3x3a"
}
layer {
name: "inception_3b/double3x3b"
type: "Convolution"
bottom: "inception_3b/double3x3a"
top: "inception_3b/double3x3b"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3b/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_3b/double3x3b"
top: "inception_3b/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3b/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_3b/double3x3b"
top: "inception_3b/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3b/relu_double3x3b"
type: "ReLU"
bottom: "inception_3b/double3x3b"
top: "inception_3b/double3x3b"
}
layer {
name: "inception_3b/pool"
type: "Pooling"
bottom: "inception_3a/output"
top: "inception_3b/pool"
pooling_param {
pool: AVE
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_3b/pool_proj"
type: "Convolution"
bottom: "inception_3b/pool"
top: "inception_3b/pool_proj"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3b/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_3b/pool_proj"
top: "inception_3b/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3b/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_3b/pool_proj"
top: "inception_3b/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3b/relu_pool_proj"
type: "ReLU"
bottom: "inception_3b/pool_proj"
top: "inception_3b/pool_proj"
}
layer {
name: "inception_3b/concat"
type: "Concat"
bottom: "inception_3b/1x1"
bottom: "inception_3b/3x3"
bottom: "inception_3b/double3x3b"
bottom: "inception_3b/pool_proj"
top: "inception_3b/concat"
}
layer {
name: "inception_3b_global_pool"
type: "Pooling"
bottom: "inception_3b/concat"
top: "inception_3b_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_3b_1x1_down"
type: "Convolution"
bottom: "inception_3b_global_pool"
top: "inception_3b_1x1_down"
convolution_param {
num_output: 20
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_3b_1x1_down/relu"
type: "ReLU"
bottom: "inception_3b_1x1_down"
top: "inception_3b_1x1_down"
}
layer {
name: "inception_3b_1x1_up"
type: "Convolution"
bottom: "inception_3b_1x1_down"
top: "inception_3b_1x1_up"
convolution_param {
num_output: 320
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_3b_prob"
type: "Sigmoid"
bottom: "inception_3b_1x1_up"
top: "inception_3b_1x1_up"
}
layer {
name: "inception_3b_prob_reshape"
type: "Reshape"
bottom: "inception_3b_1x1_up"
top: "inception_3b_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_3b_scale"
type: "Scale"
bottom: "inception_3b/concat"
bottom: "inception_3b_prob_reshape"
top: "inception_3b/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_3c/3x3_reduce"
type: "Convolution"
bottom: "inception_3b/output"
top: "inception_3c/3x3_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3c/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_3c/3x3_reduce"
top: "inception_3c/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3c/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_3c/3x3_reduce"
top: "inception_3c/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3c/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_3c/3x3_reduce"
top: "inception_3c/3x3_reduce"
}
layer {
name: "inception_3c/3x3"
type: "Convolution"
bottom: "inception_3c/3x3_reduce"
top: "inception_3c/3x3"
convolution_param {
num_output: 160
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "inception_3c/3x3/bn"
type: "BatchNorm"
bottom: "inception_3c/3x3"
top: "inception_3c/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3c/3x3/bn/scale"
type: "Scale"
bottom: "inception_3c/3x3"
top: "inception_3c/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3c/relu_3x3"
type: "ReLU"
bottom: "inception_3c/3x3"
top: "inception_3c/3x3"
}
layer {
name: "inception_3c/double3x3_reduce"
type: "Convolution"
bottom: "inception_3b/output"
top: "inception_3c/double3x3_reduce"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_3c/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_3c/double3x3_reduce"
top: "inception_3c/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3c/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_3c/double3x3_reduce"
top: "inception_3c/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3c/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_3c/double3x3_reduce"
top: "inception_3c/double3x3_reduce"
}
layer {
name: "inception_3c/double3x3a"
type: "Convolution"
bottom: "inception_3c/double3x3_reduce"
top: "inception_3c/double3x3a"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3c/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_3c/double3x3a"
top: "inception_3c/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3c/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_3c/double3x3a"
top: "inception_3c/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3c/relu_double3x3a"
type: "ReLU"
bottom: "inception_3c/double3x3a"
top: "inception_3c/double3x3a"
}
layer {
name: "inception_3c/double3x3b"
type: "Convolution"
bottom: "inception_3c/double3x3a"
top: "inception_3c/double3x3b"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "inception_3c/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_3c/double3x3b"
top: "inception_3c/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_3c/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_3c/double3x3b"
top: "inception_3c/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_3c/relu_double3x3b"
type: "ReLU"
bottom: "inception_3c/double3x3b"
top: "inception_3c/double3x3b"
}
layer {
name: "inception_3c/pool/3x3_s2"
type: "Pooling"
bottom: "inception_3b/output"
top: "inception_3c/pool/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "inception_3c/concat"
type: "Concat"
bottom: "inception_3c/3x3"
bottom: "inception_3c/double3x3b"
bottom: "inception_3c/pool/3x3_s2"
top: "inception_3c/concat"
}
layer {
name: "inception_3c_global_pool"
type: "Pooling"
bottom: "inception_3c/concat"
top: "inception_3c_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_3c_1x1_down"
type: "Convolution"
bottom: "inception_3c_global_pool"
top: "inception_3c_1x1_down"
convolution_param {
num_output: 36
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_3c_1x1_down/relu"
type: "ReLU"
bottom: "inception_3c_1x1_down"
top: "inception_3c_1x1_down"
}
layer {
name: "inception_3c_1x1_up"
type: "Convolution"
bottom: "inception_3c_1x1_down"
top: "inception_3c_1x1_up"
convolution_param {
num_output: 576
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_3c_prob"
type: "Sigmoid"
bottom: "inception_3c_1x1_up"
top: "inception_3c_1x1_up"
}
layer {
name: "inception_3c_prob_reshape"
type: "Reshape"
bottom: "inception_3c_1x1_up"
top: "inception_3c_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_3c_scale"
type: "Scale"
bottom: "inception_3c/concat"
bottom: "inception_3c_prob_reshape"
top: "inception_3c/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_4a/1x1"
type: "Convolution"
bottom: "inception_3c/output"
top: "inception_4a/1x1"
convolution_param {
num_output: 224
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4a/1x1/bn"
type: "BatchNorm"
bottom: "inception_4a/1x1"
top: "inception_4a/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4a/1x1/bn/scale"
type: "Scale"
bottom: "inception_4a/1x1"
top: "inception_4a/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4a/relu_1x1"
type: "ReLU"
bottom: "inception_4a/1x1"
top: "inception_4a/1x1"
}
layer {
name: "inception_4a/3x3_reduce"
type: "Convolution"
bottom: "inception_3c/output"
top: "inception_4a/3x3_reduce"
convolution_param {
num_output: 64
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4a/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4a/3x3_reduce"
top: "inception_4a/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4a/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4a/3x3_reduce"
top: "inception_4a/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4a/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_4a/3x3_reduce"
top: "inception_4a/3x3_reduce"
}
layer {
name: "inception_4a/3x3"
type: "Convolution"
bottom: "inception_4a/3x3_reduce"
top: "inception_4a/3x3"
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4a/3x3/bn"
type: "BatchNorm"
bottom: "inception_4a/3x3"
top: "inception_4a/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4a/3x3/bn/scale"
type: "Scale"
bottom: "inception_4a/3x3"
top: "inception_4a/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4a/relu_3x3"
type: "ReLU"
bottom: "inception_4a/3x3"
top: "inception_4a/3x3"
}
layer {
name: "inception_4a/double3x3_reduce"
type: "Convolution"
bottom: "inception_3c/output"
top: "inception_4a/double3x3_reduce"
convolution_param {
num_output: 96
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4a/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4a/double3x3_reduce"
top: "inception_4a/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4a/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4a/double3x3_reduce"
top: "inception_4a/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4a/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_4a/double3x3_reduce"
top: "inception_4a/double3x3_reduce"
}
layer {
name: "inception_4a/double3x3a"
type: "Convolution"
bottom: "inception_4a/double3x3_reduce"
top: "inception_4a/double3x3a"
convolution_param {
num_output: 128
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4a/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_4a/double3x3a"
top: "inception_4a/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4a/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_4a/double3x3a"
top: "inception_4a/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4a/relu_double3x3a"
type: "ReLU"
bottom: "inception_4a/double3x3a"
top: "inception_4a/double3x3a"
}
layer {
name: "inception_4a/double3x3b"
type: "Convolution"
bottom: "inception_4a/double3x3a"
top: "inception_4a/double3x3b"
convolution_param {
num_output: 128
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4a/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_4a/double3x3b"
top: "inception_4a/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4a/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_4a/double3x3b"
top: "inception_4a/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4a/relu_double3x3b"
type: "ReLU"
bottom: "inception_4a/double3x3b"
top: "inception_4a/double3x3b"
}
layer {
name: "inception_4a/pool"
type: "Pooling"
bottom: "inception_3c/output"
top: "inception_4a/pool"
pooling_param {
pool: AVE
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_4a/pool_proj"
type: "Convolution"
bottom: "inception_4a/pool"
top: "inception_4a/pool_proj"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4a/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_4a/pool_proj"
top: "inception_4a/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4a/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_4a/pool_proj"
top: "inception_4a/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4a/relu_pool_proj"
type: "ReLU"
bottom: "inception_4a/pool_proj"
top: "inception_4a/pool_proj"
}
layer {
name: "inception_4a/concat"
type: "Concat"
bottom: "inception_4a/1x1"
bottom: "inception_4a/3x3"
bottom: "inception_4a/double3x3b"
bottom: "inception_4a/pool_proj"
top: "inception_4a/concat"
}
layer {
name: "inception_4a_global_pool"
type: "Pooling"
bottom: "inception_4a/concat"
top: "inception_4a_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_4a_1x1_down"
type: "Convolution"
bottom: "inception_4a_global_pool"
top: "inception_4a_1x1_down"
convolution_param {
num_output: 36
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4a_1x1_down/relu"
type: "ReLU"
bottom: "inception_4a_1x1_down"
top: "inception_4a_1x1_down"
}
layer {
name: "inception_4a_1x1_up"
type: "Convolution"
bottom: "inception_4a_1x1_down"
top: "inception_4a_1x1_up"
convolution_param {
num_output: 576
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4a_prob"
type: "Sigmoid"
bottom: "inception_4a_1x1_up"
top: "inception_4a_1x1_up"
}
layer {
name: "inception_4a_prob_reshape"
type: "Reshape"
bottom: "inception_4a_1x1_up"
top: "inception_4a_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_4a_scale"
type: "Scale"
bottom: "inception_4a/concat"
bottom: "inception_4a_prob_reshape"
top: "inception_4a/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_4b/1x1"
type: "Convolution"
bottom: "inception_4a/output"
top: "inception_4b/1x1"
convolution_param {
num_output: 192
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4b/1x1/bn"
type: "BatchNorm"
bottom: "inception_4b/1x1"
top: "inception_4b/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4b/1x1/bn/scale"
type: "Scale"
bottom: "inception_4b/1x1"
top: "inception_4b/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4b/relu_1x1"
type: "ReLU"
bottom: "inception_4b/1x1"
top: "inception_4b/1x1"
}
layer {
name: "inception_4b/3x3_reduce"
type: "Convolution"
bottom: "inception_4a/output"
top: "inception_4b/3x3_reduce"
convolution_param {
num_output: 96
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4b/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4b/3x3_reduce"
top: "inception_4b/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4b/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4b/3x3_reduce"
top: "inception_4b/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4b/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_4b/3x3_reduce"
top: "inception_4b/3x3_reduce"
}
layer {
name: "inception_4b/3x3"
type: "Convolution"
bottom: "inception_4b/3x3_reduce"
top: "inception_4b/3x3"
convolution_param {
num_output: 128
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4b/3x3/bn"
type: "BatchNorm"
bottom: "inception_4b/3x3"
top: "inception_4b/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4b/3x3/bn/scale"
type: "Scale"
bottom: "inception_4b/3x3"
top: "inception_4b/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4b/relu_3x3"
type: "ReLU"
bottom: "inception_4b/3x3"
top: "inception_4b/3x3"
}
layer {
name: "inception_4b/double3x3_reduce"
type: "Convolution"
bottom: "inception_4a/output"
top: "inception_4b/double3x3_reduce"
convolution_param {
num_output: 96
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4b/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4b/double3x3_reduce"
top: "inception_4b/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4b/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4b/double3x3_reduce"
top: "inception_4b/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4b/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_4b/double3x3_reduce"
top: "inception_4b/double3x3_reduce"
}
layer {
name: "inception_4b/double3x3a"
type: "Convolution"
bottom: "inception_4b/double3x3_reduce"
top: "inception_4b/double3x3a"
convolution_param {
num_output: 128
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4b/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_4b/double3x3a"
top: "inception_4b/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4b/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_4b/double3x3a"
top: "inception_4b/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4b/relu_double3x3a"
type: "ReLU"
bottom: "inception_4b/double3x3a"
top: "inception_4b/double3x3a"
}
layer {
name: "inception_4b/double3x3b"
type: "Convolution"
bottom: "inception_4b/double3x3a"
top: "inception_4b/double3x3b"
convolution_param {
num_output: 128
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4b/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_4b/double3x3b"
top: "inception_4b/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4b/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_4b/double3x3b"
top: "inception_4b/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4b/relu_double3x3b"
type: "ReLU"
bottom: "inception_4b/double3x3b"
top: "inception_4b/double3x3b"
}
layer {
name: "inception_4b/pool"
type: "Pooling"
bottom: "inception_4a/output"
top: "inception_4b/pool"
pooling_param {
pool: AVE
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_4b/pool_proj"
type: "Convolution"
bottom: "inception_4b/pool"
top: "inception_4b/pool_proj"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4b/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_4b/pool_proj"
top: "inception_4b/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4b/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_4b/pool_proj"
top: "inception_4b/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4b/relu_pool_proj"
type: "ReLU"
bottom: "inception_4b/pool_proj"
top: "inception_4b/pool_proj"
}
layer {
name: "inception_4b/concat"
type: "Concat"
bottom: "inception_4b/1x1"
bottom: "inception_4b/3x3"
bottom: "inception_4b/double3x3b"
bottom: "inception_4b/pool_proj"
top: "inception_4b/concat"
}
layer {
name: "inception_4b_global_pool"
type: "Pooling"
bottom: "inception_4b/concat"
top: "inception_4b_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_4b_1x1_down"
type: "Convolution"
bottom: "inception_4b_global_pool"
top: "inception_4b_1x1_down"
convolution_param {
num_output: 36
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4b_1x1_down/relu"
type: "ReLU"
bottom: "inception_4b_1x1_down"
top: "inception_4b_1x1_down"
}
layer {
name: "inception_4b_1x1_up"
type: "Convolution"
bottom: "inception_4b_1x1_down"
top: "inception_4b_1x1_up"
convolution_param {
num_output: 576
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4b_prob"
type: "Sigmoid"
bottom: "inception_4b_1x1_up"
top: "inception_4b_1x1_up"
}
layer {
name: "inception_4b_prob_reshape"
type: "Reshape"
bottom: "inception_4b_1x1_up"
top: "inception_4b_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_4b_scale"
type: "Scale"
bottom: "inception_4b/concat"
bottom: "inception_4b_prob_reshape"
top: "inception_4b/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_4c/1x1"
type: "Convolution"
bottom: "inception_4b/output"
top: "inception_4c/1x1"
convolution_param {
num_output: 160
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4c/1x1/bn"
type: "BatchNorm"
bottom: "inception_4c/1x1"
top: "inception_4c/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4c/1x1/bn/scale"
type: "Scale"
bottom: "inception_4c/1x1"
top: "inception_4c/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4c/relu_1x1"
type: "ReLU"
bottom: "inception_4c/1x1"
top: "inception_4c/1x1"
}
layer {
name: "inception_4c/3x3_reduce"
type: "Convolution"
bottom: "inception_4b/output"
top: "inception_4c/3x3_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4c/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4c/3x3_reduce"
top: "inception_4c/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4c/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4c/3x3_reduce"
top: "inception_4c/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4c/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_4c/3x3_reduce"
top: "inception_4c/3x3_reduce"
}
layer {
name: "inception_4c/3x3"
type: "Convolution"
bottom: "inception_4c/3x3_reduce"
top: "inception_4c/3x3"
convolution_param {
num_output: 160
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4c/3x3/bn"
type: "BatchNorm"
bottom: "inception_4c/3x3"
top: "inception_4c/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4c/3x3/bn/scale"
type: "Scale"
bottom: "inception_4c/3x3"
top: "inception_4c/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4c/relu_3x3"
type: "ReLU"
bottom: "inception_4c/3x3"
top: "inception_4c/3x3"
}
layer {
name: "inception_4c/double3x3_reduce"
type: "Convolution"
bottom: "inception_4b/output"
top: "inception_4c/double3x3_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4c/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4c/double3x3_reduce"
top: "inception_4c/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4c/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4c/double3x3_reduce"
top: "inception_4c/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4c/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_4c/double3x3_reduce"
top: "inception_4c/double3x3_reduce"
}
layer {
name: "inception_4c/double3x3a"
type: "Convolution"
bottom: "inception_4c/double3x3_reduce"
top: "inception_4c/double3x3a"
convolution_param {
num_output: 160
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4c/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_4c/double3x3a"
top: "inception_4c/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4c/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_4c/double3x3a"
top: "inception_4c/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4c/relu_double3x3a"
type: "ReLU"
bottom: "inception_4c/double3x3a"
top: "inception_4c/double3x3a"
}
layer {
name: "inception_4c/double3x3b"
type: "Convolution"
bottom: "inception_4c/double3x3a"
top: "inception_4c/double3x3b"
convolution_param {
num_output: 160
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4c/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_4c/double3x3b"
top: "inception_4c/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4c/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_4c/double3x3b"
top: "inception_4c/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4c/relu_double3x3b"
type: "ReLU"
bottom: "inception_4c/double3x3b"
top: "inception_4c/double3x3b"
}
layer {
name: "inception_4c/pool"
type: "Pooling"
bottom: "inception_4b/output"
top: "inception_4c/pool"
pooling_param {
pool: AVE
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_4c/pool_proj"
type: "Convolution"
bottom: "inception_4c/pool"
top: "inception_4c/pool_proj"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4c/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_4c/pool_proj"
top: "inception_4c/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4c/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_4c/pool_proj"
top: "inception_4c/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4c/relu_pool_proj"
type: "ReLU"
bottom: "inception_4c/pool_proj"
top: "inception_4c/pool_proj"
}
layer {
name: "inception_4c/concat"
type: "Concat"
bottom: "inception_4c/1x1"
bottom: "inception_4c/3x3"
bottom: "inception_4c/double3x3b"
bottom: "inception_4c/pool_proj"
top: "inception_4c/concat"
}
layer {
name: "inception_4c_global_pool"
type: "Pooling"
bottom: "inception_4c/concat"
top: "inception_4c_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_4c_1x1_down"
type: "Convolution"
bottom: "inception_4c_global_pool"
top: "inception_4c_1x1_down"
convolution_param {
num_output: 38
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4c_1x1_down/relu"
type: "ReLU"
bottom: "inception_4c_1x1_down"
top: "inception_4c_1x1_down"
}
layer {
name: "inception_4c_1x1_up"
type: "Convolution"
bottom: "inception_4c_1x1_down"
top: "inception_4c_1x1_up"
convolution_param {
num_output: 608
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4c_prob"
type: "Sigmoid"
bottom: "inception_4c_1x1_up"
top: "inception_4c_1x1_up"
}
layer {
name: "inception_4c_prob_reshape"
type: "Reshape"
bottom: "inception_4c_1x1_up"
top: "inception_4c_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_4c_scale"
type: "Scale"
bottom: "inception_4c/concat"
bottom: "inception_4c_prob_reshape"
top: "inception_4c/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_4d/1x1"
type: "Convolution"
bottom: "inception_4c/output"
top: "inception_4d/1x1"
convolution_param {
num_output: 96
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4d/1x1/bn"
type: "BatchNorm"
bottom: "inception_4d/1x1"
top: "inception_4d/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4d/1x1/bn/scale"
type: "Scale"
bottom: "inception_4d/1x1"
top: "inception_4d/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4d/relu_1x1"
type: "ReLU"
bottom: "inception_4d/1x1"
top: "inception_4d/1x1"
}
layer {
name: "inception_4d/3x3_reduce"
type: "Convolution"
bottom: "inception_4c/output"
top: "inception_4d/3x3_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4d/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4d/3x3_reduce"
top: "inception_4d/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4d/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4d/3x3_reduce"
top: "inception_4d/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4d/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_4d/3x3_reduce"
top: "inception_4d/3x3_reduce"
}
layer {
name: "inception_4d/3x3"
type: "Convolution"
bottom: "inception_4d/3x3_reduce"
top: "inception_4d/3x3"
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4d/3x3/bn"
type: "BatchNorm"
bottom: "inception_4d/3x3"
top: "inception_4d/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4d/3x3/bn/scale"
type: "Scale"
bottom: "inception_4d/3x3"
top: "inception_4d/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4d/relu_3x3"
type: "ReLU"
bottom: "inception_4d/3x3"
top: "inception_4d/3x3"
}
layer {
name: "inception_4d/double3x3_reduce"
type: "Convolution"
bottom: "inception_4c/output"
top: "inception_4d/double3x3_reduce"
convolution_param {
num_output: 160
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4d/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4d/double3x3_reduce"
top: "inception_4d/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4d/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4d/double3x3_reduce"
top: "inception_4d/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4d/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_4d/double3x3_reduce"
top: "inception_4d/double3x3_reduce"
}
layer {
name: "inception_4d/double3x3a"
type: "Convolution"
bottom: "inception_4d/double3x3_reduce"
top: "inception_4d/double3x3a"
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4d/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_4d/double3x3a"
top: "inception_4d/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4d/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_4d/double3x3a"
top: "inception_4d/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4d/relu_double3x3a"
type: "ReLU"
bottom: "inception_4d/double3x3a"
top: "inception_4d/double3x3a"
}
layer {
name: "inception_4d/double3x3b"
type: "Convolution"
bottom: "inception_4d/double3x3a"
top: "inception_4d/double3x3b"
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4d/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_4d/double3x3b"
top: "inception_4d/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4d/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_4d/double3x3b"
top: "inception_4d/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4d/relu_double3x3b"
type: "ReLU"
bottom: "inception_4d/double3x3b"
top: "inception_4d/double3x3b"
}
layer {
name: "inception_4d/pool"
type: "Pooling"
bottom: "inception_4c/output"
top: "inception_4d/pool"
pooling_param {
pool: AVE
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_4d/pool_proj"
type: "Convolution"
bottom: "inception_4d/pool"
top: "inception_4d/pool_proj"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4d/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_4d/pool_proj"
top: "inception_4d/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4d/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_4d/pool_proj"
top: "inception_4d/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4d/relu_pool_proj"
type: "ReLU"
bottom: "inception_4d/pool_proj"
top: "inception_4d/pool_proj"
}
layer {
name: "inception_4d/concat"
type: "Concat"
bottom: "inception_4d/1x1"
bottom: "inception_4d/3x3"
bottom: "inception_4d/double3x3b"
bottom: "inception_4d/pool_proj"
top: "inception_4d/concat"
}
layer {
name: "inception_4d_global_pool"
type: "Pooling"
bottom: "inception_4d/concat"
top: "inception_4d_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_4d_1x1_down"
type: "Convolution"
bottom: "inception_4d_global_pool"
top: "inception_4d_1x1_down"
convolution_param {
num_output: 38
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4d_1x1_down/relu"
type: "ReLU"
bottom: "inception_4d_1x1_down"
top: "inception_4d_1x1_down"
}
layer {
name: "inception_4d_1x1_up"
type: "Convolution"
bottom: "inception_4d_1x1_down"
top: "inception_4d_1x1_up"
convolution_param {
num_output: 608
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4d_prob"
type: "Sigmoid"
bottom: "inception_4d_1x1_up"
top: "inception_4d_1x1_up"
}
layer {
name: "inception_4d_prob_reshape"
type: "Reshape"
bottom: "inception_4d_1x1_up"
top: "inception_4d_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_4d_scale"
type: "Scale"
bottom: "inception_4d/concat"
bottom: "inception_4d_prob_reshape"
top: "inception_4d/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_4e/3x3_reduce"
type: "Convolution"
bottom: "inception_4d/output"
top: "inception_4e/3x3_reduce"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4e/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4e/3x3_reduce"
top: "inception_4e/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4e/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4e/3x3_reduce"
top: "inception_4e/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4e/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_4e/3x3_reduce"
top: "inception_4e/3x3_reduce"
}
layer {
name: "inception_4e/3x3"
type: "Convolution"
bottom: "inception_4e/3x3_reduce"
top: "inception_4e/3x3"
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "inception_4e/3x3/bn"
type: "BatchNorm"
bottom: "inception_4e/3x3"
top: "inception_4e/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4e/3x3/bn/scale"
type: "Scale"
bottom: "inception_4e/3x3"
top: "inception_4e/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4e/relu_3x3"
type: "ReLU"
bottom: "inception_4e/3x3"
top: "inception_4e/3x3"
}
layer {
name: "inception_4e/double3x3_reduce"
type: "Convolution"
bottom: "inception_4d/output"
top: "inception_4e/double3x3_reduce"
convolution_param {
num_output: 192
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_4e/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_4e/double3x3_reduce"
top: "inception_4e/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4e/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_4e/double3x3_reduce"
top: "inception_4e/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4e/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_4e/double3x3_reduce"
top: "inception_4e/double3x3_reduce"
}
layer {
name: "inception_4e/double3x3a"
type: "Convolution"
bottom: "inception_4e/double3x3_reduce"
top: "inception_4e/double3x3a"
convolution_param {
num_output: 256
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_4e/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_4e/double3x3a"
top: "inception_4e/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4e/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_4e/double3x3a"
top: "inception_4e/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4e/relu_double3x3a"
type: "ReLU"
bottom: "inception_4e/double3x3a"
top: "inception_4e/double3x3a"
}
layer {
name: "inception_4e/double3x3b"
type: "Convolution"
bottom: "inception_4e/double3x3a"
top: "inception_4e/double3x3b"
convolution_param {
num_output: 256
bias_term: false
pad: 1
kernel_size: 3
stride: 2
}
}
layer {
name: "inception_4e/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_4e/double3x3b"
top: "inception_4e/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_4e/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_4e/double3x3b"
top: "inception_4e/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_4e/relu_double3x3b"
type: "ReLU"
bottom: "inception_4e/double3x3b"
top: "inception_4e/double3x3b"
}
layer {
name: "inception_4e/pool/3x3_s2"
type: "Pooling"
bottom: "inception_4d/output"
top: "inception_4e/pool/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "inception_4e/concat"
type: "Concat"
bottom: "inception_4e/3x3"
bottom: "inception_4e/double3x3b"
bottom: "inception_4e/pool/3x3_s2"
top: "inception_4e/concat"
}
layer {
name: "inception_4e_global_pool"
type: "Pooling"
bottom: "inception_4e/concat"
top: "inception_4e_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_4e_1x1_down"
type: "Convolution"
bottom: "inception_4e_global_pool"
top: "inception_4e_1x1_down"
convolution_param {
num_output: 66
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4e_1x1_down/relu"
type: "ReLU"
bottom: "inception_4e_1x1_down"
top: "inception_4e_1x1_down"
}
layer {
name: "inception_4e_1x1_up"
type: "Convolution"
bottom: "inception_4e_1x1_down"
top: "inception_4e_1x1_up"
convolution_param {
num_output: 1056
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_4e_prob"
type: "Sigmoid"
bottom: "inception_4e_1x1_up"
top: "inception_4e_1x1_up"
}
layer {
name: "inception_4e_prob_reshape"
type: "Reshape"
bottom: "inception_4e_1x1_up"
top: "inception_4e_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_4e_scale"
type: "Scale"
bottom: "inception_4e/concat"
bottom: "inception_4e_prob_reshape"
top: "inception_4e/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_5a/1x1"
type: "Convolution"
bottom: "inception_4e/output"
top: "inception_5a/1x1"
convolution_param {
num_output: 352
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5a/1x1/bn"
type: "BatchNorm"
bottom: "inception_5a/1x1"
top: "inception_5a/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5a/1x1/bn/scale"
type: "Scale"
bottom: "inception_5a/1x1"
top: "inception_5a/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5a/relu_1x1"
type: "ReLU"
bottom: "inception_5a/1x1"
top: "inception_5a/1x1"
}
layer {
name: "inception_5a/3x3_reduce"
type: "Convolution"
bottom: "inception_4e/output"
top: "inception_5a/3x3_reduce"
convolution_param {
num_output: 192
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5a/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_5a/3x3_reduce"
top: "inception_5a/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5a/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_5a/3x3_reduce"
top: "inception_5a/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5a/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_5a/3x3_reduce"
top: "inception_5a/3x3_reduce"
}
layer {
name: "inception_5a/3x3"
type: "Convolution"
bottom: "inception_5a/3x3_reduce"
top: "inception_5a/3x3"
convolution_param {
num_output: 320
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_5a/3x3/bn"
type: "BatchNorm"
bottom: "inception_5a/3x3"
top: "inception_5a/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5a/3x3/bn/scale"
type: "Scale"
bottom: "inception_5a/3x3"
top: "inception_5a/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5a/relu_3x3"
type: "ReLU"
bottom: "inception_5a/3x3"
top: "inception_5a/3x3"
}
layer {
name: "inception_5a/double3x3_reduce"
type: "Convolution"
bottom: "inception_4e/output"
top: "inception_5a/double3x3_reduce"
convolution_param {
num_output: 160
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5a/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_5a/double3x3_reduce"
top: "inception_5a/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5a/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_5a/double3x3_reduce"
top: "inception_5a/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5a/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_5a/double3x3_reduce"
top: "inception_5a/double3x3_reduce"
}
layer {
name: "inception_5a/double3x3a"
type: "Convolution"
bottom: "inception_5a/double3x3_reduce"
top: "inception_5a/double3x3a"
convolution_param {
num_output: 224
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_5a/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_5a/double3x3a"
top: "inception_5a/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5a/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_5a/double3x3a"
top: "inception_5a/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5a/relu_double3x3a"
type: "ReLU"
bottom: "inception_5a/double3x3a"
top: "inception_5a/double3x3a"
}
layer {
name: "inception_5a/double3x3b"
type: "Convolution"
bottom: "inception_5a/double3x3a"
top: "inception_5a/double3x3b"
convolution_param {
num_output: 224
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_5a/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_5a/double3x3b"
top: "inception_5a/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5a/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_5a/double3x3b"
top: "inception_5a/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5a/relu_double3x3b"
type: "ReLU"
bottom: "inception_5a/double3x3b"
top: "inception_5a/double3x3b"
}
layer {
name: "inception_5a/pool"
type: "Pooling"
bottom: "inception_4e/output"
top: "inception_5a/pool"
pooling_param {
pool: AVE
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_5a/pool_proj"
type: "Convolution"
bottom: "inception_5a/pool"
top: "inception_5a/pool_proj"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5a/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_5a/pool_proj"
top: "inception_5a/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5a/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_5a/pool_proj"
top: "inception_5a/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5a/relu_pool_proj"
type: "ReLU"
bottom: "inception_5a/pool_proj"
top: "inception_5a/pool_proj"
}
layer {
name: "inception_5a/concat"
type: "Concat"
bottom: "inception_5a/1x1"
bottom: "inception_5a/3x3"
bottom: "inception_5a/double3x3b"
bottom: "inception_5a/pool_proj"
top: "inception_5a/concat"
}
layer {
name: "inception_5a_global_pool"
type: "Pooling"
bottom: "inception_5a/concat"
top: "inception_5a_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_5a_1x1_down"
type: "Convolution"
bottom: "inception_5a_global_pool"
top: "inception_5a_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_5a_1x1_down/relu"
type: "ReLU"
bottom: "inception_5a_1x1_down"
top: "inception_5a_1x1_down"
}
layer {
name: "inception_5a_1x1_up"
type: "Convolution"
bottom: "inception_5a_1x1_down"
top: "inception_5a_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_5a_prob"
type: "Sigmoid"
bottom: "inception_5a_1x1_up"
top: "inception_5a_1x1_up"
}
layer {
name: "inception_5a_prob_reshape"
type: "Reshape"
bottom: "inception_5a_1x1_up"
top: "inception_5a_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_5a_scale"
type: "Scale"
bottom: "inception_5a/concat"
bottom: "inception_5a_prob_reshape"
top: "inception_5a/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "inception_5b/1x1"
type: "Convolution"
bottom: "inception_5a/output"
top: "inception_5b/1x1"
convolution_param {
num_output: 352
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5b/1x1/bn"
type: "BatchNorm"
bottom: "inception_5b/1x1"
top: "inception_5b/1x1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5b/1x1/bn/scale"
type: "Scale"
bottom: "inception_5b/1x1"
top: "inception_5b/1x1"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5b/relu_1x1"
type: "ReLU"
bottom: "inception_5b/1x1"
top: "inception_5b/1x1"
}
layer {
name: "inception_5b/3x3_reduce"
type: "Convolution"
bottom: "inception_5a/output"
top: "inception_5b/3x3_reduce"
convolution_param {
num_output: 192
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5b/3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_5b/3x3_reduce"
top: "inception_5b/3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5b/3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_5b/3x3_reduce"
top: "inception_5b/3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5b/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_5b/3x3_reduce"
top: "inception_5b/3x3_reduce"
}
layer {
name: "inception_5b/3x3"
type: "Convolution"
bottom: "inception_5b/3x3_reduce"
top: "inception_5b/3x3"
convolution_param {
num_output: 320
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_5b/3x3/bn"
type: "BatchNorm"
bottom: "inception_5b/3x3"
top: "inception_5b/3x3"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5b/3x3/bn/scale"
type: "Scale"
bottom: "inception_5b/3x3"
top: "inception_5b/3x3"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5b/relu_3x3"
type: "ReLU"
bottom: "inception_5b/3x3"
top: "inception_5b/3x3"
}
layer {
name: "inception_5b/double3x3_reduce"
type: "Convolution"
bottom: "inception_5a/output"
top: "inception_5b/double3x3_reduce"
convolution_param {
num_output: 192
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5b/double3x3_reduce/bn"
type: "BatchNorm"
bottom: "inception_5b/double3x3_reduce"
top: "inception_5b/double3x3_reduce"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5b/double3x3_reduce/bn/scale"
type: "Scale"
bottom: "inception_5b/double3x3_reduce"
top: "inception_5b/double3x3_reduce"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5b/relu_double3x3_reduce"
type: "ReLU"
bottom: "inception_5b/double3x3_reduce"
top: "inception_5b/double3x3_reduce"
}
layer {
name: "inception_5b/double3x3a"
type: "Convolution"
bottom: "inception_5b/double3x3_reduce"
top: "inception_5b/double3x3a"
convolution_param {
num_output: 224
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_5b/double3x3a/bn"
type: "BatchNorm"
bottom: "inception_5b/double3x3a"
top: "inception_5b/double3x3a"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5b/double3x3a/bn/scale"
type: "Scale"
bottom: "inception_5b/double3x3a"
top: "inception_5b/double3x3a"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5b/relu_double3x3a"
type: "ReLU"
bottom: "inception_5b/double3x3a"
top: "inception_5b/double3x3a"
}
layer {
name: "inception_5b/double3x3b"
type: "Convolution"
bottom: "inception_5b/double3x3a"
top: "inception_5b/double3x3b"
convolution_param {
num_output: 224
bias_term: false
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_5b/double3x3b/bn"
type: "BatchNorm"
bottom: "inception_5b/double3x3b"
top: "inception_5b/double3x3b"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5b/double3x3b/bn/scale"
type: "Scale"
bottom: "inception_5b/double3x3b"
top: "inception_5b/double3x3b"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5b/relu_double3x3b"
type: "ReLU"
bottom: "inception_5b/double3x3b"
top: "inception_5b/double3x3b"
}
layer {
name: "inception_5b/pool"
type: "Pooling"
bottom: "inception_5a/output"
top: "inception_5b/pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_5b/pool_proj"
type: "Convolution"
bottom: "inception_5b/pool"
top: "inception_5b/pool_proj"
convolution_param {
num_output: 128
bias_term: false
kernel_size: 1
}
}
layer {
name: "inception_5b/pool_proj/bn"
type: "BatchNorm"
bottom: "inception_5b/pool_proj"
top: "inception_5b/pool_proj"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "inception_5b/pool_proj/bn/scale"
type: "Scale"
bottom: "inception_5b/pool_proj"
top: "inception_5b/pool_proj"
scale_param {
bias_term: true
}
}
layer {
name: "inception_5b/relu_pool_proj"
type: "ReLU"
bottom: "inception_5b/pool_proj"
top: "inception_5b/pool_proj"
}
layer {
name: "inception_5b/concat"
type: "Concat"
bottom: "inception_5b/1x1"
bottom: "inception_5b/3x3"
bottom: "inception_5b/double3x3b"
bottom: "inception_5b/pool_proj"
top: "inception_5b/concat"
}
layer {
name: "inception_5b_global_pool"
type: "Pooling"
bottom: "inception_5b/concat"
top: "inception_5b_global_pool"
pooling_param {
pool: AVE
engine: CAFFE
global_pooling: true
}
}
layer {
name: "inception_5b_1x1_down"
type: "Convolution"
bottom: "inception_5b_global_pool"
top: "inception_5b_1x1_down"
convolution_param {
num_output: 64
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_5b_1x1_down/relu"
type: "ReLU"
bottom: "inception_5b_1x1_down"
top: "inception_5b_1x1_down"
}
layer {
name: "inception_5b_1x1_up"
type: "Convolution"
bottom: "inception_5b_1x1_down"
top: "inception_5b_1x1_up"
convolution_param {
num_output: 1024
kernel_size: 1
stride: 1
}
}
layer {
name: "inception_5b_prob"
type: "Sigmoid"
bottom: "inception_5b_1x1_up"
top: "inception_5b_1x1_up"
}
layer {
name: "inception_5b_prob_reshape"
type: "Reshape"
bottom: "inception_5b_1x1_up"
top: "inception_5b_prob_reshape"
reshape_param {
shape {
dim: 0
dim: 0
}
}
}
layer {
name: "inception_5b_scale"
type: "Scale"
bottom: "inception_5b/concat"
bottom: "inception_5b_prob_reshape"
top: "inception_5b/output"
scale_param {
axis: 0
bias_term: false
}
}
layer {
name: "pool5/7x7_s1"
type: "Pooling"
bottom: "inception_5b/output"
top: "pool5/7x7_s1"
pooling_param {
pool: AVE
kernel_size: 7
stride: 1
}
}
layer {
name: "loss3/classifier"
type: "InnerProduct"
bottom: "pool5/7x7_s1"
top: "loss3/classifier"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
inner_product_param {
num_output: 5
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "loss3/loss3"
type: "SoftmaxWithLoss"
bottom: "loss3/classifier"
bottom: "label"
top: "loss3/loss3"
loss_weight: 1
}
layer {
name: "loss3/top-1"
type: "Accuracy"
bottom: "loss3/classifier"
bottom: "label"
top: "loss3/top-1"
include {
phase: TEST
}
}
How stranger!
l don't know the reason, anyone can help me ? thank u~

You should not still use use_global_status: true for new task training, as the provided model prototxt only for deploying the ImageNet model.