Skip to content

Instantly share code, notes, and snippets.

@qzhong0605
Created February 7, 2019 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qzhong0605/2948752244ed379419347e7b74e27f95 to your computer and use it in GitHub Desktop.
Save qzhong0605/2948752244ed379419347e7b74e27f95 to your computer and use it in GitHub Desktop.
name: "mobilenetv2"
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
scale: 0.0170000009239
mirror: true
crop_size: 224
mean_value: 104.0
mean_value: 117.0
mean_value: 123.0
}
data_param {
source: "/mnt/disk1/zhibin/experiment_data/imagenet/caffe_lmdb/ilsvrc12_encoded_train_lmdb"
batch_size: 32
backend: LMDB
}
}
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
scale: 0.0170000009239
mirror: false
crop_size: 224
mean_value: 104.0
mean_value: 117.0
mean_value: 123.0
}
data_param {
source: "/mnt/disk1/zhibin/experiment_data/imagenet/caffe_lmdb/ilsvrc12_encoded_val_lmdb"
batch_size: 32
backend: LMDB
}
}
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
group: 1
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "conv1/bn"
type: "BatchNorm"
bottom: "conv1"
top: "conv1/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "conv1/scale"
type: "Scale"
bottom: "conv1/bn"
top: "conv1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "conv1/relu"
type: "ReLU"
bottom: "conv1/bn"
top: "conv1/bn"
}
layer {
name: "bottleneck1/expand"
type: "Convolution"
bottom: "conv1/bn"
top: "bottleneck1/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck1/expand/bn"
type: "BatchNorm"
bottom: "bottleneck1/expand"
top: "bottleneck1/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck1/expand/scale"
type: "Scale"
bottom: "bottleneck1/expand/bn"
top: "bottleneck1/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck1/expand/relu"
type: "ReLU"
bottom: "bottleneck1/expand/bn"
top: "bottleneck1/expand/bn"
}
layer {
name: "bottleneck1/dw"
type: "Convolution"
bottom: "bottleneck1/expand/bn"
top: "bottleneck1/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
group: 32
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck1/dw/bn"
type: "BatchNorm"
bottom: "bottleneck1/dw"
top: "bottleneck1/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck1/dw/scale"
type: "Scale"
bottom: "bottleneck1/dw/bn"
top: "bottleneck1/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck1/dw/relu"
type: "ReLU"
bottom: "bottleneck1/dw/bn"
top: "bottleneck1/dw/bn"
}
layer {
name: "bottleneck1/linear"
type: "Convolution"
bottom: "bottleneck1/dw/bn"
top: "bottleneck1/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck1/linear/bn"
type: "BatchNorm"
bottom: "bottleneck1/linear"
top: "bottleneck1/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck1/linear/scale"
type: "Scale"
bottom: "bottleneck1/linear/bn"
top: "bottleneck1/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck2/1/expand"
type: "Convolution"
bottom: "bottleneck1/linear/bn"
top: "bottleneck2/1/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 96
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck2/1/expand/bn"
type: "BatchNorm"
bottom: "bottleneck2/1/expand"
top: "bottleneck2/1/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck2/1/expand/scale"
type: "Scale"
bottom: "bottleneck2/1/expand/bn"
top: "bottleneck2/1/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck2/1/expand/relu"
type: "ReLU"
bottom: "bottleneck2/1/expand/bn"
top: "bottleneck2/1/expand/bn"
}
layer {
name: "bottleneck2/1/dw"
type: "Convolution"
bottom: "bottleneck2/1/expand/bn"
top: "bottleneck2/1/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 96
bias_term: false
pad: 1
kernel_size: 3
group: 96
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck2/1/dw/bn"
type: "BatchNorm"
bottom: "bottleneck2/1/dw"
top: "bottleneck2/1/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck2/1/dw/scale"
type: "Scale"
bottom: "bottleneck2/1/dw/bn"
top: "bottleneck2/1/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck2/1/dw/relu"
type: "ReLU"
bottom: "bottleneck2/1/dw/bn"
top: "bottleneck2/1/dw/bn"
}
layer {
name: "bottleneck2/1/linear"
type: "Convolution"
bottom: "bottleneck2/1/dw/bn"
top: "bottleneck2/1/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 24
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck2/1/linear/bn"
type: "BatchNorm"
bottom: "bottleneck2/1/linear"
top: "bottleneck2/1/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck2/1/linear/scale"
type: "Scale"
bottom: "bottleneck2/1/linear/bn"
top: "bottleneck2/1/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck2/2/expand"
type: "Convolution"
bottom: "bottleneck2/1/linear/bn"
top: "bottleneck2/2/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 144
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck2/2/expand/bn"
type: "BatchNorm"
bottom: "bottleneck2/2/expand"
top: "bottleneck2/2/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck2/2/expand/scale"
type: "Scale"
bottom: "bottleneck2/2/expand/bn"
top: "bottleneck2/2/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck2/2/expand/relu"
type: "ReLU"
bottom: "bottleneck2/2/expand/bn"
top: "bottleneck2/2/expand/bn"
}
layer {
name: "bottleneck2/2/dw"
type: "Convolution"
bottom: "bottleneck2/2/expand/bn"
top: "bottleneck2/2/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 144
bias_term: false
pad: 1
kernel_size: 3
group: 144
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck2/2/dw/bn"
type: "BatchNorm"
bottom: "bottleneck2/2/dw"
top: "bottleneck2/2/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck2/2/dw/scale"
type: "Scale"
bottom: "bottleneck2/2/dw/bn"
top: "bottleneck2/2/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck2/2/dw/relu"
type: "ReLU"
bottom: "bottleneck2/2/dw/bn"
top: "bottleneck2/2/dw/bn"
}
layer {
name: "bottleneck2/2/linear"
type: "Convolution"
bottom: "bottleneck2/2/dw/bn"
top: "bottleneck2/2/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 24
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck2/2/linear/bn"
type: "BatchNorm"
bottom: "bottleneck2/2/linear"
top: "bottleneck2/2/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck2/2/linear/scale"
type: "Scale"
bottom: "bottleneck2/2/linear/bn"
top: "bottleneck2/2/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck2/2/sum"
type: "Eltwise"
bottom: "bottleneck2/1/linear/bn"
bottom: "bottleneck2/2/linear/bn"
top: "bottleneck2/2/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck3/1/expand"
type: "Convolution"
bottom: "bottleneck2/2/sum"
top: "bottleneck3/1/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 144
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/1/expand/bn"
type: "BatchNorm"
bottom: "bottleneck3/1/expand"
top: "bottleneck3/1/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/1/expand/scale"
type: "Scale"
bottom: "bottleneck3/1/expand/bn"
top: "bottleneck3/1/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/1/expand/relu"
type: "ReLU"
bottom: "bottleneck3/1/expand/bn"
top: "bottleneck3/1/expand/bn"
}
layer {
name: "bottleneck3/1/dw"
type: "Convolution"
bottom: "bottleneck3/1/expand/bn"
top: "bottleneck3/1/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 144
bias_term: false
pad: 1
kernel_size: 3
group: 144
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/1/dw/bn"
type: "BatchNorm"
bottom: "bottleneck3/1/dw"
top: "bottleneck3/1/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/1/dw/scale"
type: "Scale"
bottom: "bottleneck3/1/dw/bn"
top: "bottleneck3/1/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/1/dw/relu"
type: "ReLU"
bottom: "bottleneck3/1/dw/bn"
top: "bottleneck3/1/dw/bn"
}
layer {
name: "bottleneck3/1/linear"
type: "Convolution"
bottom: "bottleneck3/1/dw/bn"
top: "bottleneck3/1/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/1/linear/bn"
type: "BatchNorm"
bottom: "bottleneck3/1/linear"
top: "bottleneck3/1/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/1/linear/scale"
type: "Scale"
bottom: "bottleneck3/1/linear/bn"
top: "bottleneck3/1/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/2/expand"
type: "Convolution"
bottom: "bottleneck3/1/linear/bn"
top: "bottleneck3/2/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 192
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/2/expand/bn"
type: "BatchNorm"
bottom: "bottleneck3/2/expand"
top: "bottleneck3/2/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/2/expand/scale"
type: "Scale"
bottom: "bottleneck3/2/expand/bn"
top: "bottleneck3/2/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/2/expand/relu"
type: "ReLU"
bottom: "bottleneck3/2/expand/bn"
top: "bottleneck3/2/expand/bn"
}
layer {
name: "bottleneck3/2/dw"
type: "Convolution"
bottom: "bottleneck3/2/expand/bn"
top: "bottleneck3/2/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
group: 192
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/2/dw/bn"
type: "BatchNorm"
bottom: "bottleneck3/2/dw"
top: "bottleneck3/2/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/2/dw/scale"
type: "Scale"
bottom: "bottleneck3/2/dw/bn"
top: "bottleneck3/2/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/2/dw/relu"
type: "ReLU"
bottom: "bottleneck3/2/dw/bn"
top: "bottleneck3/2/dw/bn"
}
layer {
name: "bottleneck3/2/linear"
type: "Convolution"
bottom: "bottleneck3/2/dw/bn"
top: "bottleneck3/2/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/2/linear/bn"
type: "BatchNorm"
bottom: "bottleneck3/2/linear"
top: "bottleneck3/2/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/2/linear/scale"
type: "Scale"
bottom: "bottleneck3/2/linear/bn"
top: "bottleneck3/2/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/2/sum"
type: "Eltwise"
bottom: "bottleneck3/1/linear/bn"
bottom: "bottleneck3/2/linear/bn"
top: "bottleneck3/2/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck3/3/expand"
type: "Convolution"
bottom: "bottleneck3/2/sum"
top: "bottleneck3/3/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 192
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/3/expand/bn"
type: "BatchNorm"
bottom: "bottleneck3/3/expand"
top: "bottleneck3/3/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/3/expand/scale"
type: "Scale"
bottom: "bottleneck3/3/expand/bn"
top: "bottleneck3/3/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/3/expand/relu"
type: "ReLU"
bottom: "bottleneck3/3/expand/bn"
top: "bottleneck3/3/expand/bn"
}
layer {
name: "bottleneck3/3/dw"
type: "Convolution"
bottom: "bottleneck3/3/expand/bn"
top: "bottleneck3/3/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
group: 192
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/3/dw/bn"
type: "BatchNorm"
bottom: "bottleneck3/3/dw"
top: "bottleneck3/3/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/3/dw/scale"
type: "Scale"
bottom: "bottleneck3/3/dw/bn"
top: "bottleneck3/3/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/3/dw/relu"
type: "ReLU"
bottom: "bottleneck3/3/dw/bn"
top: "bottleneck3/3/dw/bn"
}
layer {
name: "bottleneck3/3/linear"
type: "Convolution"
bottom: "bottleneck3/3/dw/bn"
top: "bottleneck3/3/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck3/3/linear/bn"
type: "BatchNorm"
bottom: "bottleneck3/3/linear"
top: "bottleneck3/3/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck3/3/linear/scale"
type: "Scale"
bottom: "bottleneck3/3/linear/bn"
top: "bottleneck3/3/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck3/3/sum"
type: "Eltwise"
bottom: "bottleneck3/2/sum"
bottom: "bottleneck3/3/linear/bn"
top: "bottleneck3/3/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck4/1/expand"
type: "Convolution"
bottom: "bottleneck3/3/sum"
top: "bottleneck4/1/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 192
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/1/expand/bn"
type: "BatchNorm"
bottom: "bottleneck4/1/expand"
top: "bottleneck4/1/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/1/expand/scale"
type: "Scale"
bottom: "bottleneck4/1/expand/bn"
top: "bottleneck4/1/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/1/expand/relu"
type: "ReLU"
bottom: "bottleneck4/1/expand/bn"
top: "bottleneck4/1/expand/bn"
}
layer {
name: "bottleneck4/1/dw"
type: "Convolution"
bottom: "bottleneck4/1/expand/bn"
top: "bottleneck4/1/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 192
bias_term: false
pad: 1
kernel_size: 3
group: 192
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/1/dw/bn"
type: "BatchNorm"
bottom: "bottleneck4/1/dw"
top: "bottleneck4/1/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/1/dw/scale"
type: "Scale"
bottom: "bottleneck4/1/dw/bn"
top: "bottleneck4/1/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/1/dw/relu"
type: "ReLU"
bottom: "bottleneck4/1/dw/bn"
top: "bottleneck4/1/dw/bn"
}
layer {
name: "bottleneck4/1/linear"
type: "Convolution"
bottom: "bottleneck4/1/dw/bn"
top: "bottleneck4/1/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/1/linear/bn"
type: "BatchNorm"
bottom: "bottleneck4/1/linear"
top: "bottleneck4/1/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/1/linear/scale"
type: "Scale"
bottom: "bottleneck4/1/linear/bn"
top: "bottleneck4/1/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/2/expand"
type: "Convolution"
bottom: "bottleneck4/1/linear/bn"
top: "bottleneck4/2/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/2/expand/bn"
type: "BatchNorm"
bottom: "bottleneck4/2/expand"
top: "bottleneck4/2/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/2/expand/scale"
type: "Scale"
bottom: "bottleneck4/2/expand/bn"
top: "bottleneck4/2/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/2/expand/relu"
type: "ReLU"
bottom: "bottleneck4/2/expand/bn"
top: "bottleneck4/2/expand/bn"
}
layer {
name: "bottleneck4/2/dw"
type: "Convolution"
bottom: "bottleneck4/2/expand/bn"
top: "bottleneck4/2/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 1
kernel_size: 3
group: 384
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/2/dw/bn"
type: "BatchNorm"
bottom: "bottleneck4/2/dw"
top: "bottleneck4/2/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/2/dw/scale"
type: "Scale"
bottom: "bottleneck4/2/dw/bn"
top: "bottleneck4/2/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/2/dw/relu"
type: "ReLU"
bottom: "bottleneck4/2/dw/bn"
top: "bottleneck4/2/dw/bn"
}
layer {
name: "bottleneck4/2/linear"
type: "Convolution"
bottom: "bottleneck4/2/dw/bn"
top: "bottleneck4/2/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/2/linear/bn"
type: "BatchNorm"
bottom: "bottleneck4/2/linear"
top: "bottleneck4/2/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/2/linear/scale"
type: "Scale"
bottom: "bottleneck4/2/linear/bn"
top: "bottleneck4/2/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/2/sum"
type: "Eltwise"
bottom: "bottleneck4/1/linear/bn"
bottom: "bottleneck4/2/linear/bn"
top: "bottleneck4/2/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck4/3/expand"
type: "Convolution"
bottom: "bottleneck4/2/sum"
top: "bottleneck4/3/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/3/expand/bn"
type: "BatchNorm"
bottom: "bottleneck4/3/expand"
top: "bottleneck4/3/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/3/expand/scale"
type: "Scale"
bottom: "bottleneck4/3/expand/bn"
top: "bottleneck4/3/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/3/expand/relu"
type: "ReLU"
bottom: "bottleneck4/3/expand/bn"
top: "bottleneck4/3/expand/bn"
}
layer {
name: "bottleneck4/3/dw"
type: "Convolution"
bottom: "bottleneck4/3/expand/bn"
top: "bottleneck4/3/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 1
kernel_size: 3
group: 384
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/3/dw/bn"
type: "BatchNorm"
bottom: "bottleneck4/3/dw"
top: "bottleneck4/3/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/3/dw/scale"
type: "Scale"
bottom: "bottleneck4/3/dw/bn"
top: "bottleneck4/3/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/3/dw/relu"
type: "ReLU"
bottom: "bottleneck4/3/dw/bn"
top: "bottleneck4/3/dw/bn"
}
layer {
name: "bottleneck4/3/linear"
type: "Convolution"
bottom: "bottleneck4/3/dw/bn"
top: "bottleneck4/3/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/3/linear/bn"
type: "BatchNorm"
bottom: "bottleneck4/3/linear"
top: "bottleneck4/3/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/3/linear/scale"
type: "Scale"
bottom: "bottleneck4/3/linear/bn"
top: "bottleneck4/3/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/3/sum"
type: "Eltwise"
bottom: "bottleneck4/2/sum"
bottom: "bottleneck4/3/linear/bn"
top: "bottleneck4/3/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck4/4/expand"
type: "Convolution"
bottom: "bottleneck4/3/sum"
top: "bottleneck4/4/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/4/expand/bn"
type: "BatchNorm"
bottom: "bottleneck4/4/expand"
top: "bottleneck4/4/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/4/expand/scale"
type: "Scale"
bottom: "bottleneck4/4/expand/bn"
top: "bottleneck4/4/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/4/expand/relu"
type: "ReLU"
bottom: "bottleneck4/4/expand/bn"
top: "bottleneck4/4/expand/bn"
}
layer {
name: "bottleneck4/4/dw"
type: "Convolution"
bottom: "bottleneck4/4/expand/bn"
top: "bottleneck4/4/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 1
kernel_size: 3
group: 384
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/4/dw/bn"
type: "BatchNorm"
bottom: "bottleneck4/4/dw"
top: "bottleneck4/4/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/4/dw/scale"
type: "Scale"
bottom: "bottleneck4/4/dw/bn"
top: "bottleneck4/4/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/4/dw/relu"
type: "ReLU"
bottom: "bottleneck4/4/dw/bn"
top: "bottleneck4/4/dw/bn"
}
layer {
name: "bottleneck4/4/linear"
type: "Convolution"
bottom: "bottleneck4/4/dw/bn"
top: "bottleneck4/4/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck4/4/linear/bn"
type: "BatchNorm"
bottom: "bottleneck4/4/linear"
top: "bottleneck4/4/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck4/4/linear/scale"
type: "Scale"
bottom: "bottleneck4/4/linear/bn"
top: "bottleneck4/4/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck4/4/sum"
type: "Eltwise"
bottom: "bottleneck4/3/sum"
bottom: "bottleneck4/4/linear/bn"
top: "bottleneck4/4/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck5/1/expand"
type: "Convolution"
bottom: "bottleneck4/4/sum"
top: "bottleneck5/1/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/1/expand/bn"
type: "BatchNorm"
bottom: "bottleneck5/1/expand"
top: "bottleneck5/1/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/1/expand/scale"
type: "Scale"
bottom: "bottleneck5/1/expand/bn"
top: "bottleneck5/1/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/1/expand/relu"
type: "ReLU"
bottom: "bottleneck5/1/expand/bn"
top: "bottleneck5/1/expand/bn"
}
layer {
name: "bottleneck5/1/dw"
type: "Convolution"
bottom: "bottleneck5/1/expand/bn"
top: "bottleneck5/1/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 384
bias_term: false
pad: 1
kernel_size: 3
group: 384
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/1/dw/bn"
type: "BatchNorm"
bottom: "bottleneck5/1/dw"
top: "bottleneck5/1/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/1/dw/scale"
type: "Scale"
bottom: "bottleneck5/1/dw/bn"
top: "bottleneck5/1/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/1/dw/relu"
type: "ReLU"
bottom: "bottleneck5/1/dw/bn"
top: "bottleneck5/1/dw/bn"
}
layer {
name: "bottleneck5/1/linear"
type: "Convolution"
bottom: "bottleneck5/1/dw/bn"
top: "bottleneck5/1/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 96
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/1/linear/bn"
type: "BatchNorm"
bottom: "bottleneck5/1/linear"
top: "bottleneck5/1/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/1/linear/scale"
type: "Scale"
bottom: "bottleneck5/1/linear/bn"
top: "bottleneck5/1/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/2/expand"
type: "Convolution"
bottom: "bottleneck5/1/linear/bn"
top: "bottleneck5/2/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/2/expand/bn"
type: "BatchNorm"
bottom: "bottleneck5/2/expand"
top: "bottleneck5/2/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/2/expand/scale"
type: "Scale"
bottom: "bottleneck5/2/expand/bn"
top: "bottleneck5/2/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/2/expand/relu"
type: "ReLU"
bottom: "bottleneck5/2/expand/bn"
top: "bottleneck5/2/expand/bn"
}
layer {
name: "bottleneck5/2/dw"
type: "Convolution"
bottom: "bottleneck5/2/expand/bn"
top: "bottleneck5/2/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 1
kernel_size: 3
group: 576
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/2/dw/bn"
type: "BatchNorm"
bottom: "bottleneck5/2/dw"
top: "bottleneck5/2/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/2/dw/scale"
type: "Scale"
bottom: "bottleneck5/2/dw/bn"
top: "bottleneck5/2/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/2/dw/relu"
type: "ReLU"
bottom: "bottleneck5/2/dw/bn"
top: "bottleneck5/2/dw/bn"
}
layer {
name: "bottleneck5/2/linear"
type: "Convolution"
bottom: "bottleneck5/2/dw/bn"
top: "bottleneck5/2/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 96
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/2/linear/bn"
type: "BatchNorm"
bottom: "bottleneck5/2/linear"
top: "bottleneck5/2/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/2/linear/scale"
type: "Scale"
bottom: "bottleneck5/2/linear/bn"
top: "bottleneck5/2/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/2/sum"
type: "Eltwise"
bottom: "bottleneck5/1/linear/bn"
bottom: "bottleneck5/2/linear/bn"
top: "bottleneck5/2/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck5/3/expand"
type: "Convolution"
bottom: "bottleneck5/2/sum"
top: "bottleneck5/3/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/3/expand/bn"
type: "BatchNorm"
bottom: "bottleneck5/3/expand"
top: "bottleneck5/3/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/3/expand/scale"
type: "Scale"
bottom: "bottleneck5/3/expand/bn"
top: "bottleneck5/3/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/3/expand/relu"
type: "ReLU"
bottom: "bottleneck5/3/expand/bn"
top: "bottleneck5/3/expand/bn"
}
layer {
name: "bottleneck5/3/dw"
type: "Convolution"
bottom: "bottleneck5/3/expand/bn"
top: "bottleneck5/3/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 1
kernel_size: 3
group: 576
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/3/dw/bn"
type: "BatchNorm"
bottom: "bottleneck5/3/dw"
top: "bottleneck5/3/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/3/dw/scale"
type: "Scale"
bottom: "bottleneck5/3/dw/bn"
top: "bottleneck5/3/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/3/dw/relu"
type: "ReLU"
bottom: "bottleneck5/3/dw/bn"
top: "bottleneck5/3/dw/bn"
}
layer {
name: "bottleneck5/3/linear"
type: "Convolution"
bottom: "bottleneck5/3/dw/bn"
top: "bottleneck5/3/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 96
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/3/linear/bn"
type: "BatchNorm"
bottom: "bottleneck5/3/linear"
top: "bottleneck5/3/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/3/linear/scale"
type: "Scale"
bottom: "bottleneck5/3/linear/bn"
top: "bottleneck5/3/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/3/sum"
type: "Eltwise"
bottom: "bottleneck5/2/sum"
bottom: "bottleneck5/3/linear/bn"
top: "bottleneck5/3/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck5/4/expand"
type: "Convolution"
bottom: "bottleneck5/3/sum"
top: "bottleneck5/4/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/4/expand/bn"
type: "BatchNorm"
bottom: "bottleneck5/4/expand"
top: "bottleneck5/4/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/4/expand/scale"
type: "Scale"
bottom: "bottleneck5/4/expand/bn"
top: "bottleneck5/4/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/4/expand/relu"
type: "ReLU"
bottom: "bottleneck5/4/expand/bn"
top: "bottleneck5/4/expand/bn"
}
layer {
name: "bottleneck5/4/dw"
type: "Convolution"
bottom: "bottleneck5/4/expand/bn"
top: "bottleneck5/4/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 1
kernel_size: 3
group: 576
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/4/dw/bn"
type: "BatchNorm"
bottom: "bottleneck5/4/dw"
top: "bottleneck5/4/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/4/dw/scale"
type: "Scale"
bottom: "bottleneck5/4/dw/bn"
top: "bottleneck5/4/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/4/dw/relu"
type: "ReLU"
bottom: "bottleneck5/4/dw/bn"
top: "bottleneck5/4/dw/bn"
}
layer {
name: "bottleneck5/4/linear"
type: "Convolution"
bottom: "bottleneck5/4/dw/bn"
top: "bottleneck5/4/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 96
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck5/4/linear/bn"
type: "BatchNorm"
bottom: "bottleneck5/4/linear"
top: "bottleneck5/4/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck5/4/linear/scale"
type: "Scale"
bottom: "bottleneck5/4/linear/bn"
top: "bottleneck5/4/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck5/4/sum"
type: "Eltwise"
bottom: "bottleneck5/3/sum"
bottom: "bottleneck5/4/linear/bn"
top: "bottleneck5/4/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck6/1/expand"
type: "Convolution"
bottom: "bottleneck5/4/sum"
top: "bottleneck6/1/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/1/expand/bn"
type: "BatchNorm"
bottom: "bottleneck6/1/expand"
top: "bottleneck6/1/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/1/expand/scale"
type: "Scale"
bottom: "bottleneck6/1/expand/bn"
top: "bottleneck6/1/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/1/expand/relu"
type: "ReLU"
bottom: "bottleneck6/1/expand/bn"
top: "bottleneck6/1/expand/bn"
}
layer {
name: "bottleneck6/1/dw"
type: "Convolution"
bottom: "bottleneck6/1/expand/bn"
top: "bottleneck6/1/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 576
bias_term: false
pad: 1
kernel_size: 3
group: 576
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/1/dw/bn"
type: "BatchNorm"
bottom: "bottleneck6/1/dw"
top: "bottleneck6/1/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/1/dw/scale"
type: "Scale"
bottom: "bottleneck6/1/dw/bn"
top: "bottleneck6/1/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/1/dw/relu"
type: "ReLU"
bottom: "bottleneck6/1/dw/bn"
top: "bottleneck6/1/dw/bn"
}
layer {
name: "bottleneck6/1/linear"
type: "Convolution"
bottom: "bottleneck6/1/dw/bn"
top: "bottleneck6/1/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 160
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/1/linear/bn"
type: "BatchNorm"
bottom: "bottleneck6/1/linear"
top: "bottleneck6/1/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/1/linear/scale"
type: "Scale"
bottom: "bottleneck6/1/linear/bn"
top: "bottleneck6/1/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/2/expand"
type: "Convolution"
bottom: "bottleneck6/1/linear/bn"
top: "bottleneck6/2/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 960
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/2/expand/bn"
type: "BatchNorm"
bottom: "bottleneck6/2/expand"
top: "bottleneck6/2/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/2/expand/scale"
type: "Scale"
bottom: "bottleneck6/2/expand/bn"
top: "bottleneck6/2/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/2/expand/relu"
type: "ReLU"
bottom: "bottleneck6/2/expand/bn"
top: "bottleneck6/2/expand/bn"
}
layer {
name: "bottleneck6/2/dw"
type: "Convolution"
bottom: "bottleneck6/2/expand/bn"
top: "bottleneck6/2/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 960
bias_term: false
pad: 1
kernel_size: 3
group: 960
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/2/dw/bn"
type: "BatchNorm"
bottom: "bottleneck6/2/dw"
top: "bottleneck6/2/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/2/dw/scale"
type: "Scale"
bottom: "bottleneck6/2/dw/bn"
top: "bottleneck6/2/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/2/dw/relu"
type: "ReLU"
bottom: "bottleneck6/2/dw/bn"
top: "bottleneck6/2/dw/bn"
}
layer {
name: "bottleneck6/2/linear"
type: "Convolution"
bottom: "bottleneck6/2/dw/bn"
top: "bottleneck6/2/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 160
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/2/linear/bn"
type: "BatchNorm"
bottom: "bottleneck6/2/linear"
top: "bottleneck6/2/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/2/linear/scale"
type: "Scale"
bottom: "bottleneck6/2/linear/bn"
top: "bottleneck6/2/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/2/sum"
type: "Eltwise"
bottom: "bottleneck6/1/linear/bn"
bottom: "bottleneck6/2/linear/bn"
top: "bottleneck6/2/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck6/3/expand"
type: "Convolution"
bottom: "bottleneck6/2/sum"
top: "bottleneck6/3/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 960
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/3/expand/bn"
type: "BatchNorm"
bottom: "bottleneck6/3/expand"
top: "bottleneck6/3/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/3/expand/scale"
type: "Scale"
bottom: "bottleneck6/3/expand/bn"
top: "bottleneck6/3/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/3/expand/relu"
type: "ReLU"
bottom: "bottleneck6/3/expand/bn"
top: "bottleneck6/3/expand/bn"
}
layer {
name: "bottleneck6/3/dw"
type: "Convolution"
bottom: "bottleneck6/3/expand/bn"
top: "bottleneck6/3/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 960
bias_term: false
pad: 1
kernel_size: 3
group: 960
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/3/dw/bn"
type: "BatchNorm"
bottom: "bottleneck6/3/dw"
top: "bottleneck6/3/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/3/dw/scale"
type: "Scale"
bottom: "bottleneck6/3/dw/bn"
top: "bottleneck6/3/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/3/dw/relu"
type: "ReLU"
bottom: "bottleneck6/3/dw/bn"
top: "bottleneck6/3/dw/bn"
}
layer {
name: "bottleneck6/3/linear"
type: "Convolution"
bottom: "bottleneck6/3/dw/bn"
top: "bottleneck6/3/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 160
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck6/3/linear/bn"
type: "BatchNorm"
bottom: "bottleneck6/3/linear"
top: "bottleneck6/3/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck6/3/linear/scale"
type: "Scale"
bottom: "bottleneck6/3/linear/bn"
top: "bottleneck6/3/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck6/3/sum"
type: "Eltwise"
bottom: "bottleneck6/2/sum"
bottom: "bottleneck6/3/linear/bn"
top: "bottleneck6/3/sum"
eltwise_param {
operation: SUM
}
}
layer {
name: "bottleneck7/expand"
type: "Convolution"
bottom: "bottleneck6/3/sum"
top: "bottleneck7/expand"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 960
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck7/expand/bn"
type: "BatchNorm"
bottom: "bottleneck7/expand"
top: "bottleneck7/expand/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck7/expand/scale"
type: "Scale"
bottom: "bottleneck7/expand/bn"
top: "bottleneck7/expand/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck7/expand/relu"
type: "ReLU"
bottom: "bottleneck7/expand/bn"
top: "bottleneck7/expand/bn"
}
layer {
name: "bottleneck7/dw"
type: "Convolution"
bottom: "bottleneck7/expand/bn"
top: "bottleneck7/dw"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 960
bias_term: false
pad: 1
kernel_size: 3
group: 960
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck7/dw/bn"
type: "BatchNorm"
bottom: "bottleneck7/dw"
top: "bottleneck7/dw/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck7/dw/scale"
type: "Scale"
bottom: "bottleneck7/dw/bn"
top: "bottleneck7/dw/bn"
scale_param {
bias_term: true
}
}
layer {
name: "bottleneck7/dw/relu"
type: "ReLU"
bottom: "bottleneck7/dw/bn"
top: "bottleneck7/dw/bn"
}
layer {
name: "bottleneck7/linear"
type: "Convolution"
bottom: "bottleneck7/dw/bn"
top: "bottleneck7/linear"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 320
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "bottleneck7/linear/bn"
type: "BatchNorm"
bottom: "bottleneck7/linear"
top: "bottleneck7/linear/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "bottleneck7/linear/scale"
type: "Scale"
bottom: "bottleneck7/linear/bn"
top: "bottleneck7/linear/bn"
scale_param {
bias_term: true
}
}
layer {
name: "conv8"
type: "Convolution"
bottom: "bottleneck7/linear/bn"
top: "conv8"
param {
lr_mult: 1.0
decay_mult: 1.0
}
convolution_param {
num_output: 1280
bias_term: false
pad: 0
kernel_size: 1
group: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "conv8/bn"
type: "BatchNorm"
bottom: "conv8"
top: "conv8/bn"
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
param {
lr_mult: 0.0
decay_mult: 0.0
}
}
layer {
name: "conv8/scale"
type: "Scale"
bottom: "conv8/bn"
top: "conv8/bn"
scale_param {
bias_term: true
}
}
layer {
name: "conv8/relu"
type: "ReLU"
bottom: "conv8/bn"
top: "conv8/bn"
}
layer {
name: "pool8"
type: "Pooling"
bottom: "conv8/bn"
top: "pool8"
pooling_param {
pool: AVE
global_pooling: true
}
}
layer {
name: "fc10"
type: "InnerProduct"
bottom: "pool8"
top: "fc10"
inner_product_param {
num_output: 1000
}
}
layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "fc10"
bottom: "label"
top: "loss/loss"
}
layer {
name: "accuracy/top1"
type: "Accuracy"
bottom: "fc10"
bottom: "label"
top: "acc@1"
accuracy_param {
top_k: 1
}
}
layer {
name: "accuracy/top5"
type: "Accuracy"
bottom: "fc10"
bottom: "label"
top: "acc@5"
accuracy_param {
top_k: 5
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment